X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceRenderer.java;h=3003c0151c7695466acff015c121a4df9b10ac49;hb=refs%2Fheads%2Ffeatures%2FJAL-2094_colourInterface;hp=aec61b52eed2ec8b56e9fcfaa07bfae6decc9b87;hpb=205bbecbedfa28a3f4b3b4909c4f8be2a96b6579;p=jalview.git diff --git a/src/jalview/gui/SequenceRenderer.java b/src/jalview/gui/SequenceRenderer.java index aec61b5..3003c01 100755 --- a/src/jalview/gui/SequenceRenderer.java +++ b/src/jalview/gui/SequenceRenderer.java @@ -20,21 +20,18 @@ */ package jalview.gui; +import jalview.api.ColorI; import jalview.api.FeatureRenderer; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.schemes.Colour; import jalview.schemes.ColourSchemeI; +import jalview.util.ColorUtils; import java.awt.Color; import java.awt.FontMetrics; import java.awt.Graphics; -/** - * DOCUMENT ME! - * - * @author $author$ - * @version $Revision$ - */ public class SequenceRenderer implements jalview.api.SequenceRenderer { final static int CHAR_TO_UPPER = 'A' - 'a'; @@ -89,8 +86,9 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer } @Override - public Color getResidueBoxColour(SequenceI seq, int i) + public ColorI getResidueBoxColour(SequenceI seq, int i) { + // rate limiting step when rendering overview for lots of groups allGroups = av.getAlignment().findAllGroups(seq); if (inCurrentSequenceGroup(i)) @@ -105,7 +103,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer getBoxColour(av.getGlobalColourScheme(), seq, i); } - return resBoxColour; + return new Colour(resBoxColour); } /** @@ -119,12 +117,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer * @return */ @Override - public Color getResidueColour(final SequenceI seq, int position, + public ColorI getResidueColour(final SequenceI seq, int position, FeatureRenderer fr) { // TODO replace 8 or so code duplications with calls to this method // (refactored as needed) - Color col = getResidueBoxColour(seq, position); + ColorI col = getResidueBoxColour(seq, position); if (fr != null) { @@ -303,7 +301,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer { end = seq.getLength() - 1; } - graphics.setColor(av.getTextColour()); + graphics.setColor(ColorUtils.getColor(av.getTextColour())); if (monospacedFont && av.getShowText() && allGroups.length == 0 && !av.getColourText() && av.getThresholdTextColour() == 0) @@ -330,7 +328,7 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer for (int i = start; i <= end; i++) { - graphics.setColor(av.getTextColour()); + graphics.setColor(ColorUtils.getColor(av.getTextColour())); getboxColour = false; s = seq.getCharAt(i); @@ -362,13 +360,13 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer if (resBoxColour.getRed() + resBoxColour.getBlue() + resBoxColour.getGreen() < currentSequenceGroup.thresholdTextColour) { - graphics.setColor(currentSequenceGroup.textColour2); + graphics.setColor(ColorUtils.getColor(currentSequenceGroup.textColour2)); } } } else { - graphics.setColor(currentSequenceGroup.textColour); + graphics.setColor(ColorUtils.getColor(currentSequenceGroup.textColour)); } if (!isarep && !isgrep && currentSequenceGroup.getShowNonconserved()) // todo @@ -412,12 +410,12 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer if (resBoxColour.getRed() + resBoxColour.getBlue() + resBoxColour.getGreen() < av.getThresholdTextColour()) { - graphics.setColor(av.getTextColour2()); + graphics.setColor(ColorUtils.getColor(av.getTextColour2())); } } if (!isarep && av.getShowUnconserved()) { - s = getDisplayChar(srep, i, s, '.', currentSequenceGroup); + s = getDisplayChar(srep, i, s, '.', null); } @@ -455,8 +453,10 @@ public class SequenceRenderer implements jalview.api.SequenceRenderer .getCharAt(position) : av.getAlignment().getSeqrep() .getCharAt(position))) : (currentGroup != null && currentGroup.getConsensus() != null - && position >= currentGroup.getStartRes() && position <= currentGroup - .getEndRes()) ? currentGroup.getConsensus().annotations[position].displayCharacter + && position >= currentGroup.getStartRes() + && position <= currentGroup.getEndRes() && currentGroup + .getConsensus().annotations.length > position) ? currentGroup + .getConsensus().annotations[position].displayCharacter .charAt(0) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter .charAt(0);