JAL-2065 check position lies within group before getting consensus char
authorJim Procter <jprocter@issues.jalview.org>
Tue, 31 May 2016 14:17:30 +0000 (15:17 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Mon, 20 Jun 2016 12:17:26 +0000 (13:17 +0100)
src/jalview/gui/SequenceRenderer.java

index 258a229..aec61b5 100755 (executable)
@@ -447,13 +447,16 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer
   {
     // TODO - use currentSequenceGroup rather than alignment
     // currentSequenceGroup.getConsensus()
-    char conschar = (usesrep) ? (currentGroup == null ? av.getAlignment()
+    char conschar = (usesrep) ? (currentGroup == null
+            || position < currentGroup.getStartRes()
+            || position > currentGroup.getEndRes() ? av.getAlignment()
             .getSeqrep().getCharAt(position)
             : (currentGroup.getSeqrep() != null ? currentGroup.getSeqrep()
                     .getCharAt(position) : av.getAlignment().getSeqrep()
                     .getCharAt(position)))
-            : (currentGroup != null && currentGroup.getConsensus() != null) ? currentGroup
-                    .getConsensus().annotations[position].displayCharacter
+            : (currentGroup != null && currentGroup.getConsensus() != null
+                    && position >= currentGroup.getStartRes() && position <= currentGroup
+                    .getEndRes()) ? currentGroup.getConsensus().annotations[position].displayCharacter
                     .charAt(0)
                     : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
                             .charAt(0);