Add taylor to default colour check
[jalview.git] / src / jalview / schemes / ColourSchemeProperty.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  * DOCUMENT ME!\r
24  *\r
25  * @author $author$\r
26  * @version $Revision$\r
27  */\r
28 public class ColourSchemeProperty\r
29 {\r
30     /** DOCUMENT ME!! */\r
31     public static final int CLUSTAL = 0;\r
32 \r
33     /** DOCUMENT ME!! */\r
34     public static final int BLOSUM = 1;\r
35 \r
36     /** DOCUMENT ME!! */\r
37     public static final int PID = 2;\r
38 \r
39     /** DOCUMENT ME!! */\r
40     public static final int ZAPPO = 3;\r
41 \r
42     /** DOCUMENT ME!! */\r
43     public static final int TAYLOR = 4;\r
44 \r
45     /** DOCUMENT ME!! */\r
46     public static final int HYDROPHOBIC = 5;\r
47 \r
48     /** DOCUMENT ME!! */\r
49     public static final int HELIX = 6;\r
50 \r
51     /** DOCUMENT ME!! */\r
52     public static final int STRAND = 7;\r
53 \r
54     /** DOCUMENT ME!! */\r
55     public static final int TURN = 8;\r
56 \r
57     /** DOCUMENT ME!! */\r
58     public static final int BURIED = 9;\r
59 \r
60     /** DOCUMENT ME!! */\r
61     public static final int NUCLEOTIDE = 10;\r
62 \r
63     /** DOCUMENT ME!! */\r
64     public static final int USER_DEFINED = 11;\r
65 \r
66 \r
67     /** DOCUMENT ME!! */\r
68     public static final int NONE = 12;\r
69 \r
70     /**\r
71      * DOCUMENT ME!\r
72      *\r
73      * @param name DOCUMENT ME!\r
74      *\r
75      * @return DOCUMENT ME!\r
76      */\r
77     public static int getColourIndexFromName(String name)\r
78     {\r
79         int ret = 12;\r
80 \r
81         if (name.equalsIgnoreCase("Clustal"))\r
82         {\r
83             ret = CLUSTAL;\r
84         }\r
85         else if (name.equalsIgnoreCase("Blosum62"))\r
86         {\r
87             ret = BLOSUM;\r
88         }\r
89         else if (name.equalsIgnoreCase("% Identity"))\r
90         {\r
91             ret = PID;\r
92         }\r
93         else if (name.equalsIgnoreCase("Zappo"))\r
94         {\r
95             ret = ZAPPO;\r
96         }\r
97         else if (name.equalsIgnoreCase("Taylor"))\r
98         {\r
99           ret = TAYLOR;\r
100         }\r
101         else if (name.equalsIgnoreCase("Hydrophobic"))\r
102         {\r
103             ret = HYDROPHOBIC;\r
104         }\r
105         else if (name.equalsIgnoreCase("Helix Propensity"))\r
106         {\r
107             ret = HELIX;\r
108         }\r
109         else if (name.equalsIgnoreCase("Strand Propensity"))\r
110         {\r
111             ret = STRAND;\r
112         }\r
113         else if (name.equalsIgnoreCase("Turn Propensity"))\r
114         {\r
115             ret = TURN;\r
116         }\r
117         else if (name.equalsIgnoreCase("Buried Index"))\r
118         {\r
119             ret = BURIED;\r
120         }\r
121         else if (name.equalsIgnoreCase("Nucleotide"))\r
122         {\r
123             ret = NUCLEOTIDE;\r
124         }\r
125         else if (name.equalsIgnoreCase("User Defined"))\r
126         {\r
127             ret = USER_DEFINED;\r
128         }\r
129 \r
130         return ret;\r
131     }\r
132 \r
133     /**\r
134      * DOCUMENT ME!\r
135      *\r
136      * @param cs DOCUMENT ME!\r
137      *\r
138      * @return DOCUMENT ME!\r
139      */\r
140     public static String getColourName(ColourSchemeI cs)\r
141     {\r
142         if (cs instanceof ConservationColourScheme)\r
143         {\r
144             cs = ((ConservationColourScheme) cs).cs;\r
145         }\r
146 \r
147         int index = 12;\r
148 \r
149         if (cs instanceof ClustalxColourScheme)\r
150         {\r
151             index = CLUSTAL;\r
152         }\r
153         else if (cs instanceof Blosum62ColourScheme)\r
154         {\r
155             index = BLOSUM;\r
156         }\r
157         else if (cs instanceof PIDColourScheme)\r
158         {\r
159             index = PID;\r
160         }\r
161         else if (cs instanceof ZappoColourScheme)\r
162         {\r
163             index = ZAPPO;\r
164         }\r
165         else if (cs instanceof TaylorColourScheme)\r
166         {\r
167             index = TAYLOR;\r
168         }\r
169         else if (cs instanceof HydrophobicColourScheme)\r
170         {\r
171             index = HYDROPHOBIC;\r
172         }\r
173         else if (cs instanceof HelixColourScheme)\r
174         {\r
175             index = HELIX;\r
176         }\r
177         else if (cs instanceof StrandColourScheme)\r
178         {\r
179             index = STRAND;\r
180         }\r
181         else if (cs instanceof TurnColourScheme)\r
182         {\r
183             index = TURN;\r
184         }\r
185         else if (cs instanceof BuriedColourScheme)\r
186         {\r
187             index = BURIED;\r
188         }\r
189         else if (cs instanceof NucleotideColourScheme)\r
190         {\r
191             index = NUCLEOTIDE;\r
192         }\r
193         else if (cs instanceof UserColourScheme)\r
194         {\r
195             index = USER_DEFINED;\r
196         }\r
197 \r
198         return getColourName(index);\r
199     }\r
200 \r
201     /**\r
202      * DOCUMENT ME!\r
203      *\r
204      * @param index DOCUMENT ME!\r
205      *\r
206      * @return DOCUMENT ME!\r
207      */\r
208     public static String getColourName(int index)\r
209     {\r
210         String ret = null;\r
211 \r
212         switch (index)\r
213         {\r
214         case CLUSTAL:\r
215             ret = "Clustal";\r
216 \r
217             break;\r
218 \r
219         case BLOSUM:\r
220             ret = "Blosum62";\r
221 \r
222             break;\r
223 \r
224         case PID:\r
225             ret = "% Identity";\r
226 \r
227             break;\r
228 \r
229         case ZAPPO:\r
230             ret = "Zappo";\r
231 \r
232             break;\r
233 \r
234         case TAYLOR:\r
235             ret = "Taylor";\r
236             break;\r
237 \r
238         case HYDROPHOBIC:\r
239             ret = "Hydrophobic";\r
240 \r
241             break;\r
242 \r
243         case HELIX:\r
244             ret = "Helix Propensity";\r
245 \r
246             break;\r
247 \r
248         case STRAND:\r
249             ret = "Strand Propensity";\r
250 \r
251             break;\r
252 \r
253         case TURN:\r
254             ret = "Turn Propensity";\r
255 \r
256             break;\r
257 \r
258         case BURIED:\r
259             ret = "Buried Index";\r
260 \r
261             break;\r
262 \r
263         case NUCLEOTIDE:\r
264             ret = "Nucleotide";\r
265 \r
266             break;\r
267 \r
268         case USER_DEFINED:\r
269             ret = "User Defined";\r
270 \r
271             break;\r
272 \r
273         default:\r
274             ret = "None";\r
275 \r
276             break;\r
277         }\r
278 \r
279         return ret;\r
280     }\r
281 \r
282     /**\r
283      * DOCUMENT ME!\r
284      *\r
285      * @param al DOCUMENT ME!\r
286      * @param name DOCUMENT ME!\r
287      *\r
288      * @return DOCUMENT ME!\r
289      */\r
290     public static ColourSchemeI getColour(jalview.datamodel.AlignmentI al,\r
291         String name)\r
292     {\r
293         return getColour(al.getSequences(), al.getWidth(), name);\r
294     }\r
295 \r
296     /**\r
297      * DOCUMENT ME!\r
298      *\r
299      * @param seqs DOCUMENT ME!\r
300      * @param width DOCUMENT ME!\r
301      * @param name DOCUMENT ME!\r
302      *\r
303      * @return DOCUMENT ME!\r
304      */\r
305     public static ColourSchemeI getColour(java.util.Vector seqs, int width,\r
306         String name)\r
307     {\r
308         return getColour(seqs, width, getColourIndexFromName(name));\r
309     }\r
310 \r
311     /**\r
312      * DOCUMENT ME!\r
313      *\r
314      * @param seqs DOCUMENT ME!\r
315      * @param width DOCUMENT ME!\r
316      * @param index DOCUMENT ME!\r
317      *\r
318      * @return DOCUMENT ME!\r
319      */\r
320     public static ColourSchemeI getColour(java.util.Vector seqs, int width,\r
321         int index)\r
322     {\r
323         ColourSchemeI cs = null;\r
324 \r
325         switch (index)\r
326         {\r
327         case CLUSTAL:\r
328             cs = new ClustalxColourScheme(seqs, width);\r
329 \r
330             break;\r
331 \r
332         case BLOSUM:\r
333             cs = new Blosum62ColourScheme();\r
334 \r
335             break;\r
336 \r
337         case PID:\r
338             cs = new PIDColourScheme();\r
339 \r
340             break;\r
341 \r
342         case ZAPPO:\r
343             cs = new ZappoColourScheme();\r
344 \r
345             break;\r
346 \r
347         case TAYLOR:\r
348             cs = new TaylorColourScheme();\r
349             break;\r
350 \r
351         case HYDROPHOBIC:\r
352             cs = new HydrophobicColourScheme();\r
353 \r
354             break;\r
355 \r
356         case HELIX:\r
357             cs = new HelixColourScheme();\r
358 \r
359             break;\r
360 \r
361         case STRAND:\r
362             cs = new StrandColourScheme();\r
363 \r
364             break;\r
365 \r
366         case TURN:\r
367             cs = new TurnColourScheme();\r
368 \r
369             break;\r
370 \r
371         case BURIED:\r
372             cs = new BuriedColourScheme();\r
373 \r
374             break;\r
375 \r
376         case NUCLEOTIDE:\r
377             cs = new NucleotideColourScheme();\r
378 \r
379             break;\r
380 \r
381         case USER_DEFINED:\r
382             cs = new UserColourScheme(new Color[0]);\r
383 \r
384             break;\r
385 \r
386         default:\r
387             break;\r
388         }\r
389 \r
390         return cs;\r
391     }\r
392 \r
393     public static Color getAWTColorFromName(String name)\r
394     {\r
395       Color col = null;\r
396       name = name.toLowerCase();\r
397       if(name.equals("black"))\r
398         col = Color.black;\r
399       else if(name.equals("blue"))\r
400         col = Color.blue;\r
401       else if(name.equals("cyan"))\r
402         col = Color.cyan;\r
403       else if(name.equals("darkGray"))\r
404         col = Color.darkGray;\r
405       else if(name.equals("gray"))\r
406         col = Color.gray;\r
407       else if(name.equals("green"))\r
408         col = Color.green;\r
409       else if(name.equals("lightGray"))\r
410         col = Color.lightGray;\r
411       else if(name.equals("magenta"))\r
412         col = Color.magenta;\r
413       else if(name.equals("orange"))\r
414         col = Color.orange;\r
415       else if(name.equals("pink"))\r
416         col = Color.pink;\r
417       else if(name.equals("red"))\r
418         col = Color.red;\r
419       else if(name.equals("white"))\r
420         col = Color.white;\r
421       else if(name.equals("yellow"))\r
422         col = Color.yellow;\r
423 \r
424       return col;\r
425     }\r
426 }\r