X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FConfiguration.java;h=27e616ac6237df8656e71bce9e37b0407062e570;hb=236967e4df09b7a3fd6659a8131aa97ef9906a28;hp=adb0f402486c57dfa4cee9a4cd0ccb38dd76204c;hpb=09028c5abedb9492d6fc76b4274f6dd46bcf6cd6;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/Configuration.java b/forester/java/src/org/forester/archaeopteryx/Configuration.java index adb0f40..27e616a 100644 --- a/forester/java/src/org/forester/archaeopteryx/Configuration.java +++ b/forester/java/src/org/forester/archaeopteryx/Configuration.java @@ -59,13 +59,13 @@ public final class Configuration { BUFFER_ONLY, CONSOLE, WINODW; } - static enum TRIPLET { - FALSE, TRUE, UNKNOWN - } - public enum UI { CROSSPLATFORM, NATIVE, NIMBUS, UNKNOWN } + + static enum TRIPLET { + FALSE, TRUE, 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" }, @@ -267,10 +267,6 @@ public final class Configuration { } } - static String getDefaultFontFamilyName() { - return DEFAULT_FONT_FAMILY; - } - public Configuration() { this( null, false, false, false ); } @@ -335,158 +331,14 @@ 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 getAnnotationColors() { - if ( _annotation_colors == null ) { - _annotation_colors = new Hashtable(); - } - 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; } @@ -499,21 +351,6 @@ public final class Configuration { return _default_node_shape_size; } - SortedMap getDisplayColors() { - return _display_colors; - } - - String getDisplayTitle( final int which ) { - return display_options[ which ][ 0 ]; - } - - Map getDomainColors() { - if ( _domain_colors == null ) { - _domain_colors = new Hashtable(); - } - return _domain_colors; - } - public NodeDataField getExtDescNodeDataToReturn() { return _ext_desc_data_to_return; } @@ -530,495 +367,492 @@ public final class Configuration { return _frame_y_size; } - int getGraphicsExportX() { - return _graphics_export_x; + public String getLabelForGetExtDescendentsData() { + return _label_for_get_ext_descendents_data; } - int getGraphicsExportY() { - return _graphics_export_y; + public File getPathToLocalFastme() { + return _path_to_local_fastme; } - Color getGuiBackgroundColor() { - return _gui_background_color; + public File getPathToLocalMafft() { + return _path_to_local_mafft; } - Color getGuiButtonBackgroundColor() { - return _gui_button_background_color; + public File getPathToLocalRaxml() { + return _path_to_local_raxml; } - Color getGuiButtonBorderColor() { - return _gui_button_border_color; + public double getVectorDataHeight() { + return _vector_data_height; } - Color getGuiButtonTextColor() { - return _gui_button_text_color; + public Color getVectorDataMaxColor() { + return _vector_data_max_color; } - Color getGuiCheckboxAndButtonActiveColor() { - return _gui_checkbox_and_button_active_color; + public Color getVectorDataMeanColor() { + return _vector_data_mean_color; } - Color getGuiCheckboxTextColor() { - return _gui_checkbox_text_color; + public Color getVectorDataMinColor() { + return _vector_data_min_color; } - Color getGuiMenuBackgroundColor() { - return _gui_menu_background_color; + public int getVectorDataWidth() { + return _vector_data_width; } - Color getGuiMenuTextColor() { - return _gui_menu_text_color; + public boolean isAbbreviateScientificTaxonNames() { + return _abbreviate_scientific_names; } - public String getLabelForGetExtDescendentsData() { - return _label_for_get_ext_descendents_data; + public boolean isAllowThickStrokes() { + return _allow_thick_strokes; } - int getMaxBaseFontSize() { - return _max_base_font_size; + public boolean isBackgroundColorGradient() { + return _background_color_gradient; } - int getMinBaseFontSize() { - return _min_base_font_size; + public boolean isColorByTaxonomicGroup() { + return false; } - double getMinConfidenceValue() { - return _min_confidence_value; + public boolean isColorLabelsSameAsParentBranch() { + return _color_labels_same_as_parent_branch; } - NODE_LABEL_DIRECTION getNodeLabelDirection() { - return _node_label_direction; + final public boolean isLineUpRendarableNodeData() { + return _line_up_renderable_node_data; } - short getNumberOfDigitsAfterCommaForBranchLengthValues() { - return _number_of_digits_after_comma_for_branch_length_values; + public boolean isMidpointReroot() { + return _midpoint_root; } - short getNumberOfDigitsAfterCommaForConfidenceValues() { - return _number_of_digits_after_comma_for_confidence_values; + final public boolean isRightLineUpDomains() { + return _right_align_domains; } - short getOvMaxHeight() { - return _ov_max_height; + public boolean isShowAnnotationRefSource() { + return _show_annotation_ref_source; } - short getOvMaxWidth() { - return _ov_max_width; + public boolean isShowDefaultNodeShapesExternal() { + return _show_default_node_shapes_external; } - OVERVIEW_PLACEMENT_TYPE getOvPlacement() { - return _ov_placement; + public boolean isShowDefaultNodeShapesForMarkedNodes() { + return _show_default_node_shapes_for_marked_nodes; } - public File getPathToLocalFastme() { - return _path_to_local_fastme; + public boolean isShowDefaultNodeShapesInternal() { + return _show_default_node_shapes_internal; } - public File getPathToLocalMafft() { - return _path_to_local_mafft; + public boolean isShowDomainLabels() { + return _show_domain_labels; } - public File getPathToLocalRaxml() { - return _path_to_local_raxml; + public void putDisplayColors( final String key, final Color color ) { + getDisplayColors().put( key, color ); } - PHYLOGENY_GRAPHICS_TYPE getPhylogenyGraphicsType() { - return _phylogeny_graphics_type; + public void setAbbreviateScientificTaxonNames( final boolean abbreviate_scientific_names ) { + _abbreviate_scientific_names = abbreviate_scientific_names; } - float getPrintLineWidth() { - return _print_line_width; + public void setAddTaxonomyImagesCB( final boolean b ) { + display_options[ show_taxonomy_images ][ 1 ] = b ? "yes" : "no"; } - Hashtable getSequenceColors() { - if ( _sequence_colors == null ) { - _sequence_colors = new Hashtable(); - } - return _sequence_colors; + public void setBackgroundColorGradient( final boolean background_color_gradient ) { + _background_color_gradient = background_color_gradient; } - Hashtable getSpeciesColors() { - if ( _species_colors == null ) { - initSpeciesColors(); - } - return _species_colors; + public void setBaseFontFamilyName( final String base_font_family_name ) { + _base_font_family_name = base_font_family_name; } - final TAXONOMY_EXTRACTION getTaxonomyExtraction() { - return _taxonomy_extraction; + public void setBaseFontSize( final int base_font_size ) { + _base_font_size = base_font_size; } - public double getVectorDataHeight() { - return _vector_data_height; + public void setColorizeBranches( final boolean b ) { + display_options[ use_style ][ 2 ] = b ? "yes" : "no"; } - public Color getVectorDataMaxColor() { - return _vector_data_max_color; + public void setColorLabelsSameAsParentBranch( final boolean color_labels_same_as_parent_branch ) { + _color_labels_same_as_parent_branch = color_labels_same_as_parent_branch; } - public Color getVectorDataMeanColor() { - return _vector_data_mean_color; + public void setDefaultNodeFill( final NodeFill default_node_fill ) { + _default_node_fill = default_node_fill; } - public Color getVectorDataMinColor() { - return _vector_data_min_color; + public void setDefaultNodeShape( final NodeShape default_node_shape ) { + _default_node_shape = default_node_shape; } - public int getVectorDataWidth() { - return _vector_data_width; + public void setDefaultNodeShapeSize( final short default_node_shape_size ) { + _default_node_shape_size = default_node_shape_size; } - private final void initSpeciesColors() { - _species_colors = new Hashtable(); - for( final String[] s : DEFAULT_SPECIES_COLORS ) { - _species_colors.put( s[ 0 ], Color.decode( s[ 1 ] ) ); - } + public void setDisplayAsPhylogram( final boolean b ) { + display_options[ display_as_phylogram ][ 2 ] = b ? "yes" : "no"; } - public boolean isAbbreviateScientificTaxonNames() { - return _abbreviate_scientific_names; + public void setDisplayColors( final SortedMap display_colors ) { + _display_colors = display_colors; } - boolean isAntialiasScreen() { - if ( ForesterUtil.isMac() ) { - //Apple Macintosh graphics are slow, turn off anti-alias. - return false; - } - return _antialias_screen; + public void setDisplayConfidenceValues( final boolean b ) { + display_options[ write_confidence_values ][ 2 ] = b ? "yes" : "no"; } - public boolean isBackgroundColorGradient() { - return _background_color_gradient; + public void setDisplayGeneNames( final boolean b ) { + display_options[ show_gene_names ][ 2 ] = b ? "yes" : "no"; } - public boolean isColorByTaxonomicGroup() { - return false; + public void setDisplayInternalData( final boolean b ) { + display_options[ display_internal_data ][ 2 ] = b ? "yes" : "no"; } - public boolean isColorLabelsSameAsParentBranch() { - return _color_labels_same_as_parent_branch; + public void setDisplayMultipleSequenceAlignment( final boolean b ) { + display_options[ show_mol_seqs ][ 2 ] = b ? "yes" : "no"; } - /** - * Convenience method. - * - * @return true if value in configuration file was 'yes' - */ - boolean isDrawAsPhylogram() { - return doCheckOption( display_as_phylogram ); + public void setDisplayNodeNames( final boolean b ) { + display_options[ show_node_names ][ 2 ] = b ? "yes" : "no"; } - boolean isEditable() { - return _editable; + public void setDisplaySequenceAcc( final boolean b ) { + display_options[ show_sequence_acc ][ 2 ] = b ? "yes" : "no"; } - /** - * Only used by ArchaeoptryxE. - * - */ - boolean isHideControlPanelAndMenubar() { - return _hide_controls_and_menus; + public void setDisplaySequenceNames( final boolean b ) { + display_options[ show_seq_names ][ 2 ] = b ? "yes" : "no"; } - boolean isInternalNumberAreConfidenceForNhParsing() { - return _internal_number_are_confidence_for_nh_parsing; + public void setDisplaySequenceRelations( final boolean display_sequence_relations ) { + _display_sequence_relations = display_sequence_relations; } - final public boolean isLineUpRendarableNodeData() { - return _line_up_renderable_node_data; + public void setDisplaySequenceSymbols( final boolean b ) { + display_options[ show_seq_symbols ][ 2 ] = b ? "yes" : "no"; } - public boolean isMidpointReroot() { - return _midpoint_root; + public void setDisplayTaxonomyCode( final boolean b ) { + display_options[ show_tax_code ][ 2 ] = b ? "yes" : "no"; } - boolean isReplaceUnderscoresInNhParsing() { - return _nh_parsing_replace_underscores; + public void setDisplayTaxonomyCommonNames( final boolean b ) { + display_options[ show_taxonomy_common_names ][ 2 ] = b ? "yes" : "no"; } - final public boolean isRightLineUpDomains() { - return _right_align_domains; + public void setDisplayTaxonomyImages( final boolean b ) { + display_options[ show_taxonomy_images ][ 2 ] = b ? "yes" : "no"; } - public boolean isShowAnnotationRefSource() { - return _show_annotation_ref_source; + public void setDisplayTaxonomyScientificNames( final boolean b ) { + display_options[ show_taxonomy_scientific_names ][ 2 ] = b ? "yes" : "no"; } - public boolean isShowDefaultNodeShapesExternal() { - return _show_default_node_shapes_external; + public void setDynamicallyHideData( final boolean b ) { + display_options[ dynamically_hide_data ][ 2 ] = b ? "yes" : "no"; } - public boolean isShowDefaultNodeShapesForMarkedNodes() { - return _show_default_node_shapes_for_marked_nodes; + public void setExtDescNodeDataToReturn( final NodeDataField ext_desc_data_to_return ) { + _ext_desc_data_to_return = ext_desc_data_to_return; } - public boolean isShowDefaultNodeShapesInternal() { - return _show_default_node_shapes_internal; + public void setFrameXSize( final int frame_x_size ) { + _frame_x_size = frame_x_size; } - public boolean isShowDomainLabels() { - return _show_domain_labels; + public void setFrameYSize( final int frame_y_size ) { + _frame_y_size = frame_y_size; } - boolean isShowOverview() { - return _show_overview; + final public void setLineUpRendarableNodeData( final boolean line_up_renderable_node_data ) { + _line_up_renderable_node_data = line_up_renderable_node_data; } - boolean isShowScale() { - return _show_scale; + public void setMidpointReroot( final boolean midpoint_root ) { + _midpoint_root = midpoint_root; } - final boolean isUseNativeUI() { - if ( ( _ui == UI.UNKNOWN ) && ForesterUtil.isMac() ) { - _ui = UI.NATIVE; - } - return _ui == UI.NATIVE; + public void setMinConfidenceValue( final double min_confidence_value ) { + _min_confidence_value = min_confidence_value; } - /** - * Only used by ArchaeoptryxE. - * - */ - boolean isUseTabbedDisplay() { - return _use_tabbed_display; + public void setNodeLabelDirection( final NODE_LABEL_DIRECTION node_label_direction ) { + _node_label_direction = node_label_direction; } - boolean isValidatePhyloXmlAgainstSchema() { - return _validate_against_phyloxml_xsd_schema; + 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; } - private boolean parseBoolean( final String str ) { - final String my_str = str.trim().toLowerCase(); - if ( my_str.equals( "yes" ) || my_str.equals( "true" ) ) { - return true; - } - else if ( my_str.equals( "no" ) || my_str.equals( "false" ) ) { - return false; - } - else { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse boolean value from [" + str + "]" ); - return false; - } + 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 double parseDouble( final String str ) { - double d = 0.0; - try { - d = Double.parseDouble( str.trim() ); - } - catch ( final Exception e ) { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse double from [" + str + "]" ); - d = 0.0; - } - return d; + public void setPhylogenyGraphicsType( final PHYLOGENY_GRAPHICS_TYPE phylogeny_graphics_type ) { + _phylogeny_graphics_type = phylogeny_graphics_type; } - private float parseFloat( final String str ) { - float f = 0.0f; - try { - f = Float.parseFloat( str.trim() ); - } - catch ( final Exception e ) { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse float from [" + str + "]" ); - f = 0.0f; - } - return f; + public void setPrintLineWidth( final float print_line_width ) { + _print_line_width = print_line_width; } - private int parseInt( final String str ) { - int i = -1; - try { - i = Integer.parseInt( str.trim() ); - } - catch ( final Exception e ) { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse integer from [" + str + "]" ); - i = -1; - } - return i; + public void setReplaceUnderscoresInNhParsing( final boolean nh_parsing_replace_underscores ) { + _nh_parsing_replace_underscores = nh_parsing_replace_underscores; } - private short parseShort( final String str ) { - short i = -1; - try { - i = Short.parseShort( str.trim() ); - } - catch ( final Exception e ) { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse short from [" + str + "]" ); - i = -1; - } - return i; + final public void setRightLineUpDomains( final boolean right_align_domains ) { + _right_align_domains = right_align_domains; } - private void processFontFamily( final StringTokenizer st ) { - setBaseFontFamilyName( "" ); - final String font_str = ( ( String ) st.nextElement() ).trim(); - final String[] fonts = font_str.split( ",+" ); - for( String font : fonts ) { - font = font.replace( '_', ' ' ).trim(); - if ( Arrays.binarySearch( AptxUtil.getAvailableFontFamiliesSorted(), font ) >= 0 ) { - setBaseFontFamilyName( font ); - break; - } - } + public void setShowDefaultNodeShapesExternal( final boolean show_default_node_shapes_external ) { + _show_default_node_shapes_external = show_default_node_shapes_external; } - public void putDisplayColors( final String key, final Color color ) { - getDisplayColors().put( key, color ); + public void setShowDefaultNodeShapesForMarkedNodes( final boolean show_default_node_shapes_for_marked_nodes ) { + _show_default_node_shapes_for_marked_nodes = show_default_node_shapes_for_marked_nodes; } - /** - * read each line of config file, process non-comment lines - * @throws IOException - */ - private void readConfig( final BufferedReader conf_in ) throws IOException { - String line; - do { - line = conf_in.readLine(); - if ( line != null ) { - line = line.trim(); - // skip comments and blank lines - if ( !line.startsWith( "#" ) && ( !ForesterUtil.isEmpty( line ) ) ) { - // convert runs of spaces to tabs - line = line.replaceAll( "\\s+", "\t" ); - final StringTokenizer st = new StringTokenizer( line, "\t" ); - setKeyValue( st ); - } - } - } 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 setShowDefaultNodeShapesInternal( final boolean show_default_node_shapes_internal ) { + _show_default_node_shapes_internal = show_default_node_shapes_internal; } - public void setBaseFontSize( final int base_font_size ) { - _base_font_size = base_font_size; + public void setShowDomainLabels( final boolean show_domain_labels ) { + _show_domain_labels = show_domain_labels; } - private void setCladogramType( final CLADOGRAM_TYPE cladogram_type ) { - _cladogram_type = cladogram_type; + public void setShowScale( final boolean show_scale ) { + _show_scale = show_scale; } - public void setColorizeBranches( final boolean b ) { + public void setUseStyle( 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 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"; + 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; } - public void setDisplayInternalData( final boolean b ) { - display_options[ display_internal_data ][ 2 ] = b ? "yes" : "no"; + private final void initSpeciesColors() { + _species_colors = new Hashtable(); + for( final String[] s : DEFAULT_SPECIES_COLORS ) { + _species_colors.put( s[ 0 ], Color.decode( s[ 1 ] ) ); + } } - public void setDisplayNodeNames( final boolean b ) { - display_options[ show_node_names ][ 2 ] = b ? "yes" : "no"; + private boolean parseBoolean( final String str ) { + final String my_str = str.trim().toLowerCase(); + if ( my_str.equals( "yes" ) || my_str.equals( "true" ) ) { + return true; + } + else if ( my_str.equals( "no" ) || my_str.equals( "false" ) ) { + return false; + } + else { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse boolean value from [" + str + "]" ); + return false; + } } - public void setDisplaySequenceAcc( final boolean b ) { - display_options[ show_sequence_acc ][ 2 ] = b ? "yes" : "no"; + private double parseDouble( final String str ) { + double d = 0.0; + try { + d = Double.parseDouble( str.trim() ); + } + catch ( final Exception e ) { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse double from [" + str + "]" ); + d = 0.0; + } + return d; } - public void setDisplaySequenceNames( final boolean b ) { - display_options[ show_seq_names ][ 2 ] = b ? "yes" : "no"; + private float parseFloat( final String str ) { + float f = 0.0f; + try { + f = Float.parseFloat( str.trim() ); + } + catch ( final Exception e ) { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse float from [" + str + "]" ); + f = 0.0f; + } + return f; } - public void setDisplaySequenceRelations( final boolean display_sequence_relations ) { - _display_sequence_relations = display_sequence_relations; + private int parseInt( final String str ) { + int i = -1; + try { + i = Integer.parseInt( str.trim() ); + } + catch ( final Exception e ) { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse integer from [" + str + "]" ); + i = -1; + } + return i; } - public void setDisplaySequenceSymbols( final boolean b ) { - display_options[ show_seq_symbols ][ 2 ] = b ? "yes" : "no"; + private short parseShort( final String str ) { + short i = -1; + try { + i = Short.parseShort( str.trim() ); + } + catch ( final Exception e ) { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "could not parse short from [" + str + "]" ); + i = -1; + } + return i; } - public void setDisplayTaxonomyCode( final boolean b ) { - display_options[ show_tax_code ][ 2 ] = b ? "yes" : "no"; + private void processFontFamily( final StringTokenizer st ) { + setBaseFontFamilyName( "" ); + final String font_str = ( ( String ) st.nextElement() ).trim(); + final String[] fonts = font_str.split( ",+" ); + for( String font : fonts ) { + font = font.replace( '_', ' ' ).trim(); + if ( Arrays.binarySearch( AptxUtil.getAvailableFontFamiliesSorted(), font ) >= 0 ) { + setBaseFontFamilyName( font ); + break; + } + } } - public void setDisplayTaxonomyCommonNames( final boolean b ) { - display_options[ show_taxonomy_common_names ][ 2 ] = b ? "yes" : "no"; + /** + * read each line of config file, process non-comment lines + * @throws IOException + */ + private void readConfig( final BufferedReader conf_in ) throws IOException { + String line; + do { + line = conf_in.readLine(); + if ( line != null ) { + line = line.trim(); + // skip comments and blank lines + if ( !line.startsWith( "#" ) && ( !ForesterUtil.isEmpty( line ) ) ) { + // convert runs of spaces to tabs + line = line.replaceAll( "\\s+", "\t" ); + final StringTokenizer st = new StringTokenizer( line, "\t" ); + setKeyValue( st ); + } + } + } while ( line != null ); } - public void setDisplayTaxonomyImages( final boolean b ) { - display_options[ show_taxonomy_images ][ 2 ] = b ? "yes" : "no"; + private void setAntialiasScreen( final boolean antialias_screen ) { + _antialias_screen = antialias_screen; } - public void setDisplayTaxonomyScientificNames( final boolean b ) { - display_options[ show_taxonomy_scientific_names ][ 2 ] = b ? "yes" : "no"; + private void setCladogramType( final CLADOGRAM_TYPE cladogram_type ) { + _cladogram_type = cladogram_type; } - public void setDynamicallyHideData( final boolean b ) { - display_options[ dynamically_hide_data ][ 2 ] = b ? "yes" : "no"; + private void setDefaultBootstrapSamples( final int default_bootstrap_samples ) { + _default_bootstrap_samples = default_bootstrap_samples; } private void setEditable( final boolean editable ) { _editable = editable; } - public void setExtDescNodeDataToReturn( final NodeDataField 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; } @@ -1677,129 +1511,295 @@ public final class Configuration { } } } - else { - ForesterUtil.printWarningMessage( Constants.PRG_NAME, "unknown configuration key [" + key + "] in: " - + config_filename ); + else { + ForesterUtil.printWarningMessage( Constants.PRG_NAME, "unknown configuration key [" + key + "] in: " + + config_filename ); + } + } + + private void setLabelForGetExtDescendentsData( final String label_for_get_ext_descendents_data ) { + _label_for_get_ext_descendents_data = label_for_get_ext_descendents_data; + } + + private void setMaxBaseFontSize( final int max_base_font_size ) { + _max_base_font_size = max_base_font_size; + } + + private void setMinBaseFontSize( final int min_base_font_size ) { + _min_base_font_size = min_base_font_size; + } + + private void setOvMaxHeight( final short ov_max_height ) { + _ov_max_height = ov_max_height; + } + + private void setOvMaxWidth( final short ov_max_width ) { + _ov_max_width = ov_max_width; + } + + private void setOvPlacement( final OVERVIEW_PLACEMENT_TYPE ov_placement ) { + _ov_placement = ov_placement; + } + + private void setPathToLocalFastme( final File path_to_local_fastme ) { + _path_to_local_fastme = path_to_local_fastme; + } + + private void setPathToLocalMafft( final File path_to_local_mafft ) { + _path_to_local_mafft = path_to_local_mafft; + } + + private void setPathToLocalRaxml( final File path_to_local_raxml ) { + _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; + } + + 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 getAnnotationColors() { + if ( _annotation_colors == null ) { + _annotation_colors = new Hashtable(); + } + 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 getDisplayColors() { + return _display_colors; + } + + String getDisplayTitle( final int which ) { + return display_options[ which ][ 0 ]; + } + + Map getDomainColors() { + if ( _domain_colors == null ) { + _domain_colors = new Hashtable(); } + return _domain_colors; } - private void setLabelForGetExtDescendentsData( final String label_for_get_ext_descendents_data ) { - _label_for_get_ext_descendents_data = label_for_get_ext_descendents_data; + int getGraphicsExportX() { + return _graphics_export_x; } - final public void setLineUpRendarableNodeData( final boolean line_up_renderable_node_data ) { - _line_up_renderable_node_data = line_up_renderable_node_data; + int getGraphicsExportY() { + return _graphics_export_y; } - private void setMaxBaseFontSize( final int max_base_font_size ) { - _max_base_font_size = max_base_font_size; + Color getGuiBackgroundColor() { + return _gui_background_color; } - public void setMidpointReroot( final boolean midpoint_root ) { - _midpoint_root = midpoint_root; + Color getGuiButtonBackgroundColor() { + return _gui_button_background_color; } - private void setMinBaseFontSize( final int min_base_font_size ) { - _min_base_font_size = min_base_font_size; + Color getGuiButtonBorderColor() { + return _gui_button_border_color; } - public void setMinConfidenceValue( final double min_confidence_value ) { - _min_confidence_value = min_confidence_value; + Color getGuiButtonTextColor() { + return _gui_button_text_color; } - public void setNodeLabelDirection( final NODE_LABEL_DIRECTION node_label_direction ) { - _node_label_direction = node_label_direction; + Color getGuiCheckboxAndButtonActiveColor() { + return _gui_checkbox_and_button_active_color; } - 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; + Color getGuiCheckboxTextColor() { + return _gui_checkbox_text_color; } - 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; + Color getGuiMenuBackgroundColor() { + return _gui_menu_background_color; } - private void setOvMaxHeight( final short ov_max_height ) { - _ov_max_height = ov_max_height; + Color getGuiMenuTextColor() { + return _gui_menu_text_color; } - private void setOvMaxWidth( final short ov_max_width ) { - _ov_max_width = ov_max_width; + int getMaxBaseFontSize() { + return _max_base_font_size; } - private void setOvPlacement( final OVERVIEW_PLACEMENT_TYPE ov_placement ) { - _ov_placement = ov_placement; + int getMinBaseFontSize() { + return _min_base_font_size; } - private void setPathToLocalFastme( final File path_to_local_fastme ) { - _path_to_local_fastme = path_to_local_fastme; + double getMinConfidenceValue() { + return _min_confidence_value; } - private void setPathToLocalMafft( final File path_to_local_mafft ) { - _path_to_local_mafft = path_to_local_mafft; + NODE_LABEL_DIRECTION getNodeLabelDirection() { + return _node_label_direction; } - private void setPathToLocalRaxml( final File path_to_local_raxml ) { - _path_to_local_raxml = path_to_local_raxml; + short getNumberOfDigitsAfterCommaForBranchLengthValues() { + return _number_of_digits_after_comma_for_branch_length_values; } - public void setPhylogenyGraphicsType( final PHYLOGENY_GRAPHICS_TYPE phylogeny_graphics_type ) { - _phylogeny_graphics_type = phylogeny_graphics_type; + short getNumberOfDigitsAfterCommaForConfidenceValues() { + return _number_of_digits_after_comma_for_confidence_values; } - public void setPrintLineWidth( final float print_line_width ) { - _print_line_width = print_line_width; + short getOvMaxHeight() { + return _ov_max_height; } - public void setReplaceUnderscoresInNhParsing( final boolean nh_parsing_replace_underscores ) { - _nh_parsing_replace_underscores = nh_parsing_replace_underscores; + short getOvMaxWidth() { + return _ov_max_width; } - final public void setRightLineUpDomains( final boolean right_align_domains ) { - _right_align_domains = right_align_domains; + OVERVIEW_PLACEMENT_TYPE getOvPlacement() { + return _ov_placement; } - private void setShowAnnotationRefSource( final boolean b ) { - _show_annotation_ref_source = b; + PHYLOGENY_GRAPHICS_TYPE getPhylogenyGraphicsType() { + return _phylogeny_graphics_type; } - public void setShowDefaultNodeShapesExternal( final boolean show_default_node_shapes_external ) { - _show_default_node_shapes_external = show_default_node_shapes_external; + float getPrintLineWidth() { + return _print_line_width; } - public void setShowDefaultNodeShapesForMarkedNodes( final boolean show_default_node_shapes_for_marked_nodes ) { - _show_default_node_shapes_for_marked_nodes = show_default_node_shapes_for_marked_nodes; + Hashtable getSequenceColors() { + if ( _sequence_colors == null ) { + _sequence_colors = new Hashtable(); + } + return _sequence_colors; } - public void setShowDefaultNodeShapesInternal( final boolean show_default_node_shapes_internal ) { - _show_default_node_shapes_internal = show_default_node_shapes_internal; + Hashtable getSpeciesColors() { + if ( _species_colors == null ) { + initSpeciesColors(); + } + return _species_colors; } - public void setShowDomainLabels( final boolean show_domain_labels ) { - _show_domain_labels = show_domain_labels; + final TAXONOMY_EXTRACTION getTaxonomyExtraction() { + return _taxonomy_extraction; } - private void setShowOverview( final boolean show_overview ) { - _show_overview = show_overview; + boolean isAntialiasScreen() { + return _antialias_screen; } - public void setShowScale( final boolean show_scale ) { - _show_scale = show_scale; + /** + * Convenience method. + * + * @return true if value in configuration file was 'yes' + */ + boolean isDrawAsPhylogram() { + return doCheckOption( display_as_phylogram ); } - final void setTaxonomyExtraction( final TAXONOMY_EXTRACTION taxonomy_extraction ) { - _taxonomy_extraction = taxonomy_extraction; + boolean isEditable() { + return _editable; } - public void setUseStyle( final boolean b ) { - display_options[ use_style ][ 2 ] = b ? "yes" : "no"; + /** + * Only used by ArchaeoptryxE. + * + */ + boolean isHideControlPanelAndMenubar() { + return _hide_controls_and_menus; } - private void setValidatePhyloXmlAgainstSchema( final boolean validate_against_phyloxml_xsd_schema ) { - _validate_against_phyloxml_xsd_schema = validate_against_phyloxml_xsd_schema; + boolean isInternalNumberAreConfidenceForNhParsing() { + return _internal_number_are_confidence_for_nh_parsing; } - public boolean isAllowThickStrokes() { - return _allow_thick_strokes; + 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; + } + + static String getDefaultFontFamilyName() { + return DEFAULT_FONT_FAMILY; } }