Not used in Jalview
[jalview.git] / src / jalview / schemes / ConservationColourScheme.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 jalview.analysis.*;\r
22 \r
23 import java.awt.*;\r
24 \r
25 import java.util.Vector;\r
26 \r
27 \r
28 public class ConservationColourScheme extends ResidueColourScheme {\r
29     public Conservation conserve;\r
30     public ColourSchemeI cs;\r
31     public int inc = 30;\r
32 \r
33     public ConservationColourScheme(Conservation cons, ColourSchemeI oldcs) {\r
34         super();\r
35         conserve = cons;\r
36         cs = oldcs;\r
37     }\r
38 \r
39     public void setConsensus(Vector consensus) {\r
40         this.consensus = consensus;\r
41 \r
42         if (cs != null) {\r
43             cs.setConsensus(consensus);\r
44         }\r
45     }\r
46 \r
47     public Color findColour(String s, int i) {\r
48         Color c = Color.white;\r
49 \r
50         if (cs == null) {\r
51             return c;\r
52         }\r
53 \r
54         char ch = conserve.getConsSequence().getSequence().charAt(i);\r
55 \r
56         if ((ch == '*') || (ch == '+')) {\r
57             c = cs.findColour(s, i);\r
58         } else {\r
59             int tmp = 10;\r
60             int t = 0;\r
61 \r
62             if (!jalview.util.Comparison.isGap(ch)) {\r
63                 t = Integer.parseInt(ch + "");\r
64             }\r
65 \r
66             c = cs.findColour(s, i);\r
67 \r
68             while (tmp >= t) {\r
69                 c = lighter(c, inc);\r
70                 tmp--;\r
71             }\r
72         }\r
73 \r
74         return c;\r
75     }\r
76 \r
77     public Color lighter(Color c, int inc) {\r
78         int red = c.getRed();\r
79         int blue = c.getBlue();\r
80         int green = c.getGreen();\r
81 \r
82         if (red < (255 - inc)) {\r
83             red = red + inc;\r
84         } else {\r
85             red = 255;\r
86         }\r
87 \r
88         if (blue < (255 - inc)) {\r
89             blue = blue + inc;\r
90         } else {\r
91             blue = 255;\r
92         }\r
93 \r
94         if (green < (255 - inc)) {\r
95             green = green + inc;\r
96         } else {\r
97             green = 255;\r
98         }\r
99 \r
100         return new Color(red, green, blue);\r
101     }\r
102 }\r