X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FOverviewResColourFinder.java;fp=src%2Fjalview%2Frenderer%2FOverviewResColourFinder.java;h=5ed218b56c3566fad9c296d7260586c7befce13e;hb=b2f9f869650be0ea7c8cb2586744064b007866dc;hp=0000000000000000000000000000000000000000;hpb=e327ac5df98f528afeb347ac9a79085ad0d0975b;p=jalview.git diff --git a/src/jalview/renderer/OverviewResColourFinder.java b/src/jalview/renderer/OverviewResColourFinder.java new file mode 100644 index 0000000..5ed218b --- /dev/null +++ b/src/jalview/renderer/OverviewResColourFinder.java @@ -0,0 +1,83 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.renderer; + +import jalview.datamodel.SequenceGroup; +import jalview.datamodel.SequenceI; +import jalview.util.Comparison; + +import java.awt.Color; + +public class OverviewResColourFinder extends ResidueColourFinder +{ + @Override + public Color getBoxColour(ResidueShaderI shader, SequenceI seq, int i) + { + Color resBoxColour = Color.white; + 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) + { + if (Comparison.isGap(currentChar) + && !shader.getColourScheme().hasGapColour()) + { + resBoxColour = Color.lightGray; + } + else + { + resBoxColour = shader.findColour(currentChar, i, seq); + } + } + else if (Comparison.isGap(currentChar)) + { + resBoxColour = Color.lightGray; + } + + return resBoxColour; + } + + /** + * {@inheritDoc} In the overview, the showBoxes setting is ignored, as the + * overview displays the colours regardless. + */ + @Override + protected Color getResidueBoxColour(boolean showBoxes, + ResidueShaderI shader, + SequenceGroup[] allGroups, SequenceI seq, int i) + { + ResidueShaderI currentShader; + SequenceGroup currentSequenceGroup = getCurrentSequenceGroup(allGroups, + i); + if (currentSequenceGroup != null) + { + currentShader = currentSequenceGroup.getGroupColourScheme(); + } + else + { + currentShader = shader; + } + + return getBoxColour(currentShader, seq, i); + } +}