X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FOverviewResColourFinder.java;h=ff52f1de171404536a9f9acc6873e30e64428bfb;hb=a435a8668f8df568d3bdcf4e286210b69c18920c;hp=a497d92d00d722af17995ec4eea7eb2853818b75;hpb=0cad98dc5574937f462867526318fc5a94fc2eea;p=jalview.git diff --git a/src/jalview/renderer/OverviewResColourFinder.java b/src/jalview/renderer/OverviewResColourFinder.java index a497d92..ff52f1d 100644 --- a/src/jalview/renderer/OverviewResColourFinder.java +++ b/src/jalview/renderer/OverviewResColourFinder.java @@ -81,30 +81,24 @@ public class OverviewResColourFinder extends ResidueColourFinder @Override public Color getBoxColour(ResidueShaderI shader, SequenceI seq, int i) { - Color resBoxColour = RESIDUE_COLOUR; + seq.resetColors(); + Color c = seq.getColor(i); + if (c != null) + { + return c; + } char currentChar = seq.getCharAt(i); - // In the overview window, gaps are coloured grey, unless the colour scheme // specifies a gap colour, in which case gaps honour the colour scheme // settings - if (shader.getColourScheme() != null) + boolean isGap = Comparison.isGap(currentChar); + if (shader.getColourScheme() == null) { - if (Comparison.isGap(currentChar) - && (!shader.getColourScheme().hasGapColour())) - { - resBoxColour = GAP_COLOUR; - } - else - { - resBoxColour = shader.findColour(currentChar, i, seq); - } + return seq.setColor(i, isGap ? GAP_COLOUR : RESIDUE_COLOUR); } - else if (Comparison.isGap(currentChar)) - { - resBoxColour = GAP_COLOUR; - } - - return resBoxColour; + return seq.setColor(i, + isGap && !shader.getColourScheme().hasGapColour() ? GAP_COLOUR + : shader.findColour(currentChar, i, seq)); } /** @@ -113,21 +107,13 @@ public class OverviewResColourFinder extends ResidueColourFinder */ @Override protected Color getResidueBoxColour(boolean showBoxes, - ResidueShaderI shader, - SequenceGroup[] allGroups, SequenceI seq, int i) + ResidueShaderI shader, SequenceGroup[] allGroups, SequenceI seq, + int i) { - ResidueShaderI currentShader; SequenceGroup currentSequenceGroup = getCurrentSequenceGroup(allGroups, i); - if (currentSequenceGroup != null) - { - currentShader = currentSequenceGroup.getGroupColourScheme(); - } - else - { - currentShader = shader; - } - + ResidueShaderI currentShader = (currentSequenceGroup == null ? shader + : currentSequenceGroup.getGroupColourScheme()); return getBoxColour(currentShader, seq, i); }