56c2cc171ad3669cd3dc570e25d55dee25a319d7
[jalview.git] / forester / java / src / org / forester / archaeopteryx / TreeColorSet.java
1 // $Id:
2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
4 //
5 // Copyright (C) 2008-2010 Christian M. Zmasek
6 // Copyright (C) 2008-2010 Burnham Institute for Medical Research
7 // Copyright (C) 2003-2010 Ethalinda K.S. Cannon
8 // All rights reserved
9 //
10 // This library is free software; you can redistribute it and/or
11 // modify it under the terms of the GNU Lesser General Public
12 // License as published by the Free Software Foundation; either
13 // version 2.1 of the License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 //
24 // Contact: phylosoft @ gmail . com
25 // WWW: https://sites.google.com/site/cmzmasek/home/software/forester
26
27 package org.forester.archaeopteryx;
28
29 import java.awt.Color;
30 import java.util.Map;
31
32 import org.forester.util.ForesterUtil;
33
34 public final class TreeColorSet {
35
36     public static final String ANNOTATION                 = "Annotation";
37     public static final String BACKGROUND                 = "Background";
38     public static final String BACKGROUND_GRADIENT_BOTTOM = "Background Gradient Bottom";
39     public static final String BINARY_DOMAIN_COMBINATIONS = "Binary Domain Combinations";
40     public static final String BRANCH                     = "Branch";
41     public static final String BRANCH_LENGTH              = "Branch Length";
42     public static final String COLLAPSED                  = "Collapsed";
43     public static final String CONFIDENCE                 = "Confidence";
44     public static final String DOMAIN_LABEL               = "Domain Label";
45     public static final String DOMAIN_BASE                = "Domain Base";
46     public static final String DUPLICATION                = "Duplication";
47     public static final String DUPLICATION_OR_SPECATION   = "Duplication or Specation";
48     public static final String MATCHING_NODES_A           = "Matching A";
49     public static final String MATCHING_NODES_A_AND_B     = "Matching A and B";
50     public static final String MATCHING_NODES_B           = "Matching B";
51     public static final String NODE_BOX                   = "Node Box";
52     public static final String OVERVIEW                   = "Overview";
53     public static final String SEQUENCE                   = "Sequence";
54     public static final String SPECIATION                 = "Speciation";
55     public static final String TAXONOMY                   = "Taxonomy";
56     static final String[]      COLOR_FIELDS               = { BACKGROUND, BACKGROUND_GRADIENT_BOTTOM, SEQUENCE,
57             TAXONOMY, CONFIDENCE, BRANCH_LENGTH, BRANCH, NODE_BOX, COLLAPSED, MATCHING_NODES_A, MATCHING_NODES_B,
58             MATCHING_NODES_A_AND_B, DUPLICATION, SPECIATION, DUPLICATION_OR_SPECATION, DOMAIN_LABEL, DOMAIN_BASE,
59             BINARY_DOMAIN_COMBINATIONS, ANNOTATION, OVERVIEW };
60     static final String[]      SCHEME_NAMES               = { "Default", "Black", "Black & White", "Simple", "Silver", "Green",
61             "White & Blue", "Cyan", "Orange", "Blue", "Blue & White", "Neon" };
62     private int                _color_scheme;
63     private final Color[][]    _color_schemes             = { { new Color( 0, 0, 0 ), // background_color
64             new Color( 0, 100, 100 ), // background_color_gradient_bottom
65             new Color( 230, 230, 230 ), // sequence  __ Default (same as Black)
66             new Color( 180, 180, 180 ), // taxonomy
67             new Color( 180, 180, 180 ), // support
68             new Color( 140, 140, 140 ), // branch_length_color
69             new Color( 255, 255, 255 ), // branch_color
70             new Color( 255, 255, 255 ), // box_color
71             new Color( 255, 255, 255 ), // collapesed_fill_color
72             new Color( 0, 255, 0 ), // found_color 0
73             new Color( 255, 0, 0 ), // found_color 1
74             new Color( 255, 255, 0 ), // found_color 1 + 2
75             new Color( 255, 0, 0 ), // duplication_box_color
76             new Color( 0, 255, 0 ), // speciation_box_color
77             new Color( 255, 255, 0 ), // duplication_speciation_color
78             new Color( 230, 230, 230 ), // domain_label
79             new Color( 100, 100, 100 ), // domains_base
80             new Color( 65, 105, 255 ), // binary_domain_combinations_color
81             new Color( 173, 255, 47 ) // annotation
82             , new Color( 130, 130, 130 )                 // overview
83             }, { new Color( 0, 0, 0 ), // background_color
84             new Color( 0, 255, 255 ), // background_color_gradient_bottom
85             new Color( 230, 230, 230 ), // sequence  __ Black
86             new Color( 180, 180, 180 ), // taxonomy
87             new Color( 180, 180, 180 ), // support
88             new Color( 140, 140, 140 ), // branch_length_color
89             new Color( 255, 255, 255 ), // branch_color
90             new Color( 255, 255, 255 ), // box_color
91             new Color( 255, 255, 255 ), // collapesed_fill_color
92             new Color( 0, 255, 0 ), // found_color 0
93             new Color( 255, 0, 0 ), // found_color 1
94             new Color( 255, 255, 0 ), // found_color 1 + 2
95             new Color( 255, 0, 0 ), // duplication_box_color
96             new Color( 0, 255, 0 ), // speciation_box_color
97             new Color( 255, 255, 0 ), // duplication_speciation_color
98             new Color( 230, 230, 230 ), // domain_label
99             new Color( 100, 100, 100 ), // domains_base
100             new Color( 65, 105, 255 ), // binary_domain_combinations_color
101             new Color( 173, 255, 47 ) // annotation
102             , new Color( 130, 130, 130 ) // ov
103             }, { new Color( 255, 255, 255 ), // background_color
104             new Color( 0, 255, 255 ), // background_color_gradient_bottom
105             new Color( 0, 0, 0 ), // sequence  __ Black & White
106             new Color( 0, 0, 0 ), // taxonomy
107             new Color( 0, 0, 0 ), // support
108             new Color( 0, 0, 0 ), // branch_length_color
109             new Color( 0, 0, 0 ), // branch_color
110             new Color( 0, 0, 0 ), // box_color
111             new Color( 0, 0, 0 ), // collapesed_fill_color
112             new Color( 255, 0, 0 ), // found_color 0
113             new Color( 0, 255, 0 ), // found_color 1
114             new Color( 0, 0, 255 ), // found_color 1 + 2
115             new Color( 255, 0, 0 ), // duplication_box_color
116             new Color( 0, 255, 0 ), // speciation_box_color
117             new Color( 255, 255, 0 ), // duplication_speciation_color
118             new Color( 0, 0, 0 ), // domain_label
119             new Color( 100, 100, 100 ), // domains_base
120             new Color( 0, 0, 0 ), // binary_domain_combinations_color
121             new Color( 0, 0, 0 ) // annotation
122             , new Color( 220, 220, 220 ) // ov
123             }, 
124             
125             
126             
127             
128             { new Color( 255, 255, 255 ), // background_color
129                 new Color( 0, 255, 255 ), // background_color_gradient_bottom
130                 new Color( 0, 0, 153 ), //sequence __ NEW
131                 new Color( 0, 0, 102 ), // taxonomy
132                 new Color( 0, 0, 204 ), // support
133                 new Color( 0, 51, 255 ), // branch_length_color
134                 new Color( 0, 0, 0 ), // branch_color
135                 new Color( 0, 51, 255 ), // box_color
136                 new Color( 0, 51, 255 ), // collapesed_fill_color
137                 new Color( 0, 0, 255 ), // found_color 0
138                 new Color( 0, 255, 0 ), // found_color 1
139                 new Color( 0, 255, 255 ), // found_color 0 + 1
140                 new Color( 102, 51, 255 ), // duplication_box_color
141                 new Color( 153, 153, 153 ), // speciation_box_color
142                 new Color( 255, 255, 0 ), // duplication_speciation_color
143                 new Color( 51, 51, 51), // domain_label
144                 new Color(  51, 51, 51 ), // domains_base
145                 new Color( 0, 0, 153 ), // binary_domain_combinations_color
146                 new Color( 0, 0, 153 ),// annotation
147                 new Color( 51, 51, 51 ) // ov
148             }  ,
149             
150             
151             
152             
153             
154             
155             
156             { new Color( 0, 0, 0 ), // background_color
157             new Color( 0, 255, 255 ), // background_color_gradient_bottom
158             new Color( 220, 220, 220 ), // sequence __ Silver
159             new Color( 180, 180, 180 ), // taxonomy
160             new Color( 140, 140, 140 ), // support
161             new Color( 140, 140, 140 ), // branch_length_color
162             new Color( 240, 240, 240 ), // branch_color
163             new Color( 140, 140, 140 ), // box_color
164             new Color( 240, 240, 240 ), // collapesed_fill_color
165             new Color( 255, 0, 0 ), // found_color 0
166             new Color( 0, 255, 0 ), // found_color 1
167             new Color( 255, 255, 0 ), // found_color 1 + 2
168             new Color( 255, 0, 0 ), // duplication_box_color
169             new Color( 0, 255, 0 ), // speciation_box_color
170             new Color( 255, 255, 0 ), // duplication_speciation_color
171             new Color( 230, 230, 230 ), // domain_label
172             new Color( 100, 100, 100 ), // domains_base
173             new Color( 180, 180, 180 ), // binary_domain_combinations_color
174             new Color( 140, 140, 140 ) // annotation
175             , new Color( 40, 40, 40 ) // ov
176             }, { new Color( 0, 10, 0 ), // background_color
177             new Color( 0, 255, 255 ), // background_color_gradient_bottom
178             new Color( 0, 255, 0 ), // sequence __ the Matrix
179             new Color( 30, 200, 30 ), // taxonomy
180             new Color( 0, 155, 0 ), // support
181             new Color( 0, 100, 0 ), // branch_length_color
182             new Color( 0, 155, 0 ), // branch_color
183             new Color( 0, 255, 0 ), // box_color
184             new Color( 0, 155, 0 ), // collapesed_fill_color
185             new Color( 255, 0, 0 ), // found_color 0
186             new Color( 0, 255, 0 ), // found_color 1
187             new Color( 255, 255, 0 ), // found_color 1 + 2
188             new Color( 255, 0, 0 ), // duplication_box_color
189             new Color( 0, 255, 0 ), // speciation_box_color
190             new Color( 255, 255, 0 ), // duplication_speciation_color
191             new Color( 230, 230, 230 ), // domain_label
192             new Color( 100, 100, 100 ), // domains_base
193             new Color( 0, 235, 0 ), // binary_domain_combinations_color
194             new Color( 0, 235, 0 ) // annotation
195             , new Color( 40, 40, 40 ) // ov
196             }, { new Color( 255, 255, 255 ), // background_color
197             new Color( 0, 255, 255 ), // background_color_gradient_bottom
198             new Color( 0, 0, 0 ), //sequence __ White & Blue
199             new Color( 40, 40, 40 ), // taxonomy
200             new Color( 0, 125, 0 ), // support
201             new Color( 70, 70, 0 ), // branch_length_color
202             new Color( 0, 20, 200 ), // branch_color
203             new Color( 0, 20, 200 ), // box_color
204             new Color( 0, 20, 200 ), // collapesed_fill_color
205             new Color( 0, 255, 0 ), // found_color 0
206             new Color( 255, 0, 0 ), // found_color 1
207             new Color( 0, 0, 255 ), // found_color 0 + 1
208             new Color( 255, 0, 0 ), // duplication_box_color
209             new Color( 0, 255, 0 ), // speciation_box_color
210             new Color( 255, 255, 0 ), // duplication_speciation_color
211             new Color( 0, 0, 0 ), // domain_label
212             new Color( 50, 50, 50 ), // domains_base
213             new Color( 65, 105, 225 ), // binary_domain_combinations_color
214             new Color( 173, 255, 47 ) // annotation
215             , new Color( 220, 220, 220 ) // ov
216             }, { new Color( 0, 0, 0 ), // background_color
217             new Color( 0, 255, 255 ), // background_color_gradient_bottom
218             new Color( 255, 255, 255 ), // sequence __ Cyan
219             new Color( 200, 200, 200 ), // taxonomy
220             new Color( 255, 255, 255 ), // support
221             new Color( 200, 200, 200 ), // branch_length_color
222             new Color( 0, 255, 255 ), // branch_color
223             new Color( 0, 255, 255 ), // box_color
224             new Color( 0, 255, 255 ), // collapesed_fill_color
225             new Color( 0, 255, 0 ), // found_color 0
226             new Color( 0, 0, 255 ), // found_color 1
227             new Color( 0, 255, 255 ), // found_color 0 + 1
228             new Color( 255, 0, 0 ), // duplication_box_color
229             new Color( 0, 255, 0 ), // speciation_box_color
230             new Color( 255, 255, 0 ), // duplication_speciation_color
231             new Color( 230, 230, 230 ), // domain_label
232             new Color( 100, 100, 100 ), // domains_base
233             new Color( 65, 105, 225 ), // binary_domain_combinations_color
234             new Color( 173, 255, 47 ) // annotation
235             , new Color( 0, 120, 120 ) // ov
236             }, { new Color( 0, 0, 0 ), // background_color
237             new Color( 0, 255, 255 ), // background_color_gradient_bottom
238             new Color( 255, 200, 0 ), // sequence __ Clockwork
239             new Color( 255, 200, 0 ), // taxonomy
240             new Color( 255, 200, 0 ), // support
241             new Color( 255, 200, 0 ), // branch_length_color
242             new Color( 255, 200, 0 ), // branch_color
243             new Color( 255, 200, 0 ), // box_color
244             new Color( 255, 200, 0 ), // collapesed_fill_color
245             new Color( 255, 255, 0 ), // found_color 0
246             new Color( 0, 255, 255 ), // found_color 1
247             new Color( 255, 255, 255 ), // found_color 0 + 1
248             new Color( 255, 0, 0 ), // duplication_box_color
249             new Color( 0, 255, 0 ), // speciation_box_color
250             new Color( 255, 255, 0 ), // duplication_speciation_color
251             new Color( 255, 200, 0 ), // domain_label
252             new Color( 255, 200, 0 ), // domains_base
253             new Color( 150, 150, 150 ), // binary_domain_combinations_color
254             new Color( 150, 150, 150 ) // annotation
255             , new Color( 150, 150, 150 ) // ov
256             }, { new Color( 0, 0, 100 ), // background_color
257             new Color( 0, 255, 255 ), // background_color_gradient_bottom
258             new Color( 255, 255, 255 ), // sequence __ Blue
259             new Color( 255, 255, 255 ), // taxonomy
260             new Color( 255, 0, 0 ), // support
261             new Color( 255, 0, 0 ), // branch_length_color
262             new Color( 255, 0, 0 ), // branch_color
263             new Color( 255, 0, 0 ), // box_color
264             new Color( 255, 0, 0 ), // collapesed_fill_color
265             new Color( 0, 255, 0 ), // found_color
266             new Color( 255, 0, 0 ), // found_color 1
267             new Color( 255, 255, 0 ), // found_color 1 + 2
268             new Color( 255, 0, 0 ), // duplication_box_color
269             new Color( 0, 255, 0 ), // speciation_box_color
270             new Color( 255, 255, 0 ), // duplication_speciation_color
271             new Color( 255, 255, 255 ), // domain_label
272             new Color( 100, 100, 100 ), // domains_base
273             new Color( 255, 255, 255 ), // binary_domain_combinations_color
274             new Color( 255, 255, 255 ) // annotation
275             , new Color( 77, 77, 255 ) // ov
276             }, { new Color( 0, 0, 0 ), // background_color
277             new Color( 0, 255, 255 ), // background_color_gradient_bottom
278             new Color( 255, 255, 255 ), // sequence __ blue &  white
279             new Color( 255, 255, 255 ), // taxonomy
280             new Color( 255, 255, 255 ), // support
281             new Color( 0, 191, 255 ), // branch_length_color
282             new Color( 0, 191, 255 ), // branch_color
283             new Color( 0, 191, 255 ), // box_color
284             new Color( 0, 191, 255 ), // collapesed_fill_color
285             new Color( 255, 0, 0 ), // found_color 0
286             new Color( 0, 255, 0 ), // found_color 1
287             new Color( 255, 255, 0 ), // found_color 0 + 1
288             new Color( 255, 0, 0 ), // duplication_box_color
289             new Color( 0, 255, 0 ), // speciation_box_color
290             new Color( 255, 255, 0 ), // duplication_speciation_color
291             new Color( 255, 255, 255 ), // domain_label
292             new Color( 150, 150, 150 ), // domains_base
293             new Color( 255, 255, 255 ), // binary_domain_combinations_color
294             new Color( 255, 255, 255 ) // annotation
295             , new Color( 170, 187, 204 ) // ov
296             }, { new Color( 0, 0, 0 ), // background_color
297             new Color( 255, 255, 0 ), // background_color_gradient_bottom
298             new Color( 127, 255, 0 ), // sequence __ Neon
299             new Color( 255, 110, 199 ), // taxonomy
300             new Color( 234, 173, 234 ), // support
301             new Color( 77, 77, 255 ), // branch_length_color
302             new Color( 234, 173, 234 ), // branch_color
303             new Color( 77, 77, 255 ), // box_color
304             new Color( 234, 173, 234 ), // collapsed_fill_color
305             new Color( 243, 243, 21 ), // found_color 0
306             new Color( 255, 20, 147 ), // found_color 1
307             new Color( 255, 255, 255 ), // found_color 1 + 2
308             new Color( 255, 0, 0 ), // duplication_box_color
309             new Color( 0, 255, 0 ), // speciation_box_color
310             new Color( 255, 255, 0 ), // duplication_speciation_color
311             new Color( 127, 255, 0 ), // domain_label
312             new Color( 234, 173, 234 ), // domains_base
313             new Color( 27, 255, 0 ), // binary_domain_combinations_color
314             new Color( 27, 255, 0 ) // annotation
315             , new Color( 77, 77, 255 ) // ov
316             }                                            };
317     private Color              annotation_color;
318     private Color              background_color;
319     private Color              background_color_gradient_bottom;
320     private Color              binary_domain_combinations_color;
321     private Color              bootstrap_color;
322     private Color              box_color;
323     private Color              branch_color;
324     private Color              branch_length_color;
325     private Color              collapse_fill_color;
326     private Color              domain_label_color;
327     private Color              domain_base_color;
328     private Color              dup_box_color;
329     private Color              duplication_or_specation_color;
330     private Color              found_color_0;
331     private Color              found_color_0_and_1;
332     private Color              found_color_1;
333     private Color              ov_color;
334     // The drawing colors
335     private Color              seq_color;
336     private Color              spec_box_color;
337     private Color              taxonomy_color;
338
339     private TreeColorSet() {
340         // Hidden constructor.
341     }
342
343     public Color getDomainBaseColor() {
344         return domain_base_color;
345     }
346
347     public Color getDomainLabelColor() {
348         return domain_label_color;
349     }
350
351     private void setColorForDefault( final int i, final Color color ) {
352         _color_schemes[ 0 ][ i ] = color;
353     }
354
355     void cycleColorScheme() {
356         if ( getCurrentColorScheme() >= ( _color_schemes.length - 1 ) ) {
357             setColorSchema( 0 );
358         }
359         else {
360             setColorSchema( getCurrentColorScheme() + 1 );
361         }
362     }
363
364     Color getAnnotationColor() {
365         return annotation_color;
366     }
367
368     Color getBackgroundColor() {
369         return background_color;
370     }
371
372     Color getBackgroundColorGradientBottom() {
373         return background_color_gradient_bottom;
374     }
375
376     Color getBinaryDomainCombinationsColor() {
377         if ( AptxConstants.SPECIAL_CUSTOM ) {
378             return new Color( 50, 50, 50 );
379         }
380         return binary_domain_combinations_color;
381     }
382
383     Color getBoxColor() {
384         return box_color;
385     }
386
387     Color getBranchColor() {
388         return branch_color;
389     }
390
391     Color getBranchColorForPdf() {
392         return Color.BLACK;
393     }
394
395     Color getBranchLengthColor() {
396         return branch_length_color;
397     }
398
399     Color getCollapseFillColor() {
400         return collapse_fill_color;
401     }
402
403     Color[][] getColorSchemes() {
404         return _color_schemes;
405     }
406
407     Color getConfidenceColor() {
408         return bootstrap_color;
409     }
410
411     int getCurrentColorScheme() {
412         return _color_scheme;
413     }
414
415     String getCurrentColorSchemeName() {
416         return SCHEME_NAMES[ getCurrentColorScheme() ];
417     }
418
419     Color getDuplicationBoxColor() {
420         return dup_box_color;
421     }
422
423     Color getDuplicationOrSpeciationColor() {
424         return duplication_or_specation_color;
425     }
426
427     Color getFoundColor0() {
428         return found_color_0;
429     }
430
431     Color getFoundColor0and1() {
432         return found_color_0_and_1;
433     }
434
435     Color getFoundColor1() {
436         return found_color_1;
437     }
438
439     Color getGainedCharactersColor() {
440         return Color.GREEN;
441     }
442
443     Color getLostCharactersColor() {
444         return Color.RED;
445     }
446
447     Color getOvColor() {
448         return ov_color;
449     }
450
451     Color getSequenceColor() {
452         return seq_color;
453     }
454
455     Color getSpecBoxColor() {
456         return spec_box_color;
457     }
458
459     Color getTaxonomyColor() {
460         return taxonomy_color;
461     }
462
463     void setColorforDefault( final String color_field_name, final Color color ) {
464         final String query = color_field_name.trim().replace( '_', ' ' );
465         boolean found = false;
466         int i = 0;
467         for( final String cf : COLOR_FIELDS ) {
468             if ( query.equalsIgnoreCase( cf ) ) {
469                 found = true;
470                 setColorForDefault( i, color );
471                 break;
472             }
473             ++i;
474         }
475         if ( !found ) {
476             throw new IllegalArgumentException( "unknown color field name [" + color_field_name + "]" );
477         }
478     }
479
480     /**
481      * Switches colors between different schemes.
482      */
483     void setColorSchema( final int scheme ) {
484         _color_scheme = scheme;
485         background_color = _color_schemes[ scheme ][ 0 ];
486         background_color_gradient_bottom = _color_schemes[ scheme ][ 1 ];
487         seq_color = _color_schemes[ scheme ][ 2 ];
488         taxonomy_color = _color_schemes[ scheme ][ 3 ];
489         bootstrap_color = _color_schemes[ scheme ][ 4 ];
490         branch_length_color = _color_schemes[ scheme ][ 5 ];
491         branch_color = _color_schemes[ scheme ][ 6 ];
492         box_color = _color_schemes[ scheme ][ 7 ];
493         collapse_fill_color = _color_schemes[ scheme ][ 8 ];
494         found_color_0 = _color_schemes[ scheme ][ 9 ];
495         found_color_1 = _color_schemes[ scheme ][ 10 ];
496         found_color_0_and_1 = _color_schemes[ scheme ][ 11 ];
497         dup_box_color = _color_schemes[ scheme ][ 12 ];
498         spec_box_color = _color_schemes[ scheme ][ 13 ];
499         duplication_or_specation_color = _color_schemes[ scheme ][ 14 ];
500         domain_label_color = _color_schemes[ scheme ][ 15 ];
501         domain_base_color = _color_schemes[ scheme ][ 16 ];
502         binary_domain_combinations_color = _color_schemes[ scheme ][ 17 ];
503         annotation_color = _color_schemes[ scheme ][ 18 ];
504         ov_color = _color_schemes[ scheme ][ 19 ];
505     }
506
507     void setCurrentColorScheme( final int color_scheme ) {
508         _color_scheme = color_scheme;
509     }
510
511     static TreeColorSet createInstance() {
512         final TreeColorSet tcs = new TreeColorSet();
513         tcs.setColorSchema( 0 );
514         return tcs;
515     }
516
517     static TreeColorSet createInstance( final Configuration configuration ) {
518         final TreeColorSet tcs = new TreeColorSet();
519         if ( ( configuration != null ) && ( configuration.getDisplayColors() != null )
520                 && ( configuration.getDisplayColors().size() > 0 ) ) {
521             final Map<String, Color> colors = configuration.getDisplayColors();
522             for( final String field : colors.keySet() ) {
523                 final Color color = colors.get( field );
524                 try {
525                     tcs.setColorforDefault( field, color );
526                 }
527                 catch ( final IllegalArgumentException ex ) {
528                     ForesterUtil.printWarningMessage( AptxConstants.PRG_NAME, ex.getMessage() );
529                 }
530             }
531         }
532         tcs.setColorSchema( 0 );
533         return tcs;
534     }
535 }