in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / Options.java
index fdaeacb..8494510 100644 (file)
@@ -29,8 +29,7 @@ import java.awt.Font;
 
 import org.forester.io.parsers.nhx.NHXParser.TAXONOMY_EXTRACTION;
 import org.forester.phylogeny.PhylogenyNode.NH_CONVERSION_SUPPORT_VALUE_STYLE;
-import org.forester.phylogeny.data.NodeData;
-import org.forester.phylogeny.data.NodeData.NODE_DATA;
+import org.forester.phylogeny.data.NodeDataField;
 import org.forester.phylogeny.data.NodeVisualData;
 import org.forester.phylogeny.data.NodeVisualData.NodeFill;
 import org.forester.phylogeny.data.NodeVisualData.NodeShape;
@@ -41,6 +40,39 @@ import org.forester.util.ForesterUtil;
  */
 final public class Options {
 
+    public static enum CLADOGRAM_TYPE {
+        EXT_NODE_SUM_DEP, NON_LINED_UP, TOTAL_NODE_SUM_DEP;
+    }
+
+    public static enum NODE_LABEL_DIRECTION {
+        HORIZONTAL, RADIAL;
+    }
+
+    public static enum PHYLOGENY_GRAPHICS_TYPE {
+        CIRCULAR, CONVEX, CURVED, EURO_STYLE, RECTANGULAR, ROUNDED, TRIANGULAR, UNROOTED;
+    }
+
+    static enum OVERVIEW_PLACEMENT_TYPE {
+        LOWER_LEFT( "lower left" ),
+        LOWER_RIGHT( "lower right" ),
+        UPPER_LEFT( "upper left" ),
+        UPPER_RIGHT( "upper right" );
+
+        private final String _name;
+
+        private OVERVIEW_PLACEMENT_TYPE( final String name ) {
+            _name = name;
+        }
+
+        @Override
+        public String toString() {
+            return _name;
+        }
+
+        public String toTag() {
+            return toString().replaceAll( " ", "_" );
+        }
+    }
     static final double                       MIN_CONFIDENCE_DEFAULT = 0.0;
     private boolean                           _abbreviate_scientific_names;
     private boolean                           _allow_errors_in_distance_to_parent;
@@ -55,12 +87,13 @@ final public class Options {
     private NodeVisualData.NodeShape          _default_node_shape;
     private short                             _default_node_shape_size;
     private boolean                           _editable;
-    private NODE_DATA                         _ext_desc_data_to_return;
-    private boolean                           _graphics_export_using_actual_size;
+    private NodeDataField                     _ext_desc_data_to_return;
+    private final boolean                     _graphics_export_using_actual_size = true;
     private boolean                           _graphics_export_visible_only;
     private boolean                           _internal_number_are_confidence_for_nh_parsing;
     private boolean                           _inverse_search_result;
     private boolean                           _match_whole_terms_only;
+    private boolean                           _search_with_regex;
     private double                            _min_confidence_value;
     private NH_CONVERSION_SUPPORT_VALUE_STYLE _nh_conversion_support_value_style;
     private boolean                           _nh_parsing_replace_underscores;
@@ -71,26 +104,28 @@ final public class Options {
     private PHYLOGENY_GRAPHICS_TYPE           _phylogeny_graphics_type;
     private boolean                           _print_black_and_white;
     private float                             _print_line_width;
-    private int                               _print_size_x;
-    private int                               _print_size_y;
-    private boolean                           _print_using_actual_size;
+    private final boolean                     _print_using_actual_size = true;
     private double                            _scale_bar_length;
     private boolean                           _search_case_sensitive;
     private boolean                           _show_annotation_ref_source;
-    private boolean                           _show_branch_length_values;
     private boolean                           _show_confidence_stddev;
+    private boolean                           _show_default_node_shapes_for_marked_nodes;
     private boolean                           _show_default_node_shapes_external;
     private boolean                           _show_default_node_shapes_internal;
     private boolean                           _show_domain_labels;
     private boolean                           _show_overview;
     private boolean                           _show_scale;
     private TAXONOMY_EXTRACTION               _taxonomy_extraction;
+    private boolean                           _line_up_renderable_node_data;
+    private boolean                           _right_align_domains;
+    private boolean                           _color_all_found_nodes_when_coloring_subtree;
+    private boolean                           _parse_beast_style_extended_nexus_tags;
 
     private Options() {
         init();
     }
 
-    public NodeData.NODE_DATA getExtDescNodeDataToReturn() {
+    public NodeDataField getExtDescNodeDataToReturn() {
         return _ext_desc_data_to_return;
     }
 
@@ -98,8 +133,12 @@ final public class Options {
         return _allow_errors_in_distance_to_parent;
     }
 
-    public boolean isAllowFontSizeChange() {
-        return true;
+    final public boolean isLineUpRendarableNodeData() {
+        return _line_up_renderable_node_data;
+    }
+
+    final public boolean isRightLineUpDomains() {
+        return _right_align_domains;
     }
 
     public final boolean isShowAnnotationRefSource() {
@@ -122,10 +161,18 @@ final public class Options {
         _color_labels_same_as_parent_branch = color_labels_same_as_parent_branch;
     }
 
-    public void setExtDescNodeDataToReturn( final NODE_DATA ext_desc_data_to_return ) {
+    public void setExtDescNodeDataToReturn( final NodeDataField ext_desc_data_to_return ) {
         _ext_desc_data_to_return = ext_desc_data_to_return;
     }
 
+    final public void setLineUpRendarableNodeData( final boolean line_up_renderable_node_data ) {
+        _line_up_renderable_node_data = line_up_renderable_node_data;
+    }
+
+    final public void setRightLineUpDomains( final boolean right_align_domains ) {
+        _right_align_domains = right_align_domains;
+    }
+
     public final void setShowAnnotationRefSource( final boolean show_annotation_ref_source ) {
         _show_annotation_ref_source = show_annotation_ref_source;
     }
@@ -134,6 +181,59 @@ final public class Options {
         _show_domain_labels = show_domain_labels;
     }
 
+    final private void init() {
+        _default_node_shape = NodeShape.CIRCLE;
+        _default_node_fill = NodeFill.GRADIENT;
+        _default_node_shape_size = AptxConstants.DEFAULT_NODE_SHAPE_SIZE_DEFAULT;
+        _internal_number_are_confidence_for_nh_parsing = false;
+        _show_scale = false;
+        _antialias_screen = true;
+        _antialias_print = true;
+        _graphics_export_visible_only = false;
+        _editable = true;
+        _background_color_gradient = false;
+        _show_default_node_shapes_internal = false;
+        _show_default_node_shapes_external = false;
+        _show_default_node_shapes_for_marked_nodes = false;
+        _color_all_found_nodes_when_coloring_subtree = false;
+        _parse_beast_style_extended_nexus_tags= true;
+        _min_confidence_value = MIN_CONFIDENCE_DEFAULT;
+        _print_black_and_white = false;
+        _phylogeny_graphics_type = PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR;
+        _base_font = new Font( Configuration.getDefaultFontFamilyName(), Font.PLAIN, 10 );
+        _match_whole_terms_only = false;
+        _search_with_regex = false;
+        _search_case_sensitive = false;
+        _print_line_width = AptxConstants.PDF_LINE_WIDTH_DEFAULT;
+        _show_overview = true;
+        _ov_placement = OVERVIEW_PLACEMENT_TYPE.UPPER_LEFT;
+        _node_label_direction = NODE_LABEL_DIRECTION.HORIZONTAL;
+        _inverse_search_result = false;
+        _scale_bar_length = 0.0;
+        _number_of_digits_after_comma_for_branch_length_values = AptxConstants.NUMBER_OF_DIGITS_AFTER_COMMA_FOR_BRANCH_LENGTH_VALUES_DEFAULT;
+        _number_of_digits_after_comma_for_confidence_values = AptxConstants.NUMBER_OF_DIGITS_AFTER_COMMA_FOR_CONFIDENCE_VALUES_DEFAULT;
+        _nh_parsing_replace_underscores = false;
+        _taxonomy_extraction = TAXONOMY_EXTRACTION.NO;
+        _cladogram_type = AptxConstants.CLADOGRAM_TYPE_DEFAULT;
+        _show_domain_labels = true;
+        _show_annotation_ref_source = true;
+        setAbbreviateScientificTaxonNames( false );
+        _color_labels_same_as_parent_branch = false;
+        _show_confidence_stddev = false;
+        _nh_conversion_support_value_style = NH_CONVERSION_SUPPORT_VALUE_STYLE.NONE;
+        _ext_desc_data_to_return = NodeDataField.UNKNOWN;
+        _line_up_renderable_node_data = true;
+        _right_align_domains = false;
+    }
+
+    final private void setNumberOfDigitsAfterCommaForBranchLength( 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;
+    }
+
+    final private 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;
+    }
+
     final Font getBaseFont() {
         return _base_font;
     }
@@ -186,14 +286,6 @@ final public class Options {
         return _print_line_width;
     }
 
-    final int getPrintSizeX() {
-        return _print_size_x;
-    }
-
-    final int getPrintSizeY() {
-        return _print_size_y;
-    }
-
     final double getScaleBarLength() {
         return _scale_bar_length;
     }
@@ -270,8 +362,8 @@ final public class Options {
         return _search_case_sensitive;
     }
 
-    final boolean isShowBranchLengthValues() {
-        return _show_branch_length_values;
+    final boolean isSearchWithRegex() {
+        return _search_with_regex;
     }
 
     boolean isShowConfidenceStddev() {
@@ -282,6 +374,10 @@ final public class Options {
         return _show_default_node_shapes_external;
     }
 
+    boolean isShowDefaultNodeShapesForMarkedNodes() {
+        return _show_default_node_shapes_for_marked_nodes;
+    }
+
     boolean isShowDefaultNodeShapesInternal() {
         return _show_default_node_shapes_internal;
     }
@@ -334,18 +430,8 @@ final public class Options {
         _editable = editable;
     }
 
-    final void setGraphicsExportUsingActualSize( final boolean graphics_export_using_actual_size ) {
-        _graphics_export_using_actual_size = graphics_export_using_actual_size;
-        if ( !graphics_export_using_actual_size ) {
-            setGraphicsExportVisibleOnly( false );
-        }
-    }
-
     final void setGraphicsExportVisibleOnly( final boolean graphics_export_visible_only ) {
         _graphics_export_visible_only = graphics_export_visible_only;
-        if ( graphics_export_visible_only ) {
-            setGraphicsExportUsingActualSize( true );
-        }
     }
 
     final void setInternalNumberAreConfidenceForNhParsing( final boolean internal_number_are_confidence_for_nh_parsing ) {
@@ -387,19 +473,7 @@ final public class Options {
     final void setPrintLineWidth( final float print_line_width ) {
         _print_line_width = print_line_width;
     }
-
-    final void setPrintSizeX( final int print_size_x ) {
-        _print_size_x = print_size_x;
-    }
-
-    final void setPrintSizeY( final int print_size_y ) {
-        _print_size_y = print_size_y;
-    }
-
-    final void setPrintUsingActualSize( final boolean print_using_actual_size ) {
-        _print_using_actual_size = print_using_actual_size;
-    }
-
+    
     final void setReplaceUnderscoresInNhParsing( final boolean nh_parsing_replace_underscores ) {
         _nh_parsing_replace_underscores = nh_parsing_replace_underscores;
     }
@@ -412,8 +486,8 @@ final public class Options {
         _search_case_sensitive = search_case_sensitive;
     }
 
-    final void setShowBranchLengthValues( final boolean show_branch_length_values ) {
-        _show_branch_length_values = show_branch_length_values;
+    final void setSearchWithRegex( final boolean search_with_regex ) {
+        _search_with_regex = search_with_regex;
     }
 
     void setShowConfidenceStddev( final boolean show_confidence_stddev ) {
@@ -424,6 +498,10 @@ final public class Options {
         _show_default_node_shapes_external = show_default_node_shapes_external;
     }
 
+    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;
+    }
+
     void setShowDefaultNodeShapesInternal( final boolean show_default_node_shapes_internal ) {
         _show_default_node_shapes_internal = show_default_node_shapes_internal;
     }
@@ -440,70 +518,11 @@ final public class Options {
         _taxonomy_extraction = taxonomy_extraction;
     }
 
-    final private void init() {
-        _default_node_shape = NodeShape.CIRCLE;
-        _default_node_fill = NodeFill.GRADIENT;
-        _default_node_shape_size = Constants.DEFAULT_NODE_SHAPE_SIZE_DEFAULT;
-        _show_branch_length_values = false;
-        _internal_number_are_confidence_for_nh_parsing = false;
-        _show_scale = false;
-        _antialias_screen = true;
-        _antialias_print = true;
-        _graphics_export_visible_only = false;
-        _editable = true;
-        _background_color_gradient = false;
-        _show_default_node_shapes_internal = false;
-        _show_default_node_shapes_external = false;
-        if ( AptxUtil.isUsOrCanada() ) {
-            _print_size_x = Constants.US_LETTER_SIZE_X;
-            _print_size_y = Constants.US_LETTER_SIZE_Y;
-        }
-        else {
-            _print_size_x = Constants.A4_SIZE_X;
-            _print_size_y = Constants.A4_SIZE_Y;
-        }
-        _min_confidence_value = MIN_CONFIDENCE_DEFAULT;
-        _print_black_and_white = false;
-        _print_using_actual_size = false;
-        _graphics_export_using_actual_size = true;
-        _phylogeny_graphics_type = PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR;
-        _base_font = new Font( Configuration.getDefaultFontFamilyName(), Font.PLAIN, 10 );
-        _match_whole_terms_only = false;
-        _search_case_sensitive = false;
-        _print_line_width = Constants.PDF_LINE_WIDTH_DEFAULT;
-        _show_overview = true;
-        _ov_placement = OVERVIEW_PLACEMENT_TYPE.UPPER_LEFT;
-        _node_label_direction = NODE_LABEL_DIRECTION.HORIZONTAL;
-        _inverse_search_result = false;
-        _scale_bar_length = 0.0;
-        _number_of_digits_after_comma_for_branch_length_values = Constants.NUMBER_OF_DIGITS_AFTER_COMMA_FOR_BRANCH_LENGTH_VALUES_DEFAULT;
-        _number_of_digits_after_comma_for_confidence_values = Constants.NUMBER_OF_DIGITS_AFTER_COMMA_FOR_CONFIDENCE_VALUES_DEFAULT;
-        _nh_parsing_replace_underscores = false;
-        _taxonomy_extraction = TAXONOMY_EXTRACTION.NO;
-        _cladogram_type = Constants.CLADOGRAM_TYPE_DEFAULT;
-        _show_domain_labels = true;
-        _show_annotation_ref_source = true;
-        setAbbreviateScientificTaxonNames( false );
-        _color_labels_same_as_parent_branch = false;
-        _show_confidence_stddev = true;
-        _nh_conversion_support_value_style = NH_CONVERSION_SUPPORT_VALUE_STYLE.NONE;
-        _ext_desc_data_to_return = NODE_DATA.UNKNOWN;
-    }
-
-    final private void setNumberOfDigitsAfterCommaForBranchLength( 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;
-    }
-
-    final private 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 final static Options createInstance( final Configuration configuration ) {
         final Options instance = createDefaultInstance();
         if ( configuration != null ) {
             instance.setAntialiasScreen( configuration.isAntialiasScreen() );
             instance.setShowScale( configuration.isShowScale() );
-            instance.setShowBranchLengthValues( configuration.isShowBranchLengthValues() );
             instance.setShowOverview( configuration.isShowOverview() );
             instance.setColorByTaxonomicGroup( configuration.isColorByTaxonomicGroup() );
             instance.setCladogramType( configuration.getCladogramType() );
@@ -531,12 +550,6 @@ final public class Options {
             if ( configuration.getMinConfidenceValue() != MIN_CONFIDENCE_DEFAULT ) {
                 instance.setMinConfidenceValue( configuration.getMinConfidenceValue() );
             }
-            if ( configuration.getGraphicsExportX() > 0 ) {
-                instance.setPrintSizeX( configuration.getGraphicsExportX() );
-            }
-            if ( configuration.getGraphicsExportY() > 0 ) {
-                instance.setPrintSizeY( configuration.getGraphicsExportY() );
-            }
             if ( configuration.getBaseFontSize() > 0 ) {
                 instance.setBaseFont( instance.getBaseFont().deriveFont( ( float ) configuration.getBaseFontSize() ) );
             }
@@ -558,9 +571,12 @@ final public class Options {
             }
             instance.setShowDefaultNodeShapesInternal( configuration.isShowDefaultNodeShapesInternal() );
             instance.setShowDefaultNodeShapesExternal( configuration.isShowDefaultNodeShapesExternal() );
+            instance.setShowDefaultNodeShapesForMarkedNodes( configuration.isShowDefaultNodeShapesForMarkedNodes() );
             if ( configuration.getExtDescNodeDataToReturn() != null ) {
                 instance.setExtDescNodeDataToReturn( configuration.getExtDescNodeDataToReturn() );
             }
+            instance.setRightLineUpDomains( configuration.isRightLineUpDomains() );
+            instance.setLineUpRendarableNodeData( configuration.isLineUpRendarableNodeData() );
             instance.setAllowErrorsInDistanceToParent( false );
         }
         return instance;
@@ -570,37 +586,19 @@ final public class Options {
         return new Options();
     }
 
-    public static enum CLADOGRAM_TYPE {
-        EXT_NODE_SUM_DEP, NON_LINED_UP, TOTAL_NODE_SUM_DEP;
+    final boolean isColorAllFoundNodesWhenColoringSubtree() {
+        return _color_all_found_nodes_when_coloring_subtree;
     }
-
-    public static enum NODE_LABEL_DIRECTION {
-        HORIZONTAL, RADIAL;
+    
+    final void setColorAllFoundNodesWhenColoringSubtree( final boolean color_all_found_nodes_when_coloring_subtree ) {
+        _color_all_found_nodes_when_coloring_subtree = color_all_found_nodes_when_coloring_subtree;
     }
 
-    public static enum PHYLOGENY_GRAPHICS_TYPE {
-        CIRCULAR, CONVEX, CURVED, EURO_STYLE, RECTANGULAR, ROUNDED, TRIANGULAR, UNROOTED;
+    final boolean isParseBeastStyleExtendedNexusTags() {
+        return _parse_beast_style_extended_nexus_tags;
     }
 
-    static enum OVERVIEW_PLACEMENT_TYPE {
-        LOWER_LEFT( "lower left" ),
-        LOWER_RIGHT( "lower right" ),
-        UPPER_LEFT( "upper left" ),
-        UPPER_RIGHT( "upper right" );
-
-        private final String _name;
-
-        private OVERVIEW_PLACEMENT_TYPE( final String name ) {
-            _name = name;
-        }
-
-        @Override
-        public String toString() {
-            return _name;
-        }
-
-        public String toTag() {
-            return toString().replaceAll( " ", "_" );
-        }
+    final void setParseBeastStyleExtendedNexusTags( boolean parse_beast_style_extended_nexus_tags ) {
+        _parse_beast_style_extended_nexus_tags = parse_beast_style_extended_nexus_tags;
     }
 }