X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceRenderer.java;h=aca07b76b5d2a702666420b439419a43e7baa436;hb=aa91e8c4561c2dd0f18760e18fb0052979733bf8;hp=70acb7b89eeac12b9400924fd3f2ae7c9ba794e7;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/gui/SequenceRenderer.java b/src/jalview/gui/SequenceRenderer.java index 70acb7b..aca07b7 100755 --- a/src/jalview/gui/SequenceRenderer.java +++ b/src/jalview/gui/SequenceRenderer.java @@ -24,6 +24,7 @@ import jalview.api.FeatureRenderer; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.schemes.ColourSchemeI; +import jalview.util.Comparison; import java.awt.Color; import java.awt.FontMetrics; @@ -150,7 +151,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer resBoxColour = cs.findColour(seq.getCharAt(i), i, seq); } else if (forOverview - && !jalview.util.Comparison.isGap(seq.getCharAt(i))) + && !Comparison.isGap(seq.getCharAt(i))) { resBoxColour = Color.lightGray; } @@ -323,12 +324,18 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer { boolean srep = av.isDisplayReferenceSeq(); boolean getboxColour = false; + boolean isarep = av.getAlignment().getSeqrep() == seq; + boolean isgrep = currentSequenceGroup != null ? currentSequenceGroup + .getSeqrep() == seq : false; + char sr_c; for (int i = start; i <= end; i++) { + graphics.setColor(av.getTextColour()); getboxColour = false; s = seq.getCharAt(i); - if (!renderGaps && jalview.util.Comparison.isGap(s)) + + if (!renderGaps && Comparison.isGap(s)) { continue; } @@ -364,11 +371,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer { graphics.setColor(currentSequenceGroup.textColour); } - if (currentSequenceGroup.getShowNonconserved()) // todo optimize + if (!isarep && !isgrep + && currentSequenceGroup.getShowNonconserved()) // todo + // optimize { // todo - use sequence group consensus - s = getDisplayChar(srep, i, s, - '.'); + s = getDisplayChar(srep, i, s, '.', currentSequenceGroup); } @@ -408,10 +416,9 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer graphics.setColor(av.getTextColour2()); } } - if (av.getShowUnconserved()) + if (!isarep && av.getShowUnconserved()) { - s = getDisplayChar(srep, i, s, - '.'); + s = getDisplayChar(srep, i, s, '.', currentSequenceGroup); } @@ -438,12 +445,20 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer * @return */ private char getDisplayChar(final boolean usesrep, int position, - char sequenceChar, char conservedChar) + char sequenceChar, char conservedChar, SequenceGroup currentGroup) { // TODO - use currentSequenceGroup rather than alignment // currentSequenceGroup.getConsensus() - char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter - .charAt(0); + char conschar = (usesrep) ? (currentGroup == null ? 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 + .charAt(0) + : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter + .charAt(0); if (conschar != '-' && (sequenceChar == conschar || sequenceChar + CHAR_TO_UPPER == conschar)) {