in progress
authorcmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Fri, 19 Sep 2014 23:18:28 +0000 (23:18 +0000)
committercmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Fri, 19 Sep 2014 23:18:28 +0000 (23:18 +0000)
forester/java/src/org/forester/archaeopteryx/Configuration.java
forester/java/src/org/forester/archaeopteryx/Constants.java
forester/java/src/org/forester/archaeopteryx/MainFrameApplication.java
forester/java/src/org/forester/archaeopteryx/TreePanel.java

index e642d8e..8629845 100644 (file)
@@ -55,6 +55,17 @@ import org.forester.util.ForesterUtil;
 
 public final class Configuration {
 
+    public enum EXT_NODE_DATA_RETURN_ON {
+        BUFFER_ONLY, CONSOLE, WINODW;
+    }
+
+    static enum TRIPLET {
+        FALSE, TRUE, UNKNOWN
+    }
+
+    public enum UI {
+        CROSSPLATFORM, NATIVE, NIMBUS, UNKNOWN
+    }
     final static String                     clickto_options[][]                                    = {
             { "Display Node Data", "display" }, { "Collapse/Uncollapse", "display" }, { "Root/Reroot", "display" },
             { "Go to Sub-/Super-Tree", "display" }, { "Swap Descendants", "display" },
@@ -64,6 +75,24 @@ public final class Configuration {
             { "Copy Subtree", "display" }, { "Paste Subtree", "display" }, { "Delete Subtree/Node", "display" },
             { "Add New Node", "display" }, { "Edit Node Data", "display" }, { "Sort Descendants", "display" },
             { "Return", "display" }, { "Select Node(s)", "display" }                              };
+    private final static String             DEFAULT_SPECIES_COLORS[][]                             = {
+            { "BRAFL", "0x00FFFF" }, { "SPHGR", "0x9620F0" }, { "STRPU", "0x9620F0" }, { "CIOIN", "0xFF1CAE" },
+            { "CIOSA", "0xFF2CAE" }, { "BOVIN", "0x5C3317" }, { "CANFA", "0x8B2323" }, { "HUMAN", "0xFF2400" },
+            { "PANTR", "0xCC2400" }, { "MOUSE", "0xFF7F00" }, { "RAT", "0xFFEF00" }, { "MONDO", "0xEE9A49" },
+            { "ORNAN", "0xCD853F" }, { "XENLA", "0x6BAA23" }, { "XENTR", "0x6BAA23" }, { "CHICK", "0xFFC125" },
+            { "FUGRU", "0x0000FF" }, { "BRARE", "0x0000DD" }, { "DANRE", "0x0000BB" }, { "TETNG", "0x0000AA" },
+            { "ORYLA", "0x000088" }, { "GASAC", "0x000066" }, { "CAEEL", "0x666699" }, { "CAEBR", "0xB0B0B0" },
+            { "DROME", "0x663366" }, { "DROPS", "0x996699" }, { "APIME", "0x7A7700" }, { "AEDAE", "0x8C5900" },
+            { "TRICA", "0x918E00" }, { "NEMVE", "0x0066CC" }, { "HYDVU", "0x3399FF" }, { "LUBBA", "0xF7B5CB" },
+            { "GEOCY", "0xF5A0BD" }, { "AMPQE", "0x009966" }, { "SUBDO", "0xC790B9" }, { "MONBE", "0xFC0FC0" },
+            { "DICPU", "0xFFCC33" }, { "DICDI", "0xFFCC00" }, { "ENTHI", "0x5959AB" }, { "ARATH", "0x00FF00" },
+            { "POPTR", "0x006400" }, { "VITVI", "0x00CD00" }, { "GLYMA", "0x00FF7F" }, { "ORYSA", "0x008B00" },
+            { "ORYSJ", "0x008C00" }, { "SORBI", "0x00EE76" }, { "SELMO", "0x238E23" }, { "PHYPA", "0x09F911" },
+            { "OSTLU", "0x7FFF00" }, { "OSTTA", "0x7FFF00" }, { "OSTRC", "0x7FFF00" }, { "MICPU", "0x66CD00" },
+            { "MIC99", "0x66CD00" }, { "CHLRE", "0xB3EE3A" }, { "VOLCA", "0xC0FF3E" }, { "CHLSP", "0x6B8E23" },
+            { "CYAME", "0xD02090" }, { "YEAST", "0xAAAAAA" }, { "BACFR", "0xFF0000" }, { "BACTN", "0xFFFF00" },
+            { "MYXXD", "0x0000FF" }, { "STIAU", "0x00FFFF" }, { "BACOV", "0x8C5900" }, { "BACUN", "0x66CD00" },
+            { "PORGI", "0x918E00" }                                                               };
     final static int                        display_node_data                                      = 0;
     final static int                        collapse_uncollapse                                    = 1;
     final static int                        reroot                                                 = 2;
@@ -236,6 +265,10 @@ public final class Configuration {
         }
     }
 
+    static String getDefaultFontFamilyName() {
+        return DEFAULT_FONT_FAMILY;
+    }
+
     public Configuration() {
         this( null, false, false, false );
     }
@@ -300,14 +333,158 @@ public final class Configuration {
         }
     }
 
+    boolean displaySequenceRelations() {
+        return _display_sequence_relations;
+    }
+
+    boolean doCheckOption( final int which ) {
+        return ( display_options[ which ][ 2 ].equalsIgnoreCase( "yes" ) )
+                || ( display_options[ which ][ 2 ].equalsIgnoreCase( "true" ) );
+    }
+
+    boolean doDisplayClickToOption( final int which ) {
+        return clickto_options[ which ][ 1 ].equalsIgnoreCase( "display" );
+    }
+
+    boolean doDisplayOption( final int which ) {
+        return display_options[ which ][ 1 ].equalsIgnoreCase( "display" );
+    }
+
+    /**
+     * Will attempt to use the phylogeny to determine whether to check
+     * this or not (e.g. phylogram)
+     * 
+     */
+    boolean doGuessCheckOption( final int which ) {
+        return display_options[ which ][ 2 ].equals( "?" );
+    }
+
+    Map<String, Color> getAnnotationColors() {
+        if ( _annotation_colors == null ) {
+            _annotation_colors = new Hashtable<String, Color>();
+        }
+        return _annotation_colors;
+    }
+
     public String getBaseFontFamilyName() {
         return _base_font_family_name;
     }
 
+    int getBaseFontSize() {
+        return _base_font_size;
+    }
+
+    CLADOGRAM_TYPE getCladogramType() {
+        return _cladogram_type;
+    }
+
+    private int getClickToIndex( final String name ) {
+        int index = -1;
+        if ( name.equals( "edit_info" ) ) {
+            index = Configuration.display_node_data;
+            ForesterUtil
+                    .printWarningMessage( Constants.PRG_NAME,
+                                          "configuration key [edit_info] is deprecated, use [display node data] instead" );
+        }
+        else if ( name.equals( "display_node_data" ) ) {
+            index = Configuration.display_node_data;
+        }
+        else if ( name.equals( "collapse_uncollapse" ) ) {
+            index = Configuration.collapse_uncollapse;
+        }
+        else if ( name.equals( "reroot" ) ) {
+            index = Configuration.reroot;
+        }
+        else if ( name.equals( "subtree" ) ) {
+            index = Configuration.subtree;
+        }
+        else if ( name.equals( "swap" ) ) {
+            index = Configuration.swap;
+        }
+        else if ( name.equals( "sort_descendants" ) ) {
+            index = Configuration.sort_descendents;
+        }
+        else if ( name.equals( "get_ext_descendents_data" ) ) {
+            index = Configuration.get_ext_desc_data;
+        }
+        else if ( name.equals( "display_sequences" ) ) {
+            ForesterUtil
+                    .printWarningMessage( Constants.PRG_NAME, "configuration key [display_sequences] is deprecated" );
+            return DEPRECATED;
+        }
+        else if ( name.equals( "open_seq_web" ) ) {
+            index = Configuration.open_seq_web;
+        }
+        else if ( name.equals( "open_pdb_web" ) ) {
+            index = Configuration.open_pdb_web;
+        }
+        else if ( name.equals( "open_tax_web" ) ) {
+            index = Configuration.open_tax_web;
+        }
+        else if ( name.equals( "blast" ) ) {
+            index = Configuration.blast;
+        }
+        else if ( name.equals( "cut_subtree" ) ) {
+            index = Configuration.cut_subtree;
+        }
+        else if ( name.equals( "copy_subtree" ) ) {
+            index = Configuration.copy_subtree;
+        }
+        else if ( name.equals( "paste_subtree" ) ) {
+            index = Configuration.paste_subtree;
+        }
+        else if ( name.equals( "delete" ) ) {
+            index = Configuration.delete_subtree_or_node;
+        }
+        else if ( name.equals( "add_new_node" ) ) {
+            index = Configuration.add_new_node;
+        }
+        else if ( name.equals( "edit_node_data" ) ) {
+            index = Configuration.edit_node_data;
+        }
+        else if ( name.equals( "select_nodes" ) ) {
+            index = Configuration.select_nodes;
+        }
+        else if ( name.equals( "display_node_popup" ) ) {
+            ForesterUtil.printWarningMessage( Constants.PRG_NAME,
+                                              "configuration key [display_node_popup] is deprecated" );
+            return DEPRECATED;
+        }
+        else if ( name.equals( "custom_option" ) ) {
+            ForesterUtil.printWarningMessage( Constants.PRG_NAME, "configuration key [custom_option] is deprecated" );
+            return DEPRECATED;
+        }
+        else if ( name.equals( "color_subtree" ) ) {
+            index = Configuration.color_subtree;
+        }
+        else if ( name.equals( "change_node_font" ) ) {
+            index = Configuration.change_node_font;
+        }
+        else if ( name.equals( "color_node_font" ) ) {
+            index = Configuration.color_node_font;
+        }
+        else if ( name.equals( "color_subtree" ) ) {
+            index = Configuration.color_subtree;
+        }
+        return index;
+    }
+
+    int getClickToOptionsCount() {
+        return clickto_options.length;
+    }
+
+    String getClickToTitle( final int which ) {
+        return clickto_options[ which ][ 0 ];
+    }
+
     public int getDefaultBootstrapSamples() {
         return _default_bootstrap_samples;
     }
 
+    int getDefaultDisplayClicktoOption() {
+        return default_clickto;
+    }
+
     public NodeFill getDefaultNodeFill() {
         return _default_node_fill;
     }
@@ -320,6 +497,21 @@ public final class Configuration {
         return _default_node_shape_size;
     }
 
+    SortedMap<String, Color> getDisplayColors() {
+        return _display_colors;
+    }
+
+    String getDisplayTitle( final int which ) {
+        return display_options[ which ][ 0 ];
+    }
+
+    Map<String, Color> getDomainColors() {
+        if ( _domain_colors == null ) {
+            _domain_colors = new Hashtable<String, Color>();
+        }
+        return _domain_colors;
+    }
+
     public NODE_DATA getExtDescNodeDataToReturn() {
         return _ext_desc_data_to_return;
     }
@@ -336,394 +528,153 @@ public final class Configuration {
         return _frame_y_size;
     }
 
-    public String getLabelForGetExtDescendentsData() {
-        return _label_for_get_ext_descendents_data;
+    int getGraphicsExportX() {
+        return _graphics_export_x;
     }
 
-    public File getPathToLocalFastme() {
-        return _path_to_local_fastme;
+    int getGraphicsExportY() {
+        return _graphics_export_y;
     }
 
-    public File getPathToLocalMafft() {
-        return _path_to_local_mafft;
+    Color getGuiBackgroundColor() {
+        return _gui_background_color;
     }
 
-    public File getPathToLocalRaxml() {
-        return _path_to_local_raxml;
+    Color getGuiButtonBackgroundColor() {
+        return _gui_button_background_color;
     }
 
-    public boolean isAbbreviateScientificTaxonNames() {
-        return _abbreviate_scientific_names;
+    Color getGuiButtonBorderColor() {
+        return _gui_button_border_color;
     }
 
-    public boolean isBackgroundColorGradient() {
-        return _background_color_gradient;
+    Color getGuiButtonTextColor() {
+        return _gui_button_text_color;
     }
 
-    public boolean isColorByTaxonomicGroup() {
-        return false;
+    Color getGuiCheckboxAndButtonActiveColor() {
+        return _gui_checkbox_and_button_active_color;
     }
 
-    public boolean isColorLabelsSameAsParentBranch() {
-        return _color_labels_same_as_parent_branch;
+    Color getGuiCheckboxTextColor() {
+        return _gui_checkbox_text_color;
     }
 
-    public boolean isMidpointReroot() {
-        return _midpoint_root;
+    Color getGuiMenuBackgroundColor() {
+        return _gui_menu_background_color;
     }
 
-    public boolean isShowAnnotationRefSource() {
-        return _show_annotation_ref_source;
+    Color getGuiMenuTextColor() {
+        return _gui_menu_text_color;
     }
 
-    public boolean isShowDefaultNodeShapesExternal() {
-        return _show_default_node_shapes_external;
+    public String getLabelForGetExtDescendentsData() {
+        return _label_for_get_ext_descendents_data;
     }
 
-    public boolean isShowDefaultNodeShapesInternal() {
-        return _show_default_node_shapes_internal;
+    int getMaxBaseFontSize() {
+        return _max_base_font_size;
     }
 
-    public boolean isShowDomainLabels() {
-        return _show_domain_labels;
+    int getMinBaseFontSize() {
+        return _min_base_font_size;
     }
 
-    public void putDisplayColors( final String key, final Color color ) {
-        getDisplayColors().put( key, color );
+    double getMinConfidenceValue() {
+        return _min_confidence_value;
     }
 
-    public void setAddTaxonomyImagesCB( final boolean b ) {
-        display_options[ show_taxonomy_images ][ 1 ] = b ? "yes" : "no";
+    NODE_LABEL_DIRECTION getNodeLabelDirection() {
+        return _node_label_direction;
     }
 
-    public void setAbbreviateScientificTaxonNames( final boolean abbreviate_scientific_names ) {
-        _abbreviate_scientific_names = abbreviate_scientific_names;
+    short getNumberOfDigitsAfterCommaForBranchLengthValues() {
+        return _number_of_digits_after_comma_for_branch_length_values;
     }
 
-    public void setBackgroundColorGradient( final boolean background_color_gradient ) {
-        _background_color_gradient = background_color_gradient;
+    short getNumberOfDigitsAfterCommaForConfidenceValues() {
+        return _number_of_digits_after_comma_for_confidence_values;
     }
 
-    public void setBaseFontFamilyName( final String base_font_family_name ) {
-        _base_font_family_name = base_font_family_name;
+    short getOvMaxHeight() {
+        return _ov_max_height;
     }
 
-    public void setBaseFontSize( final int base_font_size ) {
-        _base_font_size = base_font_size;
+    short getOvMaxWidth() {
+        return _ov_max_width;
     }
 
-    public void setColorizeBranches( final boolean b ) {
-        display_options[ use_style ][ 2 ] = b ? "yes" : "no";
+    OVERVIEW_PLACEMENT_TYPE getOvPlacement() {
+        return _ov_placement;
     }
 
-    public void setColorLabelsSameAsParentBranch( final boolean color_labels_same_as_parent_branch ) {
-        _color_labels_same_as_parent_branch = color_labels_same_as_parent_branch;
-    }
-
-    public void setDefaultNodeFill( final NodeFill default_node_fill ) {
-        _default_node_fill = default_node_fill;
-    }
-
-    public void setDefaultNodeShape( final NodeShape default_node_shape ) {
-        _default_node_shape = default_node_shape;
-    }
-
-    public void setDefaultNodeShapeSize( final short default_node_shape_size ) {
-        _default_node_shape_size = default_node_shape_size;
-    }
-
-    public void setDisplayAsPhylogram( final boolean b ) {
-        display_options[ display_as_phylogram ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setUseStyle( final boolean b ) {
-        display_options[ use_style ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayColors( final SortedMap<String, Color> display_colors ) {
-        _display_colors = display_colors;
-    }
-
-    public void setDisplayConfidenceValues( final boolean b ) {
-        display_options[ write_confidence_values ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayInternalData( final boolean b ) {
-        display_options[ display_internal_data ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayNodeNames( final boolean b ) {
-        display_options[ show_node_names ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplaySequenceAcc( final boolean b ) {
-        display_options[ show_sequence_acc ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplaySequenceNames( final boolean b ) {
-        display_options[ show_seq_names ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayGeneNames( final boolean b ) {
-        display_options[ show_gene_names ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplaySequenceRelations( final boolean display_sequence_relations ) {
-        _display_sequence_relations = display_sequence_relations;
-    }
-
-    public void setDisplaySequenceSymbols( final boolean b ) {
-        display_options[ show_seq_symbols ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayTaxonomyCode( final boolean b ) {
-        display_options[ show_tax_code ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayTaxonomyCommonNames( final boolean b ) {
-        display_options[ show_taxonomy_common_names ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayTaxonomyImages( final boolean b ) {
-        display_options[ show_taxonomy_images ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDisplayTaxonomyScientificNames( final boolean b ) {
-        display_options[ show_taxonomy_scientific_names ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setDynamicallyHideData( final boolean b ) {
-        display_options[ dynamically_hide_data ][ 2 ] = b ? "yes" : "no";
-    }
-
-    public void setExtDescNodeDataToReturn( final NODE_DATA ext_desc_data_to_return ) {
-        _ext_desc_data_to_return = ext_desc_data_to_return;
-    }
-
-    public void setFrameXSize( final int frame_x_size ) {
-        _frame_x_size = frame_x_size;
-    }
-
-    public void setFrameYSize( final int frame_y_size ) {
-        _frame_y_size = frame_y_size;
-    }
-
-    public void setMidpointReroot( final boolean midpoint_root ) {
-        _midpoint_root = midpoint_root;
-    }
-
-    public void setMinConfidenceValue( final double min_confidence_value ) {
-        _min_confidence_value = min_confidence_value;
-    }
-
-    public void setNodeLabelDirection( final NODE_LABEL_DIRECTION node_label_direction ) {
-        _node_label_direction = node_label_direction;
-    }
-
-    public void setNumberOfDigitsAfterCommaForBranchLengthValue( final short number_of_digits_after_comma_for_branch_length_values ) {
-        _number_of_digits_after_comma_for_branch_length_values = number_of_digits_after_comma_for_branch_length_values;
-    }
-
-    public void setNumberOfDigitsAfterCommaForConfidenceValues( final short number_of_digits_after_comma_for_confidence_values ) {
-        _number_of_digits_after_comma_for_confidence_values = number_of_digits_after_comma_for_confidence_values;
-    }
-
-    public void setPhylogenyGraphicsType( final PHYLOGENY_GRAPHICS_TYPE phylogeny_graphics_type ) {
-        _phylogeny_graphics_type = phylogeny_graphics_type;
-    }
-
-    public void setPrintLineWidth( final float print_line_width ) {
-        _print_line_width = print_line_width;
-    }
-
-    public void setReplaceUnderscoresInNhParsing( final boolean nh_parsing_replace_underscores ) {
-        _nh_parsing_replace_underscores = nh_parsing_replace_underscores;
-    }
-
-    public void setShowDefaultNodeShapesExternal( final boolean show_default_node_shapes_external ) {
-        _show_default_node_shapes_external = show_default_node_shapes_external;
-    }
-
-    public void setShowDefaultNodeShapesInternal( final boolean show_default_node_shapes_internal ) {
-        _show_default_node_shapes_internal = show_default_node_shapes_internal;
-    }
-
-    public void setShowDomainLabels( final boolean show_domain_labels ) {
-        _show_domain_labels = show_domain_labels;
-    }
-
-    public void setShowScale( final boolean show_scale ) {
-        _show_scale = show_scale;
-    }
-
-    boolean displaySequenceRelations() {
-        return _display_sequence_relations;
+    public File getPathToLocalFastme() {
+        return _path_to_local_fastme;
     }
 
-    boolean doCheckOption( final int which ) {
-        return ( display_options[ which ][ 2 ].equalsIgnoreCase( "yes" ) )
-                || ( display_options[ which ][ 2 ].equalsIgnoreCase( "true" ) );
+    public File getPathToLocalMafft() {
+        return _path_to_local_mafft;
     }
 
-    boolean doDisplayClickToOption( final int which ) {
-        return clickto_options[ which ][ 1 ].equalsIgnoreCase( "display" );
+    public File getPathToLocalRaxml() {
+        return _path_to_local_raxml;
     }
 
-    boolean doDisplayOption( final int which ) {
-        return display_options[ which ][ 1 ].equalsIgnoreCase( "display" );
+    PHYLOGENY_GRAPHICS_TYPE getPhylogenyGraphicsType() {
+        return _phylogeny_graphics_type;
     }
 
-    /**
-     * Will attempt to use the phylogeny to determine whether to check
-     * this or not (e.g. phylogram)
-     * 
-     */
-    boolean doGuessCheckOption( final int which ) {
-        return display_options[ which ][ 2 ].equals( "?" );
+    float getPrintLineWidth() {
+        return _print_line_width;
     }
 
-    Map<String, Color> getAnnotationColors() {
-        if ( _annotation_colors == null ) {
-            _annotation_colors = new Hashtable<String, Color>();
+    Hashtable<String, Color> getSequenceColors() {
+        if ( _sequence_colors == null ) {
+            _sequence_colors = new Hashtable<String, Color>();
         }
-        return _annotation_colors;
-    }
-
-    int getBaseFontSize() {
-        return _base_font_size;
-    }
-
-    CLADOGRAM_TYPE getCladogramType() {
-        return _cladogram_type;
-    }
-
-    int getClickToOptionsCount() {
-        return clickto_options.length;
-    }
-
-    String getClickToTitle( final int which ) {
-        return clickto_options[ which ][ 0 ];
-    }
-
-    int getDefaultDisplayClicktoOption() {
-        return default_clickto;
-    }
-
-    SortedMap<String, Color> getDisplayColors() {
-        return _display_colors;
-    }
-
-    String getDisplayTitle( final int which ) {
-        return display_options[ which ][ 0 ];
+        return _sequence_colors;
     }
 
-    Map<String, Color> getDomainColors() {
-        if ( _domain_colors == null ) {
-            _domain_colors = new Hashtable<String, Color>();
+    Hashtable<String, Color> getSpeciesColors() {
+        if ( _species_colors == null ) {
+            initSpeciesColors();
         }
-        return _domain_colors;
-    }
-
-    int getGraphicsExportX() {
-        return _graphics_export_x;
-    }
-
-    int getGraphicsExportY() {
-        return _graphics_export_y;
-    }
-
-    Color getGuiBackgroundColor() {
-        return _gui_background_color;
-    }
-
-    Color getGuiButtonBackgroundColor() {
-        return _gui_button_background_color;
-    }
-
-    Color getGuiButtonBorderColor() {
-        return _gui_button_border_color;
-    }
-
-    Color getGuiButtonTextColor() {
-        return _gui_button_text_color;
-    }
-
-    Color getGuiCheckboxAndButtonActiveColor() {
-        return _gui_checkbox_and_button_active_color;
-    }
-
-    Color getGuiCheckboxTextColor() {
-        return _gui_checkbox_text_color;
-    }
-
-    Color getGuiMenuBackgroundColor() {
-        return _gui_menu_background_color;
-    }
-
-    Color getGuiMenuTextColor() {
-        return _gui_menu_text_color;
-    }
-
-    int getMaxBaseFontSize() {
-        return _max_base_font_size;
-    }
-
-    int getMinBaseFontSize() {
-        return _min_base_font_size;
-    }
-
-    double getMinConfidenceValue() {
-        return _min_confidence_value;
-    }
-
-    NODE_LABEL_DIRECTION getNodeLabelDirection() {
-        return _node_label_direction;
-    }
-
-    short getNumberOfDigitsAfterCommaForBranchLengthValues() {
-        return _number_of_digits_after_comma_for_branch_length_values;
-    }
-
-    short getNumberOfDigitsAfterCommaForConfidenceValues() {
-        return _number_of_digits_after_comma_for_confidence_values;
+        return _species_colors;
     }
 
-    short getOvMaxHeight() {
-        return _ov_max_height;
+    final TAXONOMY_EXTRACTION getTaxonomyExtraction() {
+        return _taxonomy_extraction;
     }
 
-    short getOvMaxWidth() {
-        return _ov_max_width;
+    public double getVectorDataHeight() {
+        return _vector_data_height;
     }
 
-    OVERVIEW_PLACEMENT_TYPE getOvPlacement() {
-        return _ov_placement;
+    public Color getVectorDataMaxColor() {
+        return _vector_data_max_color;
     }
 
-    PHYLOGENY_GRAPHICS_TYPE getPhylogenyGraphicsType() {
-        return _phylogeny_graphics_type;
+    public Color getVectorDataMeanColor() {
+        return _vector_data_mean_color;
     }
 
-    float getPrintLineWidth() {
-        return _print_line_width;
+    public Color getVectorDataMinColor() {
+        return _vector_data_min_color;
     }
 
-    Hashtable<String, Color> getSpeciesColors() {
-        if ( _species_colors == null ) {
-            _species_colors = new Hashtable<String, Color>();
-        }
-        return _species_colors;
+    public int getVectorDataWidth() {
+        return _vector_data_width;
     }
 
-    Hashtable<String, Color> getSequenceColors() {
-        if ( _sequence_colors == null ) {
-            _sequence_colors = new Hashtable<String, Color>();
+    private final void initSpeciesColors() {
+        _species_colors = new Hashtable<String, Color>();
+        for( final String[] s : DEFAULT_SPECIES_COLORS ) {
+            _species_colors.put( s[ 0 ], Color.decode( s[ 1 ] ) );
         }
-        return _sequence_colors;
     }
 
-    final TAXONOMY_EXTRACTION getTaxonomyExtraction() {
-        return _taxonomy_extraction;
+    public boolean isAbbreviateScientificTaxonNames() {
+        return _abbreviate_scientific_names;
     }
 
     boolean isAntialiasScreen() {
@@ -734,6 +685,18 @@ public final class Configuration {
         return _antialias_screen;
     }
 
+    public boolean isBackgroundColorGradient() {
+        return _background_color_gradient;
+    }
+
+    public boolean isColorByTaxonomicGroup() {
+        return false;
+    }
+
+    public boolean isColorLabelsSameAsParentBranch() {
+        return _color_labels_same_as_parent_branch;
+    }
+
     /**
      * Convenience method.
      * 
@@ -759,130 +722,63 @@ public final class Configuration {
         return _internal_number_are_confidence_for_nh_parsing;
     }
 
-    boolean isReplaceUnderscoresInNhParsing() {
-        return _nh_parsing_replace_underscores;
-    }
-
-    boolean isShowOverview() {
-        return _show_overview;
-    }
-
-    boolean isShowScale() {
-        return _show_scale;
-    }
-
-    final boolean isUseNativeUI() {
-        if ( ( _ui == UI.UNKNOWN ) && ForesterUtil.isMac() ) {
-            _ui = UI.NATIVE;
-        }
-        return _ui == UI.NATIVE;
-    }
-
-    /**
-     * Only used by ArchaeoptryxE.
-     *
-     */
-    boolean isUseTabbedDisplay() {
-        return _use_tabbed_display;
-    }
-
-    boolean isValidatePhyloXmlAgainstSchema() {
-        return _validate_against_phyloxml_xsd_schema;
-    }
-
-    final void setTaxonomyExtraction( final TAXONOMY_EXTRACTION taxonomy_extraction ) {
-        _taxonomy_extraction = taxonomy_extraction;
+    final public boolean isLineUpRendarableNodeData() {
+        return _line_up_renderable_node_data;
     }
 
-    private int getClickToIndex( final String name ) {
-        int index = -1;
-        if ( name.equals( "edit_info" ) ) {
-            index = Configuration.display_node_data;
-            ForesterUtil
-                    .printWarningMessage( Constants.PRG_NAME,
-                                          "configuration key [edit_info] is deprecated, use [display node data] instead" );
-        }
-        else if ( name.equals( "display_node_data" ) ) {
-            index = Configuration.display_node_data;
-        }
-        else if ( name.equals( "collapse_uncollapse" ) ) {
-            index = Configuration.collapse_uncollapse;
-        }
-        else if ( name.equals( "reroot" ) ) {
-            index = Configuration.reroot;
-        }
-        else if ( name.equals( "subtree" ) ) {
-            index = Configuration.subtree;
-        }
-        else if ( name.equals( "swap" ) ) {
-            index = Configuration.swap;
-        }
-        else if ( name.equals( "sort_descendants" ) ) {
-            index = Configuration.sort_descendents;
-        }
-        else if ( name.equals( "get_ext_descendents_data" ) ) {
-            index = Configuration.get_ext_desc_data;
-        }
-        else if ( name.equals( "display_sequences" ) ) {
-            ForesterUtil
-                    .printWarningMessage( Constants.PRG_NAME, "configuration key [display_sequences] is deprecated" );
-            return DEPRECATED;
-        }
-        else if ( name.equals( "open_seq_web" ) ) {
-            index = Configuration.open_seq_web;
-        }
-        else if ( name.equals( "open_pdb_web" ) ) {
-            index = Configuration.open_pdb_web;
-        }
-        else if ( name.equals( "open_tax_web" ) ) {
-            index = Configuration.open_tax_web;
-        }
-        else if ( name.equals( "blast" ) ) {
-            index = Configuration.blast;
-        }
-        else if ( name.equals( "cut_subtree" ) ) {
-            index = Configuration.cut_subtree;
-        }
-        else if ( name.equals( "copy_subtree" ) ) {
-            index = Configuration.copy_subtree;
-        }
-        else if ( name.equals( "paste_subtree" ) ) {
-            index = Configuration.paste_subtree;
-        }
-        else if ( name.equals( "delete" ) ) {
-            index = Configuration.delete_subtree_or_node;
-        }
-        else if ( name.equals( "add_new_node" ) ) {
-            index = Configuration.add_new_node;
-        }
-        else if ( name.equals( "edit_node_data" ) ) {
-            index = Configuration.edit_node_data;
-        }
-        else if ( name.equals( "select_nodes" ) ) {
-            index = Configuration.select_nodes;
-        }
-        else if ( name.equals( "display_node_popup" ) ) {
-            ForesterUtil.printWarningMessage( Constants.PRG_NAME,
-                                              "configuration key [display_node_popup] is deprecated" );
-            return DEPRECATED;
-        }
-        else if ( name.equals( "custom_option" ) ) {
-            ForesterUtil.printWarningMessage( Constants.PRG_NAME, "configuration key [custom_option] is deprecated" );
-            return DEPRECATED;
-        }
-        else if ( name.equals( "color_subtree" ) ) {
-            index = Configuration.color_subtree;
-        }
-        else if ( name.equals( "change_node_font" ) ) {
-            index = Configuration.change_node_font;
-        }
-        else if ( name.equals( "color_node_font" ) ) {
-            index = Configuration.color_node_font;
-        }
-        else if ( name.equals( "color_subtree" ) ) {
-            index = Configuration.color_subtree;
+    public boolean isMidpointReroot() {
+        return _midpoint_root;
+    }
+
+    boolean isReplaceUnderscoresInNhParsing() {
+        return _nh_parsing_replace_underscores;
+    }
+
+    final public boolean isRightLineUpDomains() {
+        return _right_align_domains;
+    }
+
+    public boolean isShowAnnotationRefSource() {
+        return _show_annotation_ref_source;
+    }
+
+    public boolean isShowDefaultNodeShapesExternal() {
+        return _show_default_node_shapes_external;
+    }
+
+    public boolean isShowDefaultNodeShapesInternal() {
+        return _show_default_node_shapes_internal;
+    }
+
+    public boolean isShowDomainLabels() {
+        return _show_domain_labels;
+    }
+
+    boolean isShowOverview() {
+        return _show_overview;
+    }
+
+    boolean isShowScale() {
+        return _show_scale;
+    }
+
+    final boolean isUseNativeUI() {
+        if ( ( _ui == UI.UNKNOWN ) && ForesterUtil.isMac() ) {
+            _ui = UI.NATIVE;
         }
-        return index;
+        return _ui == UI.NATIVE;
+    }
+
+    /**
+     * Only used by ArchaeoptryxE.
+     *
+     */
+    boolean isUseTabbedDisplay() {
+        return _use_tabbed_display;
+    }
+
+    boolean isValidatePhyloXmlAgainstSchema() {
+        return _validate_against_phyloxml_xsd_schema;
     }
 
     private boolean parseBoolean( final String str ) {
@@ -960,6 +856,10 @@ public final class Configuration {
         }
     }
 
+    public void putDisplayColors( final String key, final Color color ) {
+        getDisplayColors().put( key, color );
+    }
+
     /**
      * read each line of config file, process non-comment lines
      * @throws IOException 
@@ -981,26 +881,138 @@ public final class Configuration {
         } while ( line != null );
     }
 
+    public void setAbbreviateScientificTaxonNames( final boolean abbreviate_scientific_names ) {
+        _abbreviate_scientific_names = abbreviate_scientific_names;
+    }
+
+    public void setAddTaxonomyImagesCB( final boolean b ) {
+        display_options[ show_taxonomy_images ][ 1 ] = b ? "yes" : "no";
+    }
+
     private void setAntialiasScreen( final boolean antialias_screen ) {
         _antialias_screen = antialias_screen;
     }
 
+    public void setBackgroundColorGradient( final boolean background_color_gradient ) {
+        _background_color_gradient = background_color_gradient;
+    }
+
+    public void setBaseFontFamilyName( final String base_font_family_name ) {
+        _base_font_family_name = base_font_family_name;
+    }
+
+    public void setBaseFontSize( final int base_font_size ) {
+        _base_font_size = base_font_size;
+    }
+
     private void setCladogramType( final CLADOGRAM_TYPE cladogram_type ) {
         _cladogram_type = cladogram_type;
     }
 
+    public void setColorizeBranches( final boolean b ) {
+        display_options[ use_style ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setColorLabelsSameAsParentBranch( final boolean color_labels_same_as_parent_branch ) {
+        _color_labels_same_as_parent_branch = color_labels_same_as_parent_branch;
+    }
+
     private void setDefaultBootstrapSamples( final int default_bootstrap_samples ) {
         _default_bootstrap_samples = default_bootstrap_samples;
     }
 
+    public void setDefaultNodeFill( final NodeFill default_node_fill ) {
+        _default_node_fill = default_node_fill;
+    }
+
+    public void setDefaultNodeShape( final NodeShape default_node_shape ) {
+        _default_node_shape = default_node_shape;
+    }
+
+    public void setDefaultNodeShapeSize( final short default_node_shape_size ) {
+        _default_node_shape_size = default_node_shape_size;
+    }
+
+    public void setDisplayAsPhylogram( final boolean b ) {
+        display_options[ display_as_phylogram ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayColors( final SortedMap<String, Color> display_colors ) {
+        _display_colors = display_colors;
+    }
+
+    public void setDisplayConfidenceValues( final boolean b ) {
+        display_options[ write_confidence_values ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayGeneNames( final boolean b ) {
+        display_options[ show_gene_names ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayInternalData( final boolean b ) {
+        display_options[ display_internal_data ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayNodeNames( final boolean b ) {
+        display_options[ show_node_names ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplaySequenceAcc( final boolean b ) {
+        display_options[ show_sequence_acc ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplaySequenceNames( final boolean b ) {
+        display_options[ show_seq_names ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplaySequenceRelations( final boolean display_sequence_relations ) {
+        _display_sequence_relations = display_sequence_relations;
+    }
+
+    public void setDisplaySequenceSymbols( final boolean b ) {
+        display_options[ show_seq_symbols ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayTaxonomyCode( final boolean b ) {
+        display_options[ show_tax_code ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayTaxonomyCommonNames( final boolean b ) {
+        display_options[ show_taxonomy_common_names ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayTaxonomyImages( final boolean b ) {
+        display_options[ show_taxonomy_images ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDisplayTaxonomyScientificNames( final boolean b ) {
+        display_options[ show_taxonomy_scientific_names ][ 2 ] = b ? "yes" : "no";
+    }
+
+    public void setDynamicallyHideData( final boolean b ) {
+        display_options[ dynamically_hide_data ][ 2 ] = b ? "yes" : "no";
+    }
+
     private void setEditable( final boolean editable ) {
         _editable = editable;
     }
 
+    public void setExtDescNodeDataToReturn( final NODE_DATA ext_desc_data_to_return ) {
+        _ext_desc_data_to_return = ext_desc_data_to_return;
+    }
+
     private void setExtNodeDataReturnOn( final EXT_NODE_DATA_RETURN_ON ext_node_data_return_on ) {
         _ext_node_data_return_on = ext_node_data_return_on;
     }
 
+    public void setFrameXSize( final int frame_x_size ) {
+        _frame_x_size = frame_x_size;
+    }
+
+    public void setFrameYSize( final int frame_y_size ) {
+        _frame_y_size = frame_y_size;
+    }
+
     private void setGraphicsExportX( final int graphics_export_x ) {
         _graphics_export_x = graphics_export_x;
     }
@@ -1669,14 +1681,38 @@ public final class Configuration {
         _label_for_get_ext_descendents_data = label_for_get_ext_descendents_data;
     }
 
+    final public void setLineUpRendarableNodeData( final boolean line_up_renderable_node_data ) {
+        _line_up_renderable_node_data = line_up_renderable_node_data;
+    }
+
     private void setMaxBaseFontSize( final int max_base_font_size ) {
         _max_base_font_size = max_base_font_size;
     }
 
+    public void setMidpointReroot( final boolean midpoint_root ) {
+        _midpoint_root = midpoint_root;
+    }
+
     private void setMinBaseFontSize( final int min_base_font_size ) {
         _min_base_font_size = min_base_font_size;
     }
 
+    public void setMinConfidenceValue( final double min_confidence_value ) {
+        _min_confidence_value = min_confidence_value;
+    }
+
+    public void setNodeLabelDirection( final NODE_LABEL_DIRECTION node_label_direction ) {
+        _node_label_direction = node_label_direction;
+    }
+
+    public void setNumberOfDigitsAfterCommaForBranchLengthValue( final short number_of_digits_after_comma_for_branch_length_values ) {
+        _number_of_digits_after_comma_for_branch_length_values = number_of_digits_after_comma_for_branch_length_values;
+    }
+
+    public void setNumberOfDigitsAfterCommaForConfidenceValues( final short number_of_digits_after_comma_for_confidence_values ) {
+        _number_of_digits_after_comma_for_confidence_values = number_of_digits_after_comma_for_confidence_values;
+    }
+
     private void setOvMaxHeight( final short ov_max_height ) {
         _ov_max_height = ov_max_height;
     }
@@ -1701,67 +1737,55 @@ public final class Configuration {
         _path_to_local_raxml = path_to_local_raxml;
     }
 
-    private void setShowAnnotationRefSource( final boolean b ) {
-        _show_annotation_ref_source = b;
-    }
-
-    private void setShowOverview( final boolean show_overview ) {
-        _show_overview = show_overview;
-    }
-
-    private void setValidatePhyloXmlAgainstSchema( final boolean validate_against_phyloxml_xsd_schema ) {
-        _validate_against_phyloxml_xsd_schema = validate_against_phyloxml_xsd_schema;
-    }
-
-    static String getDefaultFontFamilyName() {
-        return DEFAULT_FONT_FAMILY;
+    public void setPhylogenyGraphicsType( final PHYLOGENY_GRAPHICS_TYPE phylogeny_graphics_type ) {
+        _phylogeny_graphics_type = phylogeny_graphics_type;
     }
 
-    public enum EXT_NODE_DATA_RETURN_ON {
-        BUFFER_ONLY, CONSOLE, WINODW;
+    public void setPrintLineWidth( final float print_line_width ) {
+        _print_line_width = print_line_width;
     }
 
-    public enum UI {
-        CROSSPLATFORM, NATIVE, NIMBUS, UNKNOWN
+    public void setReplaceUnderscoresInNhParsing( final boolean nh_parsing_replace_underscores ) {
+        _nh_parsing_replace_underscores = nh_parsing_replace_underscores;
     }
 
-    static enum TRIPLET {
-        FALSE, TRUE, UNKNOWN
+    final public void setRightLineUpDomains( final boolean right_align_domains ) {
+        _right_align_domains = right_align_domains;
     }
 
-    public Color getVectorDataMinColor() {
-        return _vector_data_min_color;
+    private void setShowAnnotationRefSource( final boolean b ) {
+        _show_annotation_ref_source = b;
     }
 
-    public Color getVectorDataMaxColor() {
-        return _vector_data_max_color;
+    public void setShowDefaultNodeShapesExternal( final boolean show_default_node_shapes_external ) {
+        _show_default_node_shapes_external = show_default_node_shapes_external;
     }
 
-    public Color getVectorDataMeanColor() {
-        return _vector_data_mean_color;
+    public void setShowDefaultNodeShapesInternal( final boolean show_default_node_shapes_internal ) {
+        _show_default_node_shapes_internal = show_default_node_shapes_internal;
     }
 
-    public double getVectorDataHeight() {
-        return _vector_data_height;
+    public void setShowDomainLabels( final boolean show_domain_labels ) {
+        _show_domain_labels = show_domain_labels;
     }
 
-    public int getVectorDataWidth() {
-        return _vector_data_width;
+    private void setShowOverview( final boolean show_overview ) {
+        _show_overview = show_overview;
     }
 
-    final public boolean isLineUpRendarableNodeData() {
-        return _line_up_renderable_node_data;
+    public void setShowScale( final boolean show_scale ) {
+        _show_scale = show_scale;
     }
 
-    final public boolean isRightLineUpDomains() {
-        return _right_align_domains;
+    final void setTaxonomyExtraction( final TAXONOMY_EXTRACTION taxonomy_extraction ) {
+        _taxonomy_extraction = taxonomy_extraction;
     }
 
-    final public void setLineUpRendarableNodeData( final boolean line_up_renderable_node_data ) {
-        _line_up_renderable_node_data = line_up_renderable_node_data;
+    public void setUseStyle( final boolean b ) {
+        display_options[ use_style ][ 2 ] = b ? "yes" : "no";
     }
 
-    final public void setRightLineUpDomains( final boolean right_align_domains ) {
-        _right_align_domains = right_align_domains;
+    private void setValidatePhyloXmlAgainstSchema( final boolean validate_against_phyloxml_xsd_schema ) {
+        _validate_against_phyloxml_xsd_schema = validate_against_phyloxml_xsd_schema;
     }
 }
index 16f5a7d..4c1930e 100644 (file)
@@ -43,7 +43,7 @@ public final class Constants {
     public final static boolean ALLOW_DDBJ_BLAST                                              = false;
     public final static String  PRG_NAME                                                      = "Archaeopteryx";
     final static String         VERSION                                                       = "0.9898 beta";
-    final static String         PRG_DATE                                                      = "140918";
+    final static String         PRG_DATE                                                      = "140919";
     final static String         DEFAULT_CONFIGURATION_FILE_NAME                               = "_aptx_configuration_file";
     final static String[]       DEFAULT_FONT_CHOICES                                          = { "Arial", "Helvetica",
             "Verdana", "Tahoma", "Dialog", "Lucida Sans", "SansSerif", "Sans-serif", "Sans"  };
index 318be47..85e9336 100644 (file)
@@ -93,6 +93,7 @@ import org.forester.phylogeny.PhylogenyMethods;
 import org.forester.phylogeny.PhylogenyNode;\r
 import org.forester.phylogeny.PhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE;\r
 import org.forester.phylogeny.data.Confidence;\r
+import org.forester.phylogeny.data.Sequence;\r
 import org.forester.phylogeny.data.Taxonomy;\r
 import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory;\r
 import org.forester.phylogeny.factories.PhylogenyFactory;\r
@@ -123,6 +124,7 @@ public final class MainFrameApplication extends MainFrame {
     private final static SequencesFileFilter seqsfilter                            = new SequencesFileFilter();\r
     private final static DefaultFilter       defaultfilter                         = new DefaultFilter();\r
     private static final long                serialVersionUID                      = -799735726778865234L;\r
+    private static final boolean             PREPROCESS_TREES                      = false;\r
     private final JFileChooser               _values_filechooser;\r
     private final JFileChooser               _sequences_filechooser;\r
     private final JFileChooser               _open_filechooser;\r
@@ -2211,6 +2213,9 @@ public final class MainFrameApplication extends MainFrame {
                                 }\r
                             }\r
                         }\r
+                        if ( PREPROCESS_TREES ) {\r
+                            preProcessTreesUponReading( phys );\r
+                        }\r
                         AptxUtil.addPhylogeniesToTabs( phys,\r
                                                        file.getName(),\r
                                                        file.getAbsolutePath(),\r
@@ -2234,6 +2239,30 @@ public final class MainFrameApplication extends MainFrame {
         System.gc();\r
     }\r
 \r
+    private void preProcessTreesUponReading( final Phylogeny[] phys ) {\r
+        for( final Phylogeny phy : phys ) {\r
+            if ( ( phy != null ) && !phy.isEmpty() ) {\r
+                for( final PhylogenyNodeIterator it = phy.iteratorPreorder(); it.hasNext(); ) {\r
+                    final PhylogenyNode n = it.next();\r
+                    if ( n.isExternal() ) {\r
+                        if ( n.getNodeData().isHasSequence() ) {\r
+                            final Sequence s = n.getNodeData().getSequence();\r
+                            if ( ForesterUtil.isEmpty( s.getGeneName() ) ) {\r
+                                if ( ( s.getAccession() != null )\r
+                                        && !ForesterUtil.isEmpty( s.getAccession().getValue() ) ) {\r
+                                    s.setGeneName( s.getAccession().getValue() );\r
+                                }\r
+                                else if ( !ForesterUtil.isEmpty( n.getName() ) ) {\r
+                                    s.setGeneName( n.getName() );\r
+                                }\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
     private void readSpeciesTreeFromFile() {\r
         Phylogeny t = null;\r
         boolean exception = false;\r
index ce136b5..971afb3 100644 (file)
@@ -1045,7 +1045,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
     }
 
     final Color getTaxonomyBasedColor( final PhylogenyNode node ) {
-        if ( node.getNodeData().isHasTaxonomy() ) {
+        if ( node.isExternal() && node.getNodeData().isHasTaxonomy() ) {
             return calculateTaxonomyBasedColor( node.getNodeData().getTaxonomy() );
         }
         // return non-colorized color