in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / TreeColorSet.java
index 2abad1d..c83d135 100644 (file)
@@ -22,7 +22,7 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 //
 // Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
 
 package org.forester.archaeopteryx;
 
@@ -31,249 +31,296 @@ import java.util.Map;
 
 import org.forester.util.ForesterUtil;
 
-/*
- * Maintains the color schemes and a set of colors for drawing a tree.
- */
 public final class TreeColorSet {
 
-    public static final String OVERVIEW                   = "Overview";
     public static final String ANNOTATION                 = "Annotation";
+    public static final String BACKGROUND                 = "Background";
+    public static final String BACKGROUND_GRADIENT_BOTTOM = "Background Gradient Bottom";
     public static final String BINARY_DOMAIN_COMBINATIONS = "Binary Domain Combinations";
-    public static final String DOMAINS                    = "Domains";
-    public static final String DUPLICATION_OR_SPECATION   = "Duplication or Specation";
-    public static final String SPECIATION                 = "Speciation";
-    public static final String DUPLICATION                = "Duplication";
-    public static final String MATCHING_NODES             = "Matching Nodes";
-    public static final String COLLAPSED                  = "Collapsed";
-    public static final String NODE_BOX                   = "Node Box";
     public static final String BRANCH                     = "Branch";
     public static final String BRANCH_LENGTH              = "Branch Length";
+    public static final String COLLAPSED                  = "Collapsed";
     public static final String CONFIDENCE                 = "Confidence";
-    public static final String TAXONOMY                   = "Taxonomy";
+    public static final String DOMAIN_LABEL               = "Domain Label";
+    public static final String DOMAIN_BASE                = "Domain Base";
+    public static final String DUPLICATION                = "Duplication";
+    public static final String DUPLICATION_OR_SPECATION   = "Duplication or Specation";
+    public static final String MATCHING_NODES_A           = "Matching A";
+    public static final String MATCHING_NODES_A_AND_B     = "Matching A and B";
+    public static final String MATCHING_NODES_B           = "Matching B";
+    public static final String NODE_BOX                   = "Node Box";
+    public static final String OVERVIEW                   = "Overview";
     public static final String SEQUENCE                   = "Sequence";
-    public static final String BACKGROUND_GRADIENT_BOTTOM = "Background Gradient Bottom";
-    public static final String BACKGROUND                 = "Background";
-    static final String[]      SCHEME_NAMES               = { "Default", "Black", "Black & White", "Silver",
-            "The Matrix", "White & Blue", "Cyan", "Clockwork", "Blue", "Blue & White", "Neon" };
+    public static final String SPECIATION                 = "Speciation";
+    public static final String TAXONOMY                   = "Taxonomy";
     static final String[]      COLOR_FIELDS               = { BACKGROUND, BACKGROUND_GRADIENT_BOTTOM, SEQUENCE,
-            TAXONOMY, CONFIDENCE, BRANCH_LENGTH, BRANCH, NODE_BOX, COLLAPSED, MATCHING_NODES, DUPLICATION, SPECIATION,
-            DUPLICATION_OR_SPECATION, DOMAINS, BINARY_DOMAIN_COMBINATIONS, ANNOTATION, OVERVIEW };
-    // All the color sets; better be the same # of sets as there are names!
-    private final Color[][]    _color_schemes             = { { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 100, 100 ), // background_color_gradient_bottom
-            new Color( 220, 220, 220 ), // sequence  __ Default (same as Black)
-            new Color( 180, 180, 180 ), // taxonomy
-            new Color( 56, 176, 222 ), // support  
-            new Color( 140, 140, 140 ), // branch_length_color
-            new Color( 255, 255, 255 ), // branch_color
-            new Color( 255, 255, 255 ), // box_color
-            new Color( 255, 255, 0 ), // collapesed_fill_color
-            new Color( 0, 255, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 123, 104, 238 ), // domains_color  
-            new Color( 65, 105, 255 ), // binary_domain_combinations_color  
-            new Color( 173, 255, 47 ) // annotation
-            , new Color( 130, 130, 130 )                 // overview
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom    
-            new Color( 220, 220, 220 ), // sequence  __ Black
-            new Color( 180, 180, 180 ), // taxonomy
-            new Color( 56, 176, 222 ), // support  
-            new Color( 140, 140, 140 ), // branch_length_color
-            new Color( 255, 255, 255 ), // branch_color
-            new Color( 255, 255, 255 ), // box_color
-            new Color( 255, 255, 0 ), // collapesed_fill_color
-            new Color( 0, 255, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 123, 104, 238 ), // domains_color
-            new Color( 65, 105, 255 ), // binary_domain_combinations_color
-            new Color( 173, 255, 47 ) // annotation
-            , new Color( 130, 130, 130 ) // ov
-            }, { new Color( 255, 255, 255 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 0, 0, 0 ), // sequence  __ Black & White
-            new Color( 0, 0, 0 ), // taxonomy
-            new Color( 0, 0, 0 ), // support 
-            new Color( 0, 0, 0 ), // branch_length_color
-            new Color( 0, 0, 0 ), // branch_color
-            new Color( 0, 0, 0 ), // box_color
-            new Color( 0, 0, 0 ), // collapesed_fill_color
-            new Color( 255, 0, 0 ), // found_color
-            new Color( 0, 0, 0 ), // duplication_box_color
-            new Color( 200, 200, 200 ), // speciation_box_color
-            new Color( 0, 0, 0 ), // duplication_speciation_color
-            new Color( 0, 0, 0 ), // domains_color
-            new Color( 0, 0, 0 ), // binary_domain_combinations_color
-            new Color( 0, 0, 0 ) // annotation
-            , new Color( 220, 220, 220 ) // ov
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 220, 220, 220 ), // sequence __ Silver
-            new Color( 180, 180, 180 ), // taxonomy
-            new Color( 140, 140, 140 ), // support 
-            new Color( 140, 140, 140 ), // branch_length_color
-            new Color( 240, 240, 240 ), // branch_color
-            new Color( 140, 140, 140 ), // box_color
-            new Color( 140, 140, 140 ), // collapesed_fill_color
-            new Color( 255, 0, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 200, 200, 200 ), // speciation_box_color
-            new Color( 140, 140, 140 ), // duplication_speciation_color
-            new Color( 180, 180, 180 ), // domains_color
-            new Color( 180, 180, 180 ), // binary_domain_combinations_color
-            new Color( 140, 140, 140 ) // annotation
-            , new Color( 40, 40, 40 ) // ov
-            }, { new Color( 0, 10, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 0, 255, 0 ), // sequence __ the Matrix
-            new Color( 30, 200, 30 ), // taxonomy
-            new Color( 0, 155, 0 ), // support 
-            new Color( 0, 100, 0 ), // branch_length_color
-            new Color( 0, 155, 0 ), // branch_color
-            new Color( 0, 255, 0 ), // box_color
-            new Color( 0, 255, 0 ), // collapesed_fill_color
-            new Color( 255, 255, 255 ), // found_color
-            new Color( 255, 255, 255 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 120, 120, 120 ), // duplication_speciation_color
-            new Color( 0, 235, 0 ), // domains_color
-            new Color( 0, 235, 0 ), // binary_domain_combinations_color
-            new Color( 0, 235, 0 ) // annotation
-            , new Color( 40, 40, 40 ) // ov
-            }, { new Color( 255, 255, 255 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 0, 0, 0 ), //sequence __ White & Blue
-            new Color( 40, 40, 40 ), // taxonomy
-            new Color( 0, 125, 0 ), // support 
-            new Color( 70, 70, 0 ), // branch_length_color
-            new Color( 0, 20, 200 ), // branch_color
-            new Color( 0, 20, 200 ), // box_color
-            new Color( 255, 255, 0 ), // collapesed_fill_color
-            new Color( 0, 255, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 123, 104, 238 ), // domains_color
-            new Color( 65, 105, 225 ), // binary_domain_combinations_color
-            new Color( 173, 255, 47 ) // annotation
-            , new Color( 220, 220, 220 ) // ov
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 255, 255, 255 ), // sequence __ Cyan
-            new Color( 200, 200, 200 ), // taxonomy
-            new Color( 255, 255, 255 ), // support 
-            new Color( 200, 200, 200 ), // branch_length_color
-            new Color( 0, 255, 255 ), // branch_color
-            new Color( 0, 255, 255 ), // box_color
-            new Color( 255, 255, 0 ), // collapesed_fill_color
-            new Color( 0, 255, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 123, 104, 238 ), // domains_color
-            new Color( 65, 105, 225 ), // binary_domain_combinations_color
-            new Color( 173, 255, 47 ) // annotation
-            , new Color( 0, 120, 120 ) // ov
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 255, 200, 0 ), // sequence __ Clockwork
-            new Color( 255, 200, 0 ), // taxonomy
-            new Color( 255, 200, 0 ), // support 
-            new Color( 255, 200, 0 ), // branch_length_color
-            new Color( 255, 200, 0 ), // branch_color
-            new Color( 255, 200, 0 ), // box_color
-            new Color( 255, 255, 255 ), // collapesed_fill_color
-            new Color( 255, 255, 255 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 150, 150, 150 ), // domains_color
-            new Color( 150, 150, 150 ), // binary_domain_combinations_color
-            new Color( 150, 150, 150 ) // annotation
-            , new Color( 150, 150, 150 ) // ov
-            }, { new Color( 0, 0, 100 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 255, 255, 255 ), // sequence __ Blue
-            new Color( 255, 255, 255 ), // taxonomy
-            new Color( 255, 0, 0 ), // support 
-            new Color( 255, 0, 0 ), // branch_length_color
-            new Color( 255, 0, 0 ), // branch_color
-            new Color( 255, 0, 0 ), // box_color
-            new Color( 0, 0, 0 ), // collapesed_fill_color
-            new Color( 0, 255, 0 ), // found_color
-            new Color( 255, 0, 255 ), // duplication_box_color
-            new Color( 255, 255, 255 ), // speciation_box_color
-            new Color( 100, 100, 100 ), // duplication_speciation_color
-            new Color( 255, 255, 255 ), // domains_color
-            new Color( 255, 255, 255 ), // binary_domain_combinations_color
-            new Color( 255, 255, 255 ) // annotation
-            , new Color( 77, 77, 255 ) // ov
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 0, 255, 255 ), // background_color_gradient_bottom
-            new Color( 255, 255, 255 ), // sequence __ blue &  white
-            new Color( 255, 255, 255 ), // taxonomy
-            new Color( 255, 255, 255 ), // support 
-            new Color( 0, 191, 255 ), // branch_length_color
-            new Color( 0, 191, 255 ), // branch_color
-            new Color( 0, 191, 255 ), // box_color
-            new Color( 255, 255, 255 ), // collapesed_fill_color
-            new Color( 255, 0, 0 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 255, 255, 255 ), // domains_color
-            new Color( 255, 255, 255 ), // binary_domain_combinations_color
-            new Color( 255, 255, 255 ) // annotation
-            , new Color( 170, 187, 204 ) // ov
-            }, { new Color( 0, 0, 0 ), // background_color
-            new Color( 255, 255, 0 ), // background_color_gradient_bottom
-            new Color( 127, 255, 0 ), // sequence __ Neon
-            new Color( 255, 110, 199 ), // taxonomy
-            new Color( 234, 173, 234 ), // support 
-            new Color( 77, 77, 255 ), // branch_length_color
-            new Color( 234, 173, 234 ), // branch_color
-            new Color( 77, 77, 255 ), // box_color
-            new Color( 77, 77, 255 ), // collapesed_fill_color
-            new Color( 243, 243, 21 ), // found_color
-            new Color( 255, 0, 0 ), // duplication_box_color
-            new Color( 0, 255, 0 ), // speciation_box_color
-            new Color( 255, 255, 0 ), // duplication_speciation_color
-            new Color( 27, 255, 0 ), // domains_color
-            new Color( 27, 255, 0 ), // binary_domain_combinations_color
-            new Color( 27, 255, 0 ) // annotation
-            , new Color( 77, 77, 255 ) // ov
-            }                                            };
-    // Color schemes:
+        TAXONOMY, CONFIDENCE, BRANCH_LENGTH, BRANCH, NODE_BOX, COLLAPSED, MATCHING_NODES_A, MATCHING_NODES_B,
+        MATCHING_NODES_A_AND_B, DUPLICATION, SPECIATION, DUPLICATION_OR_SPECATION, DOMAIN_LABEL, DOMAIN_BASE,
+        BINARY_DOMAIN_COMBINATIONS, ANNOTATION, OVERVIEW };
+    static final String[]      SCHEME_NAMES               = { "Default", "Black", "Black & White", "Silver", "Green",
+        "White & Blue", "Cyan", "Orange", "Blue", "Blue & White", "Neon" };
     private int                _color_scheme;
-    // The drawing colors
-    private Color              seq_color;
-    private Color              taxonomy_color;
-    private Color              bootstrap_color;
-    private Color              branch_length_color;
-    private Color              branch_color;
-    private Color              box_color;
+    private final Color[][]    _color_schemes             = { { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 100, 100 ), // background_color_gradient_bottom
+        new Color( 230, 230, 230 ), // sequence  __ Default (same as Black)
+        new Color( 180, 180, 180 ), // taxonomy
+        new Color( 180, 180, 180 ), // support
+        new Color( 140, 140, 140 ), // branch_length_color
+        new Color( 255, 255, 255 ), // branch_color
+        new Color( 255, 255, 255 ), // box_color
+        new Color( 255, 255, 255 ), // collapesed_fill_color
+        new Color( 0, 255, 0 ), // found_color 0
+        new Color( 255, 0, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 230, 230, 230 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 65, 105, 255 ), // binary_domain_combinations_color
+        new Color( 173, 255, 47 ) // annotation
+    , new Color( 130, 130, 130 )                 // overview
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 230, 230, 230 ), // sequence  __ Black
+        new Color( 180, 180, 180 ), // taxonomy
+        new Color( 180, 180, 180 ), // support
+        new Color( 140, 140, 140 ), // branch_length_color
+        new Color( 255, 255, 255 ), // branch_color
+        new Color( 255, 255, 255 ), // box_color
+        new Color( 255, 255, 255 ), // collapesed_fill_color
+        new Color( 0, 255, 0 ), // found_color 0
+        new Color( 255, 0, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 230, 230, 230 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 65, 105, 255 ), // binary_domain_combinations_color
+        new Color( 173, 255, 47 ) // annotation
+    , new Color( 130, 130, 130 ) // ov
+    }, { new Color( 255, 255, 255 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 0, 0, 0 ), // sequence  __ Black & White
+        new Color( 0, 0, 0 ), // taxonomy
+        new Color( 0, 0, 0 ), // support
+        new Color( 0, 0, 0 ), // branch_length_color
+        new Color( 0, 0, 0 ), // branch_color
+        new Color( 0, 0, 0 ), // box_color
+        new Color( 0, 0, 0 ), // collapesed_fill_color
+        new Color( 255, 0, 0 ), // found_color 0
+        new Color( 0, 255, 0 ), // found_color 1
+        new Color( 0, 0, 255 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 0, 0, 0 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 0, 0, 0 ), // binary_domain_combinations_color
+        new Color( 0, 0, 0 ) // annotation
+    , new Color( 220, 220, 220 ) // ov
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 220, 220, 220 ), // sequence __ Silver
+        new Color( 180, 180, 180 ), // taxonomy
+        new Color( 140, 140, 140 ), // support
+        new Color( 140, 140, 140 ), // branch_length_color
+        new Color( 240, 240, 240 ), // branch_color
+        new Color( 140, 140, 140 ), // box_color
+        new Color( 240, 240, 240 ), // collapesed_fill_color
+        new Color( 255, 0, 0 ), // found_color 0
+        new Color( 0, 255, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 230, 230, 230 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 180, 180, 180 ), // binary_domain_combinations_color
+        new Color( 140, 140, 140 ) // annotation
+    , new Color( 40, 40, 40 ) // ov
+    }, { new Color( 0, 10, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 0, 255, 0 ), // sequence __ the Matrix
+        new Color( 30, 200, 30 ), // taxonomy
+        new Color( 0, 155, 0 ), // support
+        new Color( 0, 100, 0 ), // branch_length_color
+        new Color( 0, 155, 0 ), // branch_color
+        new Color( 0, 255, 0 ), // box_color
+        new Color( 0, 155, 0 ), // collapesed_fill_color
+        new Color( 255, 0, 0 ), // found_color 0
+        new Color( 0, 255, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 230, 230, 230 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 0, 235, 0 ), // binary_domain_combinations_color
+        new Color( 0, 235, 0 ) // annotation
+    , new Color( 40, 40, 40 ) // ov
+    }, { new Color( 255, 255, 255 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 0, 0, 0 ), //sequence __ White & Blue
+        new Color( 40, 40, 40 ), // taxonomy
+        new Color( 0, 125, 0 ), // support
+        new Color( 70, 70, 0 ), // branch_length_color
+        new Color( 0, 20, 200 ), // branch_color
+        new Color( 0, 20, 200 ), // box_color
+        new Color( 0, 20, 200 ), // collapesed_fill_color
+        new Color( 0, 255, 0 ), // found_color 0
+        new Color( 255, 0, 0 ), // found_color 1
+        new Color( 0, 0, 255 ), // found_color 0 + 1
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 0, 0, 0 ), // domain_label
+        new Color( 50, 50, 50 ), // domains_base
+        new Color( 65, 105, 225 ), // binary_domain_combinations_color
+        new Color( 173, 255, 47 ) // annotation
+    , new Color( 220, 220, 220 ) // ov
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 255, 255, 255 ), // sequence __ Cyan
+        new Color( 200, 200, 200 ), // taxonomy
+        new Color( 255, 255, 255 ), // support
+        new Color( 200, 200, 200 ), // branch_length_color
+        new Color( 0, 255, 255 ), // branch_color
+        new Color( 0, 255, 255 ), // box_color
+        new Color( 0, 255, 255 ), // collapesed_fill_color
+        new Color( 0, 255, 0 ), // found_color 0
+        new Color( 0, 0, 255 ), // found_color 1
+        new Color( 0, 255, 255 ), // found_color 0 + 1
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 230, 230, 230 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 65, 105, 225 ), // binary_domain_combinations_color
+        new Color( 173, 255, 47 ) // annotation
+    , new Color( 0, 120, 120 ) // ov
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 255, 200, 0 ), // sequence __ Clockwork
+        new Color( 255, 200, 0 ), // taxonomy
+        new Color( 255, 200, 0 ), // support
+        new Color( 255, 200, 0 ), // branch_length_color
+        new Color( 255, 200, 0 ), // branch_color
+        new Color( 255, 200, 0 ), // box_color
+        new Color( 255, 200, 0 ), // collapesed_fill_color
+        new Color( 255, 255, 0 ), // found_color 0
+        new Color( 0, 255, 255 ), // found_color 1
+        new Color( 255, 255, 255 ), // found_color 0 + 1
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 255, 200, 0 ), // domain_label
+        new Color( 255, 200, 0 ), // domains_base
+        new Color( 150, 150, 150 ), // binary_domain_combinations_color
+        new Color( 150, 150, 150 ) // annotation
+    , new Color( 150, 150, 150 ) // ov
+    }, { new Color( 0, 0, 100 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 255, 255, 255 ), // sequence __ Blue
+        new Color( 255, 255, 255 ), // taxonomy
+        new Color( 255, 0, 0 ), // support
+        new Color( 255, 0, 0 ), // branch_length_color
+        new Color( 255, 0, 0 ), // branch_color
+        new Color( 255, 0, 0 ), // box_color
+        new Color( 255, 0, 0 ), // collapesed_fill_color
+        new Color( 0, 255, 0 ), // found_color
+        new Color( 255, 0, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 255, 255, 255 ), // domain_label
+        new Color( 100, 100, 100 ), // domains_base
+        new Color( 255, 255, 255 ), // binary_domain_combinations_color
+        new Color( 255, 255, 255 ) // annotation
+    , new Color( 77, 77, 255 ) // ov
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 0, 255, 255 ), // background_color_gradient_bottom
+        new Color( 255, 255, 255 ), // sequence __ blue &  white
+        new Color( 255, 255, 255 ), // taxonomy
+        new Color( 255, 255, 255 ), // support
+        new Color( 0, 191, 255 ), // branch_length_color
+        new Color( 0, 191, 255 ), // branch_color
+        new Color( 0, 191, 255 ), // box_color
+        new Color( 0, 191, 255 ), // collapesed_fill_color
+        new Color( 255, 0, 0 ), // found_color 0
+        new Color( 0, 255, 0 ), // found_color 1
+        new Color( 255, 255, 0 ), // found_color 0 + 1
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 255, 255, 255 ), // domain_label
+        new Color( 150, 150, 150 ), // domains_base
+        new Color( 255, 255, 255 ), // binary_domain_combinations_color
+        new Color( 255, 255, 255 ) // annotation
+    , new Color( 170, 187, 204 ) // ov
+    }, { new Color( 0, 0, 0 ), // background_color
+        new Color( 255, 255, 0 ), // background_color_gradient_bottom
+        new Color( 127, 255, 0 ), // sequence __ Neon
+        new Color( 255, 110, 199 ), // taxonomy
+        new Color( 234, 173, 234 ), // support
+        new Color( 77, 77, 255 ), // branch_length_color
+        new Color( 234, 173, 234 ), // branch_color
+        new Color( 77, 77, 255 ), // box_color
+        new Color( 234, 173, 234 ), // collapsed_fill_color
+        new Color( 243, 243, 21 ), // found_color 0
+        new Color( 255, 20, 147 ), // found_color 1
+        new Color( 255, 255, 255 ), // found_color 1 + 2
+        new Color( 255, 0, 0 ), // duplication_box_color
+        new Color( 0, 255, 0 ), // speciation_box_color
+        new Color( 255, 255, 0 ), // duplication_speciation_color
+        new Color( 127, 255, 0 ), // domain_label
+        new Color( 234, 173, 234 ), // domains_base
+        new Color( 27, 255, 0 ), // binary_domain_combinations_color
+        new Color( 27, 255, 0 ) // annotation
+    , new Color( 77, 77, 255 ) // ov
+    }                                            };
+    private Color              annotation_color;
     private Color              background_color;
     private Color              background_color_gradient_bottom;
-    private Color              dup_box_color;
-    private Color              spec_box_color;
+    private Color              binary_domain_combinations_color;
+    private Color              bootstrap_color;
+    private Color              box_color;
+    private Color              branch_color;
+    private Color              branch_length_color;
     private Color              collapse_fill_color;
-    private Color              found_color;
+    private Color              domain_label_color;
+    private Color              domain_base_color;
+    private Color              dup_box_color;
     private Color              duplication_or_specation_color;
-    private Color              domains_color;
-    private Color              binary_domain_combinations_color;
-    private Color              annotation_color;
+    private Color              found_color_0;
+    private Color              found_color_0_and_1;
+    private Color              found_color_1;
     private Color              ov_color;
+    // The drawing colors
+    private Color              seq_color;
+    private Color              spec_box_color;
+    private Color              taxonomy_color;
 
     private TreeColorSet() {
         // Hidden constructor.
     }
 
+    public Color getDomainBaseColor() {
+        return domain_base_color;
+    }
+
+    public Color getDomainLabelColor() {
+        return domain_label_color;
+    }
+
+    private void setColorForDefault( final int i, final Color color ) {
+        _color_schemes[ 0 ][ i ] = color;
+    }
+
     void cycleColorScheme() {
-        if ( getCurrentColorScheme() >= _color_schemes.length - 1 ) {
+        if ( getCurrentColorScheme() >= ( _color_schemes.length - 1 ) ) {
             setColorSchema( 0 );
         }
         else {
@@ -336,10 +383,6 @@ public final class TreeColorSet {
         return SCHEME_NAMES[ getCurrentColorScheme() ];
     }
 
-    Color getDomainsColor() {
-        return domains_color;
-    }
-
     Color getDuplicationBoxColor() {
         return dup_box_color;
     }
@@ -348,8 +391,16 @@ public final class TreeColorSet {
         return duplication_or_specation_color;
     }
 
-    Color getFoundColor() {
-        return found_color;
+    Color getFoundColor0() {
+        return found_color_0;
+    }
+
+    Color getFoundColor0and1() {
+        return found_color_0_and_1;
+    }
+
+    Color getFoundColor1() {
+        return found_color_1;
     }
 
     Color getGainedCharactersColor() {
@@ -393,10 +444,6 @@ public final class TreeColorSet {
         }
     }
 
-    private void setColorForDefault( final int i, final Color color ) {
-        _color_schemes[ 0 ][ i ] = color;
-    }
-
     /**
      * Switches colors between different schemes.
      */
@@ -411,14 +458,17 @@ public final class TreeColorSet {
         branch_color = _color_schemes[ scheme ][ 6 ];
         box_color = _color_schemes[ scheme ][ 7 ];
         collapse_fill_color = _color_schemes[ scheme ][ 8 ];
-        found_color = _color_schemes[ scheme ][ 9 ];
-        dup_box_color = _color_schemes[ scheme ][ 10 ];
-        spec_box_color = _color_schemes[ scheme ][ 11 ];
-        duplication_or_specation_color = _color_schemes[ scheme ][ 12 ];
-        domains_color = _color_schemes[ scheme ][ 13 ];
-        binary_domain_combinations_color = _color_schemes[ scheme ][ 14 ];
-        annotation_color = _color_schemes[ scheme ][ 15 ];
-        ov_color = _color_schemes[ scheme ][ 16 ];
+        found_color_0 = _color_schemes[ scheme ][ 9 ];
+        found_color_1 = _color_schemes[ scheme ][ 10 ];
+        found_color_0_and_1 = _color_schemes[ scheme ][ 11 ];
+        dup_box_color = _color_schemes[ scheme ][ 12 ];
+        spec_box_color = _color_schemes[ scheme ][ 13 ];
+        duplication_or_specation_color = _color_schemes[ scheme ][ 14 ];
+        domain_label_color = _color_schemes[ scheme ][ 15 ];
+        domain_base_color = _color_schemes[ scheme ][ 16 ];
+        binary_domain_combinations_color = _color_schemes[ scheme ][ 17 ];
+        annotation_color = _color_schemes[ scheme ][ 18 ];
+        ov_color = _color_schemes[ scheme ][ 19 ];
     }
 
     void setCurrentColorScheme( final int color_scheme ) {