Formatted source
[jalview.git] / src / jalview / schemes / ScoreColourScheme.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 package jalview.schemes;\r
20 \r
21 import java.awt.*;\r
22 \r
23 \r
24 public class ScoreColourScheme extends ResidueColourScheme {\r
25     public double min;\r
26     public double max;\r
27     public double[] scores;\r
28 \r
29     public ScoreColourScheme(double[] scores, double min, double max) {\r
30         super();\r
31 \r
32         this.scores = scores;\r
33         this.min = min;\r
34         this.max = max;\r
35     }\r
36 \r
37     public Color findColour(String s, int j) {\r
38         if (threshold > 0) {\r
39             if (!aboveThreshold(s, j)) {\r
40                 return Color.white;\r
41             }\r
42         }\r
43 \r
44         float red = (float) (scores[((Integer) ResidueProperties.aaHash.get(s)).intValue()] -\r
45             (float) min) / (float) (max - min);\r
46 \r
47         if (red > 1.0f) {\r
48             red = 1.0f;\r
49         }\r
50 \r
51         if (red < 0.0f) {\r
52             red = 0.0f;\r
53         }\r
54 \r
55         char c = s.charAt(0);\r
56 \r
57         if (jalview.util.Comparison.isGap((c))) {\r
58             return Color.white;\r
59         }\r
60 \r
61         // This isn';t great - pool of colours in here?\r
62         return makeColour(red);\r
63     }\r
64 \r
65     public Color makeColour(float c) {\r
66         return new Color(c, (float) 0.0, (float) 1.0 - c);\r
67     }\r
68 }\r