X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAppVarna.java;fp=src%2Fjalview%2Fgui%2FAppVarna.java;h=3a647169a8eb2ead5c32b31e7536cee61c0703d2;hb=a304728aa8e7befeb6e213df0cf0b9f156193513;hp=ea16f2352e47138066e26be45d45b19003f3e124;hpb=b25aadc2789b8c3ffb74d2ab20a6be6bb1597e7f;p=jalview.git diff --git a/src/jalview/gui/AppVarna.java b/src/jalview/gui/AppVarna.java index ea16f23..3a64716 100644 --- a/src/jalview/gui/AppVarna.java +++ b/src/jalview/gui/AppVarna.java @@ -120,6 +120,15 @@ public class AppVarna extends JInternalFrame } } + /** + * highlight a region from start to end (inclusive) on rna + * + * @param rna + * @param start + * - first base pair index (from 0) + * @param end + * - last base pair index (from 0) + */ public void highlightRegion(RNA rna, int start, int end) { clearLastSelection(); @@ -397,7 +406,8 @@ public class AppVarna extends JInternalFrame RnaModel rnaModel = models.get(rna); if (rnaModel.seq == sequence) { - int highlightPos = rnaModel.gapped ? index : position - 1; + int highlightPos = rnaModel.gapped ? index + : position - sequence.getStart(); mouseOverHighlighter.highlightRegion(rna, highlightPos, highlightPos); vab.updateSelectedRNA(rna); } @@ -418,15 +428,28 @@ public class AppVarna extends JInternalFrame { return; } - if (seqsel != null && seqsel.getSize() > 0) + + RnaModel rnaModel = models.get(rna); + + if (seqsel != null && seqsel.getSize() > 0 + && seqsel.contains(rnaModel.seq)) { int start = seqsel.getStartRes(), end = seqsel.getEndRes(); - ShiftList shift = offsets.get(rna); - if (shift != null) + if (rnaModel.gapped) { - start = shift.shift(start); - end = shift.shift(end); + ShiftList shift = offsets.get(rna); + if (shift != null) + { + start = shift.shift(start); + end = shift.shift(end); + } } + else + { + start = rnaModel.seq.findPosition(start) - rnaModel.seq.getStart(); + end = rnaModel.seq.findPosition(end) - rnaModel.seq.getStart(); + } + selectionHighlighter.highlightRegion(rna, start, end); selectionHighlighter.getLastHighlight() .setOutlineColor(seqsel.getOutlineColour());