X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FMainFrameApplication.java;h=287a69071473c212360ec0af35d274e99ac2f7a3;hb=73c5b11c1a00e539afb246e345ebf3f042dded78;hp=42b6cb60a6833a6b866a938cc12f169d680864eb;hpb=15a1e4bec0836b935805c18e67e4cf9e48454617;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/MainFrameApplication.java b/forester/java/src/org/forester/archaeopteryx/MainFrameApplication.java index 42b6cb6..287a690 100644 --- a/forester/java/src/org/forester/archaeopteryx/MainFrameApplication.java +++ b/forester/java/src/org/forester/archaeopteryx/MainFrameApplication.java @@ -59,10 +59,10 @@ import javax.swing.event.ChangeListener; import javax.swing.filechooser.FileFilter; import javax.swing.plaf.synth.SynthLookAndFeel; +import org.forester.archaeopteryx.AptxUtil.GraphicsExportType; import org.forester.archaeopteryx.Options.CLADOGRAM_TYPE; import org.forester.archaeopteryx.Options.NODE_LABEL_DIRECTION; import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE; -import org.forester.archaeopteryx.Util.GraphicsExportType; import org.forester.archaeopteryx.tools.AncestralTaxonomyInferrer; import org.forester.archaeopteryx.tools.GoAnnotation; import org.forester.archaeopteryx.tools.PhyloInferenceDialog; @@ -80,6 +80,7 @@ import org.forester.io.parsers.nhx.NHXParser; import org.forester.io.parsers.phyloxml.PhyloXmlParser; import org.forester.io.parsers.phyloxml.PhyloXmlUtil; import org.forester.io.parsers.tol.TolParser; +import org.forester.io.parsers.util.ParserUtils; import org.forester.io.writers.PhylogenyWriter; import org.forester.io.writers.SequenceWriter; import org.forester.msa.Msa; @@ -87,6 +88,7 @@ import org.forester.msa.MsaFormatException; import org.forester.phylogeny.Phylogeny; import org.forester.phylogeny.PhylogenyMethods; import org.forester.phylogeny.PhylogenyNode; +import org.forester.phylogeny.PhylogenyNodeI.NH_CONVERSION_SUPPORT_VALUE_STYLE; import org.forester.phylogeny.data.Confidence; import org.forester.phylogeny.data.Taxonomy; import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory; @@ -102,8 +104,6 @@ import org.forester.util.BasicTable; import org.forester.util.BasicTableParser; import org.forester.util.DescriptiveStatistics; import org.forester.util.ForesterUtil; -import org.forester.util.ForesterUtil.PhylogenyNodeField; -import org.forester.util.ForesterUtil.TAXONOMY_EXTRACTION; import org.forester.util.WindowsUtils; class DefaultFilter extends FileFilter { @@ -174,20 +174,22 @@ class SequencesFileFilter extends FileFilter { public final class MainFrameApplication extends MainFrame { - private final static int FRAME_X_SIZE = 800; - private final static int FRAME_Y_SIZE = 800; + static final String INFER_ANCESTOR_TAXONOMIES = "Infer Ancestor Taxonomies"; + static final String OBTAIN_DETAILED_TAXONOMIC_INFORMATION = "Obtain Detailed Taxonomic Information"; + private final static int FRAME_X_SIZE = 800; + private final static int FRAME_Y_SIZE = 800; // Filters for the file-open dialog (classes defined in this file) - private final static NHFilter nhfilter = new NHFilter(); - private final static NHXFilter nhxfilter = new NHXFilter(); - private final static XMLFilter xmlfilter = new XMLFilter(); - private final static TolFilter tolfilter = new TolFilter(); - private final static NexusFilter nexusfilter = new NexusFilter(); - private final static PdfFilter pdffilter = new PdfFilter(); - private final static GraphicsFileFilter graphicsfilefilter = new GraphicsFileFilter(); - private final static MsaFileFilter msafilter = new MsaFileFilter(); - private final static SequencesFileFilter seqsfilter = new SequencesFileFilter(); - private final static DefaultFilter defaultfilter = new DefaultFilter(); - private static final long serialVersionUID = -799735726778865234L; + private final static NHFilter nhfilter = new NHFilter(); + private final static NHXFilter nhxfilter = new NHXFilter(); + private final static XMLFilter xmlfilter = new XMLFilter(); + private final static TolFilter tolfilter = new TolFilter(); + private final static NexusFilter nexusfilter = new NexusFilter(); + private final static PdfFilter pdffilter = new PdfFilter(); + private final static GraphicsFileFilter graphicsfilefilter = new GraphicsFileFilter(); + private final static MsaFileFilter msafilter = new MsaFileFilter(); + private final static SequencesFileFilter seqsfilter = new SequencesFileFilter(); + private final static DefaultFilter defaultfilter = new DefaultFilter(); + private static final long serialVersionUID = -799735726778865234L; private final JFileChooser _values_filechooser; private final JFileChooser _open_filechooser; private final JFileChooser _msa_filechooser; @@ -217,21 +219,28 @@ public final class MainFrameApplication extends MainFrame { private File _current_dir; private ButtonGroup _radio_group_1; // Others: - double _min_not_collapse = Constants.MIN_NOT_COLLAPSE_DEFAULT; + double _min_not_collapse = Constants.MIN_NOT_COLLAPSE_DEFAULT; // Phylogeny Inference menu private JMenu _inference_menu; private JMenuItem _inference_from_msa_item; private JMenuItem _inference_from_seqs_item; // Phylogeny Inference - private PhylogeneticInferenceOptions _phylogenetic_inference_options = null; - private Msa _msa = null; - private File _msa_file = null; - private List _seqs = null; - private File _seqs_file = null; + private PhylogeneticInferenceOptions _phylogenetic_inference_options = null; + private Msa _msa = null; + private File _msa_file = null; + private List _seqs = null; + private File _seqs_file = null; // expression values menu: JMenuItem _read_values_jmi; private MainFrameApplication( final Phylogeny[] phys, final Configuration config, final String title ) { + this( phys, config, title, null ); + } + + private MainFrameApplication( final Phylogeny[] phys, + final Configuration config, + final String title, + final File current_dir ) { _configuration = config; if ( _configuration == null ) { throw new IllegalArgumentException( "configuration is null" ); @@ -263,19 +272,22 @@ public final class MainFrameApplication extends MainFrame { //UIManager.setLookAndFeel( "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel" ); } catch ( final UnsupportedLookAndFeelException e ) { - Util.dieWithSystemError( "unsupported look and feel: " + e.toString() ); + AptxUtil.dieWithSystemError( "unsupported look and feel: " + e.toString() ); } catch ( final ClassNotFoundException e ) { - Util.dieWithSystemError( "class not found exception: " + e.toString() ); + AptxUtil.dieWithSystemError( "class not found exception: " + e.toString() ); } catch ( final InstantiationException e ) { - Util.dieWithSystemError( "instantiation exception: " + e.toString() ); + AptxUtil.dieWithSystemError( "instantiation exception: " + e.toString() ); } catch ( final IllegalAccessException e ) { - Util.dieWithSystemError( "illegal access exception: " + e.toString() ); + AptxUtil.dieWithSystemError( "illegal access exception: " + e.toString() ); } catch ( final Exception e ) { - Util.dieWithSystemError( e.toString() ); + AptxUtil.dieWithSystemError( e.toString() ); + } + if ( ( current_dir != null ) && current_dir.canRead() && current_dir.isDirectory() ) { + setCurrentDir( current_dir ); } // hide until everything is ready setVisible( false ); @@ -408,7 +420,7 @@ public final class MainFrameApplication extends MainFrame { // addKeyListener( this ); setVisible( true ); if ( ( phys != null ) && ( phys.length > 0 ) ) { - Util.addPhylogeniesToTabs( phys, title, null, _configuration, _mainpanel ); + AptxUtil.addPhylogeniesToTabs( phys, title, null, _configuration, _mainpanel ); validate(); getMainPanel().getControlPanel().showWholeAll(); getMainPanel().getControlPanel().showWhole(); @@ -419,9 +431,54 @@ public final class MainFrameApplication extends MainFrame { System.gc(); } + private MainFrameApplication( final Phylogeny[] phys, final Configuration config ) { + _configuration = config; + if ( _configuration == null ) { + throw new IllegalArgumentException( "configuration is null" ); + } + setVisible( false ); + setOptions( Options.createInstance( _configuration ) ); + _mainpanel = new MainPanel( _configuration, this ); + _open_filechooser = null; + _open_filechooser_for_species_tree = null; + _save_filechooser = null; + _writetopdf_filechooser = null; + _writetographics_filechooser = null; + _msa_filechooser = null; + _seqs_filechooser = null; + _values_filechooser = null; + _jmenubar = new JMenuBar(); + buildFileMenu(); + buildTypeMenu(); + _contentpane = getContentPane(); + _contentpane.setLayout( new BorderLayout() ); + _contentpane.add( _mainpanel, BorderLayout.CENTER ); + // App is this big + setSize( MainFrameApplication.FRAME_X_SIZE, MainFrameApplication.FRAME_Y_SIZE ); + // The window listener + setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE ); + addWindowListener( new WindowAdapter() { + + @Override + public void windowClosing( final WindowEvent e ) { + exit(); + } + } ); + // setVisible( true ); + if ( ( phys != null ) && ( phys.length > 0 ) ) { + AptxUtil.addPhylogeniesToTabs( phys, "", null, _configuration, _mainpanel ); + validate(); + getMainPanel().getControlPanel().showWholeAll(); + getMainPanel().getControlPanel().showWhole(); + } + //activateSaveAllIfNeeded(); + // ...and its children + _contentpane.repaint(); + } + private MainFrameApplication( final Phylogeny[] phys, final String config_file, final String title ) { // Reads the config file (false, false => not url, not applet): - this( phys, new Configuration( config_file, false, false ), title ); + this( phys, new Configuration( config_file, false, false, true ), title ); } @Override @@ -589,10 +646,10 @@ public final class MainFrameApplication extends MainFrame { _contentpane.repaint(); } catch ( final Exception ex ) { - Util.unexpectedException( ex ); + AptxUtil.unexpectedException( ex ); } catch ( final Error err ) { - Util.unexpectedError( err ); + AptxUtil.unexpectedError( err ); } } @@ -613,7 +670,7 @@ public final class MainFrameApplication extends MainFrame { customizeJMenuItem( _root_min_cost_l_item ); customizeJMenuItem( _load_species_tree_item ); _analysis_menu.addSeparator(); - _analysis_menu.add( _lineage_inference = new JMenuItem( "Infer Ancestor Taxonomies" ) ); + _analysis_menu.add( _lineage_inference = new JMenuItem( INFER_ANCESTOR_TAXONOMIES ) ); customizeJMenuItem( _lineage_inference ); _lineage_inference.setToolTipText( "Inference of ancestor taxonomies/lineages" ); _jmenubar.add( _analysis_menu ); @@ -659,15 +716,15 @@ public final class MainFrameApplication extends MainFrame { _save_all_item.setEnabled( false ); _file_jmenu.addSeparator(); _file_jmenu.add( _write_to_pdf_item = new JMenuItem( "Export to PDF file ..." ) ); - if ( Util.canWriteFormat( "tif" ) || Util.canWriteFormat( "tiff" ) || Util.canWriteFormat( "TIF" ) ) { + if ( AptxUtil.canWriteFormat( "tif" ) || AptxUtil.canWriteFormat( "tiff" ) || AptxUtil.canWriteFormat( "TIF" ) ) { _file_jmenu.add( _write_to_tif_item = new JMenuItem( "Export to TIFF file..." ) ); } _file_jmenu.add( _write_to_png_item = new JMenuItem( "Export to PNG file..." ) ); _file_jmenu.add( _write_to_jpg_item = new JMenuItem( "Export to JPG file..." ) ); - if ( Util.canWriteFormat( "gif" ) ) { + if ( AptxUtil.canWriteFormat( "gif" ) ) { _file_jmenu.add( _write_to_gif_item = new JMenuItem( "Export to GIF file..." ) ); } - if ( Util.canWriteFormat( "bmp" ) ) { + if ( AptxUtil.canWriteFormat( "bmp" ) ) { _file_jmenu.add( _write_to_bmp_item = new JMenuItem( "Export to BMP file..." ) ); } _file_jmenu.addSeparator(); @@ -738,16 +795,17 @@ public final class MainFrameApplication extends MainFrame { _radio_group_1.add( _ext_node_dependent_cladogram_rbmi ); _radio_group_1.add( _uniform_cladograms_rbmi ); _radio_group_1.add( _non_lined_up_cladograms_rbmi ); + _options_jmenu.add( _show_overview_cbmi = new JCheckBoxMenuItem( SHOW_OVERVIEW_LABEL ) ); + _options_jmenu.add( _show_scale_cbmi = new JCheckBoxMenuItem( DISPLAY_SCALE_LABEL ) ); + _options_jmenu + .add( _show_branch_length_values_cbmi = new JCheckBoxMenuItem( DISPLAY_BRANCH_LENGTH_VALUES_LABEL ) ); + _options_jmenu.add( _show_confidence_stddev_cbmi = new JCheckBoxMenuItem( SHOW_CONF_STDDEV_LABEL ) ); _options_jmenu.add( _show_default_node_shapes_cbmi = new JCheckBoxMenuItem( DISPLAY_NODE_BOXES_LABEL ) ); _options_jmenu .add( _taxonomy_colorize_node_shapes_cbmi = new JCheckBoxMenuItem( MainFrame.TAXONOMY_COLORIZE_NODE_SHAPES_LABEL ) ); _options_jmenu.add( _cycle_node_shape_mi = new JMenuItem( MainFrame.CYCLE_NODE_SHAPE_LABEL ) ); _options_jmenu.add( _cycle_node_fill_mi = new JMenuItem( MainFrame.CYCLE_NODE_FILL_LABEL ) ); _options_jmenu.add( _choose_node_size_mi = new JMenuItem( MainFrame.CHOOSE_NODE_SIZE_LABEL ) ); - _options_jmenu.add( _show_scale_cbmi = new JCheckBoxMenuItem( DISPLAY_SCALE_LABEL ) ); - _options_jmenu - .add( _show_branch_length_values_cbmi = new JCheckBoxMenuItem( DISPLAY_BRANCH_LENGTH_VALUES_LABEL ) ); - _options_jmenu.add( _show_overview_cbmi = new JCheckBoxMenuItem( SHOW_OVERVIEW_LABEL ) ); _options_jmenu.add( _label_direction_cbmi = new JCheckBoxMenuItem( LABEL_DIRECTION_LABEL ) ); _label_direction_cbmi.setToolTipText( LABEL_DIRECTION_TIP ); _options_jmenu.add( _color_labels_same_as_parent_branch = new JCheckBoxMenuItem( COLOR_LABELS_LABEL ) ); @@ -781,13 +839,19 @@ public final class MainFrameApplication extends MainFrame { _options_jmenu.add( _print_size_mi = new JMenuItem( "" ) ); _options_jmenu.add( _choose_pdf_width_mi = new JMenuItem( "" ) ); _options_jmenu.addSeparator(); + _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/NHX/Nexus Input:" ), getConfiguration() ) ); _options_jmenu - .add( customizeMenuItemAsLabel( new JMenuItem( "Newick/NHX/Nexus Parsing:" ), getConfiguration() ) ); - _options_jmenu - .add( _internal_number_are_confidence_for_nh_parsing_cbmi = new JCheckBoxMenuItem( "Internal Numbers Are Confidence Values" ) ); + .add( _internal_number_are_confidence_for_nh_parsing_cbmi = new JCheckBoxMenuItem( "Internal Node Names are Confidence Values" ) ); _options_jmenu.add( _replace_underscores_cbmi = new JCheckBoxMenuItem( "Replace Underscores with Spaces" ) ); _options_jmenu .add( _extract_pfam_style_tax_codes_cbmi = new JCheckBoxMenuItem( "Extract Taxonomy Codes from Pfam-style Labels" ) ); + _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/Nexus Output:" ), getConfiguration() ) ); + _options_jmenu + .add( _use_brackets_for_conf_in_nh_export_cbmi = new JCheckBoxMenuItem( USE_BRACKETS_FOR_CONF_IN_NH_LABEL ) ); + _use_brackets_for_conf_in_nh_export_cbmi + .setToolTipText( "e.g. \"0.1[90]\" for a branch with support 90 and a length of 0.1" ); + _options_jmenu + .add( _use_internal_names_for_conf_in_nh_export_cbmi = new JCheckBoxMenuItem( USE_INTERNAL_NAMES_FOR_CONF_IN_NH_LABEL ) ); customizeJMenuItem( _choose_font_mi ); customizeJMenuItem( _choose_minimal_confidence_mi ); customizeJMenuItem( _switch_colors_mi ); @@ -829,6 +893,11 @@ public final class MainFrameApplication extends MainFrame { customizeCheckBoxMenuItem( _print_using_actual_size_cbmi, getOptions().isPrintUsingActualSize() ); customizeCheckBoxMenuItem( _graphics_export_using_actual_size_cbmi, getOptions() .isGraphicsExportUsingActualSize() ); + customizeCheckBoxMenuItem( _show_confidence_stddev_cbmi, getOptions().isShowConfidenceStddev() ); + customizeCheckBoxMenuItem( _use_brackets_for_conf_in_nh_export_cbmi, getOptions() + .getNhConversionSupportValueStyle() == NH_CONVERSION_SUPPORT_VALUE_STYLE.IN_SQUARE_BRACKETS ); + customizeCheckBoxMenuItem( _use_internal_names_for_conf_in_nh_export_cbmi, getOptions() + .getNhConversionSupportValueStyle() == NH_CONVERSION_SUPPORT_VALUE_STYLE.AS_INTERNAL_NODE_NAMES ); _jmenubar.add( _options_jmenu ); } @@ -851,10 +920,10 @@ public final class MainFrameApplication extends MainFrame { _tools_menu.add( _collapse_species_specific_subtrees = new JMenuItem( "Collapse Species-Specific Subtrees" ) ); customizeJMenuItem( _collapse_species_specific_subtrees ); _tools_menu - .add( _collapse_below_threshold = new JMenuItem( "Collapse Branches with Confidence Below Threshold" ) ); + .add( _collapse_below_threshold = new JMenuItem( "Collapse Branches with Confidence Below Threshold into Multifurcations" ) ); customizeJMenuItem( _collapse_below_threshold ); _collapse_below_threshold - .setToolTipText( "To permanently collapse branches without at least one support value above a given threshold" ); + .setToolTipText( "To collapse branches with confidence values below a threshold into multifurcations (in the case of multiple confidences per branch: without at least one confidence value above a threshold)" ); _tools_menu.addSeparator(); _tools_menu .add( _move_node_names_to_tax_sn_jmi = new JMenuItem( "Transfer Node Names to Taxonomic Scientific Names" ) ); @@ -874,7 +943,7 @@ public final class MainFrameApplication extends MainFrame { customizeJMenuItem( _infer_common_sn_names_item ); _tools_menu.addSeparator(); _tools_menu - .add( _obtain_detailed_taxonomic_information_jmi = new JMenuItem( "Obtain Detailed Taxonomic Information" ) ); + .add( _obtain_detailed_taxonomic_information_jmi = new JMenuItem( OBTAIN_DETAILED_TAXONOMIC_INFORMATION ) ); customizeJMenuItem( _obtain_detailed_taxonomic_information_jmi ); _obtain_detailed_taxonomic_information_jmi .setToolTipText( "To add additional taxonomic information (from UniProt Taxonomy)" ); @@ -1044,8 +1113,14 @@ public final class MainFrameApplication extends MainFrame { phy.hashIDs(); phy.recalculateNumberOfExternalDescendants( true ); getCurrentTreePanel().resetNodeIdToDistToLeafMap(); + getCurrentTreePanel().updateSetOfCollapsedExternalNodes(); + getCurrentTreePanel().calculateLongestExtNodeInfo(); + getCurrentTreePanel().setNodeInPreorderToNull(); + getCurrentTreePanel().recalculateMaxDistanceToRoot(); + getCurrentTreePanel().resetPreferredSize(); getCurrentTreePanel().setEdited( true ); getCurrentTreePanel().repaint(); + repaint(); } if ( to_be_removed.size() > 0 ) { JOptionPane.showMessageDialog( this, "Collapsed " + to_be_removed.size() @@ -1292,6 +1367,13 @@ public final class MainFrameApplication extends MainFrame { System.exit( 0 ); } + public void end() { + _mainpanel.terminate(); + _contentpane.removeAll(); + setVisible( false ); + dispose(); + } + private void extractTaxCodeFromNodeNames() { if ( getCurrentTreePanel() != null ) { final Phylogeny phy = getCurrentTreePanel().getPhylogeny(); @@ -1301,9 +1383,8 @@ public final class MainFrameApplication extends MainFrame { final PhylogenyNode n = it.next(); final String name = n.getName().trim(); if ( !ForesterUtil.isEmpty( name ) ) { - final String code = ForesterUtil.extractTaxonomyCodeFromNodeName( name, - false, - TAXONOMY_EXTRACTION.YES ); + final String code = ParserUtils + .extractTaxonomyCodeFromNodeName( name, false, PhylogenyMethods.TAXONOMY_EXTRACTION.YES ); if ( !ForesterUtil.isEmpty( code ) ) { PhylogenyMethods.setTaxonomyCode( n, code ); } @@ -1392,7 +1473,7 @@ public final class MainFrameApplication extends MainFrame { if ( getCurrentTreePanel() != null ) { final Phylogeny phy = getCurrentTreePanel().getPhylogeny(); if ( ( phy != null ) && !phy.isEmpty() ) { - ForesterUtil.transferNodeNameToField( phy, PhylogenyNodeField.SEQUENCE_NAME ); + PhylogenyMethods.transferNodeNameToField( phy, PhylogenyMethods.PhylogenyNodeField.SEQUENCE_NAME ); } } } @@ -1401,7 +1482,8 @@ public final class MainFrameApplication extends MainFrame { if ( getCurrentTreePanel() != null ) { final Phylogeny phy = getCurrentTreePanel().getPhylogeny(); if ( ( phy != null ) && !phy.isEmpty() ) { - ForesterUtil.transferNodeNameToField( phy, PhylogenyNodeField.TAXONOMY_SCIENTIFIC_NAME ); + PhylogenyMethods.transferNodeNameToField( phy, + PhylogenyMethods.PhylogenyNodeField.TAXONOMY_SCIENTIFIC_NAME ); } } } @@ -1413,7 +1495,7 @@ public final class MainFrameApplication extends MainFrame { phy.setRoot( node ); phy.setRooted( true ); phys[ 0 ] = phy; - Util.addPhylogeniesToTabs( phys, "", "", getConfiguration(), getMainPanel() ); + AptxUtil.addPhylogeniesToTabs( phys, "", "", getConfiguration(), getMainPanel() ); _mainpanel.getControlPanel().showWhole(); _mainpanel.getCurrentTreePanel().setPhylogenyGraphicsType( PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR ); _mainpanel.getOptions().setPhylogenyGraphicsType( PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR ); @@ -1687,7 +1769,7 @@ public final class MainFrameApplication extends MainFrame { try { final NHXParser nhx = new NHXParser(); setSpecialOptionsForNhxParser( nhx ); - phys = ForesterUtil.readPhylogenies( nhx, file ); + phys = PhylogenyMethods.readPhylogenies( nhx, file ); nhx_or_nexus = true; } catch ( final Exception e ) { @@ -1699,7 +1781,7 @@ public final class MainFrameApplication extends MainFrame { warnIfNotPhyloXmlValidation( getConfiguration() ); try { final PhyloXmlParser xml_parser = createPhyloXmlParser(); - phys = ForesterUtil.readPhylogenies( xml_parser, file ); + phys = PhylogenyMethods.readPhylogenies( xml_parser, file ); } catch ( final Exception e ) { exception = true; @@ -1708,7 +1790,7 @@ public final class MainFrameApplication extends MainFrame { } else if ( _open_filechooser.getFileFilter() == MainFrameApplication.tolfilter ) { try { - phys = ForesterUtil.readPhylogenies( new TolParser(), file ); + phys = PhylogenyMethods.readPhylogenies( new TolParser(), file ); } catch ( final Exception e ) { exception = true; @@ -1719,7 +1801,7 @@ public final class MainFrameApplication extends MainFrame { try { final NexusPhylogeniesParser nex = new NexusPhylogeniesParser(); setSpecialOptionsForNexParser( nex ); - phys = ForesterUtil.readPhylogenies( nex, file ); + phys = PhylogenyMethods.readPhylogenies( nex, file ); nhx_or_nexus = true; } catch ( final Exception e ) { @@ -1730,7 +1812,7 @@ public final class MainFrameApplication extends MainFrame { // "*.*": else { try { - final PhylogenyParser parser = ForesterUtil + final PhylogenyParser parser = ParserUtils .createParserDependingOnFileType( file, getConfiguration() .isValidatePhyloXmlAgainstSchema() ); if ( parser instanceof NexusPhylogeniesParser ) { @@ -1746,7 +1828,7 @@ public final class MainFrameApplication extends MainFrame { else if ( parser instanceof PhyloXmlParser ) { warnIfNotPhyloXmlValidation( getConfiguration() ); } - phys = ForesterUtil.readPhylogenies( parser, file ); + phys = PhylogenyMethods.readPhylogenies( parser, file ); } catch ( final Exception e ) { exception = true; @@ -1764,7 +1846,7 @@ public final class MainFrameApplication extends MainFrame { if ( nhx_or_nexus ) { for( final Phylogeny phy : phys ) { if ( getOptions().isInternalNumberAreConfidenceForNhParsing() ) { - ForesterUtil.transferInternalNodeNamesToConfidence( phy ); + PhylogenyMethods.transferInternalNodeNamesToConfidence( phy ); } if ( PhylogenyMethods.getMinimumDescendentsPerInternalNodes( phy ) == 1 ) { one_desc = true; @@ -1772,11 +1854,11 @@ public final class MainFrameApplication extends MainFrame { } } } - Util.addPhylogeniesToTabs( phys, - file.getName(), - file.getAbsolutePath(), - getConfiguration(), - getMainPanel() ); + AptxUtil.addPhylogeniesToTabs( phys, + file.getName(), + file.getAbsolutePath(), + getConfiguration(), + getMainPanel() ); _mainpanel.getControlPanel().showWhole(); if ( nhx_or_nexus && one_desc ) { JOptionPane @@ -2025,7 +2107,7 @@ public final class MainFrameApplication extends MainFrame { parser = new TolParser(); } else { - parser = ForesterUtil.createParserDependingOnUrlContents( url, getConfiguration() + parser = ParserUtils.createParserDependingOnUrlContents( url, getConfiguration() .isValidatePhyloXmlAgainstSchema() ); } if ( parser instanceof NexusPhylogeniesParser ) { @@ -2073,14 +2155,14 @@ public final class MainFrameApplication extends MainFrame { if ( ( phys != null ) && ( phys.length > 0 ) ) { if ( nhx_or_nexus && getOptions().isInternalNumberAreConfidenceForNhParsing() ) { for( final Phylogeny phy : phys ) { - ForesterUtil.transferInternalNodeNamesToConfidence( phy ); + PhylogenyMethods.transferInternalNodeNamesToConfidence( phy ); } } - Util.addPhylogeniesToTabs( phys, - new File( url.getFile() ).getName(), - new File( url.getFile() ).toString(), - getConfiguration(), - getMainPanel() ); + AptxUtil.addPhylogeniesToTabs( phys, + new File( url.getFile() ).getName(), + new File( url.getFile() ).toString(), + getConfiguration(), + getMainPanel() ); _mainpanel.getControlPanel().showWhole(); } } @@ -2101,7 +2183,7 @@ public final class MainFrameApplication extends MainFrame { if ( ( file != null ) && ( result == JFileChooser.APPROVE_OPTION ) ) { if ( _open_filechooser_for_species_tree.getFileFilter() == MainFrameApplication.xmlfilter ) { try { - final Phylogeny[] trees = ForesterUtil.readPhylogenies( new PhyloXmlParser(), file ); + final Phylogeny[] trees = PhylogenyMethods.readPhylogenies( new PhyloXmlParser(), file ); t = trees[ 0 ]; } catch ( final Exception e ) { @@ -2111,7 +2193,7 @@ public final class MainFrameApplication extends MainFrame { } else if ( _open_filechooser_for_species_tree.getFileFilter() == MainFrameApplication.tolfilter ) { try { - final Phylogeny[] trees = ForesterUtil.readPhylogenies( new TolParser(), file ); + final Phylogeny[] trees = PhylogenyMethods.readPhylogenies( new TolParser(), file ); t = trees[ 0 ]; } catch ( final Exception e ) { @@ -2122,7 +2204,7 @@ public final class MainFrameApplication extends MainFrame { // "*.*": else { try { - final Phylogeny[] trees = ForesterUtil.readPhylogenies( new PhyloXmlParser(), file ); + final Phylogeny[] trees = PhylogenyMethods.readPhylogenies( new PhyloXmlParser(), file ); t = trees[ 0 ]; } catch ( final Exception e ) { @@ -2196,9 +2278,9 @@ public final class MainFrameApplication extends MainFrame { private void setSpecialOptionsForNhxParser( final NHXParser nhx ) { nhx.setReplaceUnderscores( getOptions().isReplaceUnderscoresInNhParsing() ); - ForesterUtil.TAXONOMY_EXTRACTION te = ForesterUtil.TAXONOMY_EXTRACTION.NO; + PhylogenyMethods.TAXONOMY_EXTRACTION te = PhylogenyMethods.TAXONOMY_EXTRACTION.NO; if ( getOptions().isExtractPfamTaxonomyCodesInNhParsing() ) { - te = ForesterUtil.TAXONOMY_EXTRACTION.YES; + te = PhylogenyMethods.TAXONOMY_EXTRACTION.YES; } nhx.setTaxonomyExtraction( te ); } @@ -2259,7 +2341,7 @@ public final class MainFrameApplication extends MainFrame { private boolean writeAsNewHampshire( final Phylogeny t, boolean exception, final File file ) { try { final PhylogenyWriter writer = new PhylogenyWriter(); - writer.toNewHampshire( t, false, true, file ); + writer.toNewHampshire( t, false, true, getOptions().getNhConversionSupportValueStyle(), file ); } catch ( final Exception e ) { exception = true; @@ -2271,7 +2353,7 @@ public final class MainFrameApplication extends MainFrame { private boolean writeAsNexus( final Phylogeny t, boolean exception, final File file ) { try { final PhylogenyWriter writer = new PhylogenyWriter(); - writer.toNexus( file, t ); + writer.toNexus( file, t, getOptions().getNhConversionSupportValueStyle() ); } catch ( final Exception e ) { exception = true; @@ -2304,20 +2386,20 @@ public final class MainFrameApplication extends MainFrame { return exception; } - private void writePhylogenyToGraphicsFile( final String file_name, final GraphicsExportType type ) { + void writePhylogenyToGraphicsFile( final String file_name, final GraphicsExportType type ) { _mainpanel.getCurrentTreePanel().setParametersForPainting( _mainpanel.getCurrentTreePanel().getWidth(), _mainpanel.getCurrentTreePanel().getHeight(), true ); String file_written_to = ""; boolean error = false; try { - file_written_to = Util.writePhylogenyToGraphicsFile( file_name, - _mainpanel.getCurrentTreePanel().getWidth(), - _mainpanel.getCurrentTreePanel().getHeight(), - _mainpanel.getCurrentTreePanel(), - _mainpanel.getControlPanel(), - type, - getOptions() ); + file_written_to = AptxUtil.writePhylogenyToGraphicsFile( file_name, + _mainpanel.getCurrentTreePanel().getWidth(), + _mainpanel.getCurrentTreePanel().getHeight(), + _mainpanel.getCurrentTreePanel(), + _mainpanel.getControlPanel(), + type, + getOptions() ); } catch ( final IOException e ) { error = true; @@ -2529,10 +2611,21 @@ public final class MainFrameApplication extends MainFrame { return new MainFrameApplication( phys, config, title ); } + public static MainFrameApplication createInstance( final Phylogeny[] phys, final Configuration config ) { + return new MainFrameApplication( phys, config ); + } + static MainFrame createInstance( final Phylogeny[] phys, final String config_file_name, final String title ) { return new MainFrameApplication( phys, config_file_name, title ); } + public static MainFrame createInstance( final Phylogeny[] phys, + final Configuration config, + final String title, + final File current_dir ) { + return new MainFrameApplication( phys, config, title, current_dir ); + } + static void setTextForGraphicsSizeChooserMenuItem( final JMenuItem mi, final Options o ) { mi.setText( "Enter Default Size for Graphics Export... (current: " + o.getPrintSizeX() + ", " + o.getPrintSizeY() + ")" );