2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.renderer;
23 import jalview.datamodel.SequenceGroup;
24 import jalview.datamodel.SequenceI;
25 import jalview.renderer.seqfeatures.FeatureColourFinder;
27 import java.awt.Color;
29 public class ResidueColourFinder
31 public ResidueColourFinder()
35 public Color getResidueColour(ResidueShaderI shader,
36 SequenceGroup[] allGroups,
37 final SequenceI seq, int position, FeatureColourFinder finder)
39 Color col = getResidueBoxColour(shader, allGroups, seq, position);
43 col = finder.findFeatureColour(col, seq, position);
48 private Color getResidueBoxColour(ResidueShaderI shader,
49 SequenceGroup[] allGroups,
53 ResidueShaderI currentShader;
55 SequenceGroup currentSequenceGroup = getCurrentSequenceGroup(allGroups,
57 if (currentSequenceGroup != null)
59 currentShader = currentSequenceGroup.getGroupColourScheme();
63 currentShader = shader;
66 return getBoxColour(currentShader, seq, i);
69 public SequenceGroup getCurrentSequenceGroup(SequenceGroup[] allGroups,
72 if (allGroups == null)
77 for (int i = 0; i < allGroups.length; i++)
79 if ((allGroups[i].getStartRes() <= res)
80 && (allGroups[i].getEndRes() >= res))
82 return (allGroups[i]);
99 public Color getBoxColour(ResidueShaderI shader, SequenceI seq, int i)
101 Color resBoxColour = Color.white;
102 if (shader.getColourScheme() != null)
104 resBoxColour = shader.findColour(seq.getCharAt(i), i, seq);