Formatted source
[jalview.git] / src / jalview / schemes / ResidueColourScheme.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 import java.util.*;\r
24 \r
25 \r
26 public class ResidueColourScheme implements ColourSchemeI {\r
27     Color[] colors;\r
28     int threshold = 0;\r
29     public Vector consensus;\r
30 \r
31     public ResidueColourScheme(Color[] colors, int threshold) {\r
32         this.colors = colors;\r
33         this.threshold = threshold;\r
34     }\r
35 \r
36     public ResidueColourScheme() {\r
37     }\r
38 \r
39     public void setConsensus(Vector consensus) {\r
40         this.consensus = consensus;\r
41     }\r
42 \r
43     public Color findColour(String aa) {\r
44         return colors[((Integer) (ResidueProperties.aaHash.get(aa))).intValue()];\r
45     }\r
46 \r
47     public Color findColour(String s, int j) {\r
48         if ((threshold == 0) || aboveThreshold(s, j)) {\r
49             return colors[((Integer) (ResidueProperties.aaHash.get(s))).intValue()];\r
50         } else {\r
51             return Color.white;\r
52         }\r
53     }\r
54 \r
55     public int getThreshold() {\r
56         return threshold;\r
57     }\r
58 \r
59     public void setThreshold(int ct) {\r
60         threshold = ct;\r
61     }\r
62 \r
63     public boolean aboveThreshold(String s, int j) {\r
64         Hashtable hash = (Hashtable) consensus.elementAt(j);\r
65 \r
66         if ((((Integer) hash.get("maxCount")).intValue() != -1) &&\r
67                 hash.contains(s)) {\r
68             ////  resCount////////////////////                  ///////////////seq count////////////\r
69             double sc = (((Integer) hash.get(s)).intValue() * 100.0) / ((Integer) hash.get(\r
70                     "size")).intValue();\r
71 \r
72             if (sc >= threshold) {\r
73                 return true;\r
74             }\r
75         }\r
76 \r
77         return false;\r
78     }\r
79 }\r