Add pdb ref
[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 \r
143         int index = 12;\r
144 \r
145         if (cs instanceof ClustalxColourScheme)\r
146         {\r
147             index = CLUSTAL;\r
148         }\r
149         else if (cs instanceof Blosum62ColourScheme)\r
150         {\r
151             index = BLOSUM;\r
152         }\r
153         else if (cs instanceof PIDColourScheme)\r
154         {\r
155             index = PID;\r
156         }\r
157         else if (cs instanceof ZappoColourScheme)\r
158         {\r
159             index = ZAPPO;\r
160         }\r
161         else if (cs instanceof TaylorColourScheme)\r
162         {\r
163             index = TAYLOR;\r
164         }\r
165         else if (cs instanceof HydrophobicColourScheme)\r
166         {\r
167             index = HYDROPHOBIC;\r
168         }\r
169         else if (cs instanceof HelixColourScheme)\r
170         {\r
171             index = HELIX;\r
172         }\r
173         else if (cs instanceof StrandColourScheme)\r
174         {\r
175             index = STRAND;\r
176         }\r
177         else if (cs instanceof TurnColourScheme)\r
178         {\r
179             index = TURN;\r
180         }\r
181         else if (cs instanceof BuriedColourScheme)\r
182         {\r
183             index = BURIED;\r
184         }\r
185         else if (cs instanceof NucleotideColourScheme)\r
186         {\r
187             index = NUCLEOTIDE;\r
188         }\r
189         else if (cs instanceof UserColourScheme)\r
190         {\r
191             index = USER_DEFINED;\r
192         }\r
193 \r
194         return getColourName(index);\r
195     }\r
196 \r
197     /**\r
198      * DOCUMENT ME!\r
199      *\r
200      * @param index DOCUMENT ME!\r
201      *\r
202      * @return DOCUMENT ME!\r
203      */\r
204     public static String getColourName(int index)\r
205     {\r
206         String ret = null;\r
207 \r
208         switch (index)\r
209         {\r
210         case CLUSTAL:\r
211             ret = "Clustal";\r
212 \r
213             break;\r
214 \r
215         case BLOSUM:\r
216             ret = "Blosum62";\r
217 \r
218             break;\r
219 \r
220         case PID:\r
221             ret = "% Identity";\r
222 \r
223             break;\r
224 \r
225         case ZAPPO:\r
226             ret = "Zappo";\r
227 \r
228             break;\r
229 \r
230         case TAYLOR:\r
231             ret = "Taylor";\r
232             break;\r
233 \r
234         case HYDROPHOBIC:\r
235             ret = "Hydrophobic";\r
236 \r
237             break;\r
238 \r
239         case HELIX:\r
240             ret = "Helix Propensity";\r
241 \r
242             break;\r
243 \r
244         case STRAND:\r
245             ret = "Strand Propensity";\r
246 \r
247             break;\r
248 \r
249         case TURN:\r
250             ret = "Turn Propensity";\r
251 \r
252             break;\r
253 \r
254         case BURIED:\r
255             ret = "Buried Index";\r
256 \r
257             break;\r
258 \r
259         case NUCLEOTIDE:\r
260             ret = "Nucleotide";\r
261 \r
262             break;\r
263 \r
264         case USER_DEFINED:\r
265             ret = "User Defined";\r
266 \r
267             break;\r
268 \r
269         default:\r
270             ret = "None";\r
271 \r
272             break;\r
273         }\r
274 \r
275         return ret;\r
276     }\r
277 \r
278     /**\r
279      * DOCUMENT ME!\r
280      *\r
281      * @param al DOCUMENT ME!\r
282      * @param name DOCUMENT ME!\r
283      *\r
284      * @return DOCUMENT ME!\r
285      */\r
286     public static ColourSchemeI getColour(jalview.datamodel.AlignmentI al,\r
287         String name)\r
288     {\r
289         return getColour(al.getSequences(), al.getWidth(), name);\r
290     }\r
291 \r
292     /**\r
293      * DOCUMENT ME!\r
294      *\r
295      * @param seqs DOCUMENT ME!\r
296      * @param width DOCUMENT ME!\r
297      * @param name DOCUMENT ME!\r
298      *\r
299      * @return DOCUMENT ME!\r
300      */\r
301     public static ColourSchemeI getColour(java.util.Vector seqs, int width,\r
302         String name)\r
303     {\r
304         return getColour(seqs, width, getColourIndexFromName(name));\r
305     }\r
306 \r
307     /**\r
308      * DOCUMENT ME!\r
309      *\r
310      * @param seqs DOCUMENT ME!\r
311      * @param width DOCUMENT ME!\r
312      * @param index DOCUMENT ME!\r
313      *\r
314      * @return DOCUMENT ME!\r
315      */\r
316     public static ColourSchemeI getColour(java.util.Vector seqs, int width,\r
317         int index)\r
318     {\r
319         ColourSchemeI cs = null;\r
320 \r
321         switch (index)\r
322         {\r
323         case CLUSTAL:\r
324             cs = new ClustalxColourScheme(seqs, width);\r
325 \r
326             break;\r
327 \r
328         case BLOSUM:\r
329             cs = new Blosum62ColourScheme();\r
330 \r
331             break;\r
332 \r
333         case PID:\r
334             cs = new PIDColourScheme();\r
335 \r
336             break;\r
337 \r
338         case ZAPPO:\r
339             cs = new ZappoColourScheme();\r
340 \r
341             break;\r
342 \r
343         case TAYLOR:\r
344             cs = new TaylorColourScheme();\r
345             break;\r
346 \r
347         case HYDROPHOBIC:\r
348             cs = new HydrophobicColourScheme();\r
349 \r
350             break;\r
351 \r
352         case HELIX:\r
353             cs = new HelixColourScheme();\r
354 \r
355             break;\r
356 \r
357         case STRAND:\r
358             cs = new StrandColourScheme();\r
359 \r
360             break;\r
361 \r
362         case TURN:\r
363             cs = new TurnColourScheme();\r
364 \r
365             break;\r
366 \r
367         case BURIED:\r
368             cs = new BuriedColourScheme();\r
369 \r
370             break;\r
371 \r
372         case NUCLEOTIDE:\r
373             cs = new NucleotideColourScheme();\r
374 \r
375             break;\r
376 \r
377         case USER_DEFINED:\r
378           Color[] col = new Color[24];\r
379           for (int i = 0; i < 24; i++)\r
380             col[i] = Color.white;\r
381           cs = new UserColourScheme(col);\r
382             break;\r
383 \r
384         default:\r
385             break;\r
386         }\r
387 \r
388         return cs;\r
389     }\r
390 \r
391     public static Color getAWTColorFromName(String name)\r
392     {\r
393       Color col = null;\r
394       name = name.toLowerCase();\r
395       if(name.equals("black"))\r
396         col = Color.black;\r
397       else if(name.equals("blue"))\r
398         col = Color.blue;\r
399       else if(name.equals("cyan"))\r
400         col = Color.cyan;\r
401       else if(name.equals("darkGray"))\r
402         col = Color.darkGray;\r
403       else if(name.equals("gray"))\r
404         col = Color.gray;\r
405       else if(name.equals("green"))\r
406         col = Color.green;\r
407       else if(name.equals("lightGray"))\r
408         col = Color.lightGray;\r
409       else if(name.equals("magenta"))\r
410         col = Color.magenta;\r
411       else if(name.equals("orange"))\r
412         col = Color.orange;\r
413       else if(name.equals("pink"))\r
414         col = Color.pink;\r
415       else if(name.equals("red"))\r
416         col = Color.red;\r
417       else if(name.equals("white"))\r
418         col = Color.white;\r
419       else if(name.equals("yellow"))\r
420         col = Color.yellow;\r
421 \r
422       return col;\r
423     }\r
424 }\r