X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FArchaeopteryxE.java;h=e5bb03f8a6819c15cde4d5769d5790d4fe3f646e;hb=7359853f540f8d2704930c90e0ea9b6969bde51b;hp=eaf7536dbf02ee73c90a666b877e55ad2902d50d;hpb=733f051a048f64b6850314a08880f1f77a633db8;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/ArchaeopteryxE.java b/forester/java/src/org/forester/archaeopteryx/ArchaeopteryxE.java index eaf7536..e5bb03f 100644 --- a/forester/java/src/org/forester/archaeopteryx/ArchaeopteryxE.java +++ b/forester/java/src/org/forester/archaeopteryx/ArchaeopteryxE.java @@ -36,6 +36,7 @@ import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE; import org.forester.io.parsers.nhx.NHXParser.TAXONOMY_EXTRACTION; import org.forester.phylogeny.Phylogeny; import org.forester.phylogeny.PhylogenyMethods; +import org.forester.phylogeny.PhylogenyMethods.DESCENDANT_SORT_PRIORITY; import org.forester.phylogeny.data.SequenceRelation; import org.forester.sdi.GSDI; import org.forester.sdi.GSDIR; @@ -96,10 +97,12 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { private JMenuItem _aptx_ref_item; private JMenuItem _remove_branch_color_item; private JCheckBoxMenuItem _show_domain_labels; + private JCheckBoxMenuItem _show_annotation_ref_source; private JCheckBoxMenuItem _color_labels_same_as_parent_branch; private JCheckBoxMenuItem _abbreviate_scientific_names; private JCheckBoxMenuItem _screen_antialias_cbmi; private JCheckBoxMenuItem _background_gradient_cbmi; + private JCheckBoxMenuItem _color_by_taxonomic_group_cbmi; private JRadioButtonMenuItem _non_lined_up_cladograms_rbmi; private JRadioButtonMenuItem _uniform_cladograms_rbmi; private JRadioButtonMenuItem _ext_node_dependent_cladogram_rbmi; @@ -122,7 +125,6 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { private JMenuItem _cycle_node_shape_mi; private JMenuItem _cycle_node_fill_mi; private JMenuItem _choose_node_size_mi; - private JCheckBoxMenuItem _taxonomy_colorize_node_shapes_cbmi; private JCheckBoxMenuItem _show_confidence_stddev_cbmi; private final LinkedList _textframes = new LinkedList(); private JMenu _analysis_menu; @@ -239,15 +241,18 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { } else if ( o == _search_case_senstive_cbmi ) { updateOptions( getOptions() ); - getMainPanel().getControlPanel().search(); + getMainPanel().getControlPanel().search0(); + getMainPanel().getControlPanel().search1(); } else if ( o == _search_whole_words_only_cbmi ) { updateOptions( getOptions() ); - getMainPanel().getControlPanel().search(); + getMainPanel().getControlPanel().search0(); + getMainPanel().getControlPanel().search1(); } else if ( o == _inverse_search_result_cbmi ) { updateOptions( getOptions() ); - getMainPanel().getControlPanel().search(); + getMainPanel().getControlPanel().search0(); + getMainPanel().getControlPanel().search1(); } else if ( o == _show_scale_cbmi ) { updateOptions( getOptions() ); @@ -261,6 +266,9 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { else if ( o == _label_direction_cbmi ) { updateOptions( getOptions() ); } + else if ( o == _abbreviate_scientific_names ) { + updateOptions( getOptions() ); + } else if ( o == _show_overview_cbmi ) { updateOptions( getOptions() ); if ( getCurrentTreePanel() != null ) { @@ -291,9 +299,6 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { else if ( o == _show_default_node_shapes_external_cbmi ) { updateOptions( getOptions() ); } - else if ( o == _taxonomy_colorize_node_shapes_cbmi ) { - updateOptions( getOptions() ); - } else if ( o == _about_item ) { MainFrame.about(); } @@ -332,6 +337,9 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { ForesterUtil.printErrorMessage( Constants.PRG_NAME, e1.toString() ); } } + else if ( o == _color_by_taxonomic_group_cbmi ) { + updateOptions( getOptions() ); + } repaint(); } @@ -438,45 +446,65 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { setConfiguration( configuration ); setOptions( Options.createInstance( configuration ) ); setupUI(); - URL phys_url = null; - Phylogeny[] phys = null; final String tree_url_str = getParameter( Constants.APPLET_PARAM_NAME_FOR_URL_OF_TREE_TO_LOAD ); + if ( ForesterUtil.isEmpty( tree_url_str ) ) { + ForesterUtil.printErrorMessage( NAME, "could not get tree URL from " + + Constants.APPLET_PARAM_NAME_FOR_URL_OF_TREE_TO_LOAD ); + JOptionPane.showMessageDialog( this, NAME + ": could not get tree URL from " + + Constants.APPLET_PARAM_NAME_FOR_URL_OF_TREE_TO_LOAD, "Failed get URL", JOptionPane.ERROR_MESSAGE ); + return; + } AptxUtil.printAppletMessage( NAME, "URL for phylogenies is " + tree_url_str ); // Get URL to tree file - if ( tree_url_str != null ) { - try { - phys_url = new URL( tree_url_str ); - } - catch ( final Exception e ) { - ForesterUtil.printErrorMessage( NAME, "error: " + e ); - e.printStackTrace(); - JOptionPane.showMessageDialog( this, NAME + ": Could not create URL from: \"" + tree_url_str - + "\"\nException: " + e, "Failed to create URL", JOptionPane.ERROR_MESSAGE ); - } + URL phys_url = null; + try { + phys_url = new URL( tree_url_str ); + } + catch ( final Exception e ) { + ForesterUtil.printErrorMessage( NAME, "error: " + e ); + e.printStackTrace(); + JOptionPane.showMessageDialog( this, NAME + ": Could not create URL from: \"" + tree_url_str + + "\"\nException: " + e, "Failed to create URL", JOptionPane.ERROR_MESSAGE ); + } + if ( phys_url == null ) { + ForesterUtil.printErrorMessage( NAME, "failed to get tree URL from " + + Constants.APPLET_PARAM_NAME_FOR_URL_OF_TREE_TO_LOAD ); + JOptionPane.showMessageDialog( this, + NAME + ": Could not create URL from: \"" + tree_url_str, + "Failed to create URL", + JOptionPane.ERROR_MESSAGE ); + return; } // Load the tree from URL - if ( phys_url != null ) { - try { - phys = AptxUtil.readPhylogeniesFromUrl( phys_url, - getConfiguration().isValidatePhyloXmlAgainstSchema(), - getConfiguration().isReplaceUnderscoresInNhParsing(), - getConfiguration().isInternalNumberAreConfidenceForNhParsing(), - getConfiguration().getTaxonomyExtraction(), - getConfiguration().isMidpointReroot() ); - } - catch ( final Exception e ) { - ForesterUtil.printErrorMessage( NAME, e.toString() ); - e.printStackTrace(); - JOptionPane.showMessageDialog( this, - NAME + ": Failed to read phylogenies: " + "\nException: " + e, - "Failed to read phylogenies", - JOptionPane.ERROR_MESSAGE ); - } + Phylogeny[] phys = null; + try { + phys = AptxUtil.readPhylogeniesFromUrl( phys_url, + getConfiguration().isValidatePhyloXmlAgainstSchema(), + getConfiguration().isReplaceUnderscoresInNhParsing(), + getConfiguration().isInternalNumberAreConfidenceForNhParsing(), + getConfiguration().getTaxonomyExtraction(), + getConfiguration().isMidpointReroot() ); + } + catch ( final Exception e ) { + ForesterUtil.printErrorMessage( NAME, e.toString() ); + e.printStackTrace(); + JOptionPane.showMessageDialog( this, + NAME + ": Failed to read phylogenies: " + "\nException: " + e, + "Failed to read phylogenies", + JOptionPane.ERROR_MESSAGE ); + } + if ( phys == null ) { + ForesterUtil.printErrorMessage( NAME, "phylogenies from [" + phys_url + "] are null" ); + JOptionPane.showMessageDialog( this, + NAME + ": phylogenies from [" + phys_url + "] are null", + "Failed to read phylogenies", + JOptionPane.ERROR_MESSAGE ); + return; } - if ( ( phys == null ) || ( phys.length < 1 ) ) { - ForesterUtil.printErrorMessage( NAME, "phylogenies from [" + phys_url + "] are null or empty" ); + else if ( phys.length < 1 ) { + ForesterUtil.printErrorMessage( NAME, "phylogenies from [" + phys_url + "] are empty" ); JOptionPane.showMessageDialog( this, - NAME + ": phylogenies from [" + phys_url + "] are null or empty", + NAME + ": phylogenies from [" + phys_url + "] are empty", "Failed to read phylogenies", JOptionPane.ERROR_MESSAGE ); return; @@ -576,8 +604,6 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { setName( NAME ); getMainPanel().getControlPanel().showWholeAll(); getMainPanel().getControlPanel().showWhole(); - System.gc(); - AptxUtil.printAppletMessage( NAME, "successfully initialized" ); /* GUILHEM_BEG */ getCurrentTreePanel().getControlPanel().getSequenceRelationTypeBox().removeAllItems(); for( final SequenceRelation.SEQUENCE_RELATION_TYPE type : getMainPanel().getCurrentPhylogeny() @@ -593,6 +619,8 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { getCurrentTreePanel().getControlPanel().getSequenceRelationBox().setSelectedItem( default_sequence ); } /* GUILHEM_END */ + System.gc(); + AptxUtil.printAppletMessage( NAME, "successfully initialized" ); setVisible( true ); } @@ -695,35 +723,38 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { _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( MainFrame.SHOW_OVERVIEW_LABEL ) ); _options_jmenu.add( _show_scale_cbmi = new JCheckBoxMenuItem( MainFrame.DISPLAY_SCALE_LABEL ) ); _options_jmenu .add( _show_branch_length_values_cbmi = new JCheckBoxMenuItem( MainFrame.DISPLAY_BRANCH_LENGTH_VALUES_LABEL ) ); - _options_jmenu.add( _show_confidence_stddev_cbmi = new JCheckBoxMenuItem( MainFrame.SHOW_CONF_STDDEV_LABEL ) ); _options_jmenu .add( _show_default_node_shapes_internal_cbmi = new JCheckBoxMenuItem( MainFrame.DISPLAY_NODE_BOXES_LABEL_INT ) ); _options_jmenu .add( _show_default_node_shapes_external_cbmi = new JCheckBoxMenuItem( MainFrame.DISPLAY_NODE_BOXES_LABEL_EXT ) ); + if ( getConfiguration().doDisplayOption( Configuration.show_domain_architectures ) ) { + _options_jmenu.add( _show_domain_labels = new JCheckBoxMenuItem( MainFrame.SHOW_DOMAIN_LABELS_LABEL ) ); + } + _options_jmenu.add( _show_annotation_ref_source = new JCheckBoxMenuItem( MainFrame.SHOW_ANN_REF_SOURCE_LABEL ) ); + _options_jmenu.add( _show_confidence_stddev_cbmi = new JCheckBoxMenuItem( MainFrame.SHOW_CONF_STDDEV_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( _label_direction_cbmi = new JCheckBoxMenuItem( MainFrame.LABEL_DIRECTION_LABEL ) ); + .add( _color_by_taxonomic_group_cbmi = new JCheckBoxMenuItem( MainFrame.COLOR_BY_TAXONOMIC_GROUP ) ); _options_jmenu .add( _color_labels_same_as_parent_branch = new JCheckBoxMenuItem( MainFrame.COLOR_LABELS_LABEL ) ); _color_labels_same_as_parent_branch.setToolTipText( MainFrame.COLOR_LABELS_TIP ); _options_jmenu.add( _abbreviate_scientific_names = new JCheckBoxMenuItem( MainFrame.ABBREV_SN_LABEL ) ); + _options_jmenu.add( _label_direction_cbmi = new JCheckBoxMenuItem( MainFrame.LABEL_DIRECTION_LABEL ) ); _label_direction_cbmi.setToolTipText( MainFrame.LABEL_DIRECTION_TIP ); _options_jmenu.add( _screen_antialias_cbmi = new JCheckBoxMenuItem( MainFrame.SCREEN_ANTIALIAS_LABEL ) ); _options_jmenu.add( _background_gradient_cbmi = new JCheckBoxMenuItem( MainFrame.BG_GRAD_LABEL ) ); - if ( getConfiguration().doDisplayOption( Configuration.show_domain_architectures ) ) { - _options_jmenu.add( _show_domain_labels = new JCheckBoxMenuItem( MainFrame.SHOW_DOMAIN_LABELS_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( _choose_minimal_confidence_mi = new JMenuItem( "" ) ); _options_jmenu.add( _overview_placment_mi = new JMenuItem( "" ) ); _options_jmenu.add( _switch_colors_mi = new JMenuItem( "" ) ); _options_jmenu.add( _choose_font_mi = new JMenuItem( "" ) ); + ///// _options_jmenu.addSeparator(); _options_jmenu.add( MainFrame.customizeMenuItemAsLabel( new JMenuItem( MainFrame.SEARCH_SUBHEADER ), getConfiguration() ) ); @@ -736,17 +767,18 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { customizeJMenuItem( _choose_minimal_confidence_mi ); customizeJMenuItem( _switch_colors_mi ); customizeJMenuItem( _overview_placment_mi ); + customizeCheckBoxMenuItem( _color_by_taxonomic_group_cbmi, getOptions().isColorByTaxonomicGroup() ); customizeCheckBoxMenuItem( _label_direction_cbmi, getOptions().getNodeLabelDirection() == NODE_LABEL_DIRECTION.RADIAL ); customizeCheckBoxMenuItem( _screen_antialias_cbmi, getOptions().isAntialiasScreen() ); customizeCheckBoxMenuItem( _background_gradient_cbmi, getOptions().isBackgroundColorGradient() ); customizeCheckBoxMenuItem( _show_domain_labels, getOptions().isShowDomainLabels() ); + customizeCheckBoxMenuItem( _show_annotation_ref_source, getOptions().isShowAnnotationRefSource() ); customizeCheckBoxMenuItem( _abbreviate_scientific_names, getOptions().isAbbreviateScientificTaxonNames() ); customizeCheckBoxMenuItem( _show_default_node_shapes_external_cbmi, getOptions() .isShowDefaultNodeShapesExternal() ); customizeCheckBoxMenuItem( _show_default_node_shapes_internal_cbmi, getOptions() .isShowDefaultNodeShapesInternal() ); - customizeCheckBoxMenuItem( _taxonomy_colorize_node_shapes_cbmi, getOptions().isTaxonomyColorizeNodeShapes() ); customizeJMenuItem( _cycle_node_shape_mi ); customizeJMenuItem( _cycle_node_fill_mi ); customizeJMenuItem( _choose_node_size_mi ); @@ -811,11 +843,12 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { void buildViewMenu() { _view_jmenu = MainFrame.createMenu( "View", getConfiguration() ); - _view_jmenu.add( _display_basic_information_item = new JMenuItem( "Display Basic Information" ) ); + _view_jmenu + .add( _display_basic_information_item = new JMenuItem( MainFrame.SHOW_BASIC_TREE_INFORMATION_LABEL ) ); _view_jmenu.addSeparator(); - _view_jmenu.add( _view_as_XML_item = new JMenuItem( "View as phyloXML" ) ); - _view_jmenu.add( _view_as_NH_item = new JMenuItem( "View as Newick" ) ); - _view_jmenu.add( _view_as_nexus_item = new JMenuItem( "View as Nexus" ) ); + _view_jmenu.add( _view_as_XML_item = new JMenuItem( "as phyloXML" ) ); + _view_jmenu.add( _view_as_NH_item = new JMenuItem( "as Newick" ) ); + _view_jmenu.add( _view_as_nexus_item = new JMenuItem( "as Nexus" ) ); customizeJMenuItem( _display_basic_information_item ); customizeJMenuItem( _view_as_NH_item ); customizeJMenuItem( _view_as_XML_item ); @@ -868,9 +901,9 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { if ( ( getMainPanel().getCurrentPhylogeny() != null ) && !getMainPanel().getCurrentPhylogeny().isEmpty() ) { String title = "Basic Information"; if ( !ForesterUtil.isEmpty( getMainPanel().getCurrentPhylogeny().getName() ) ) { - title = getMainPanel().getCurrentPhylogeny().getName() + " " + title; + title = title + " for \"" + _mainpanel.getCurrentPhylogeny().getName() + "\""; } - showTextFrame( AptxUtil.createBasicInformation( getMainPanel().getCurrentPhylogeny() ), title ); + showTextFrame( AptxUtil.createBasicInformation( getMainPanel().getCurrentPhylogeny(), null ), title ); } } @@ -891,7 +924,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { GSDI gsdi = null; final Phylogeny species_tree = _species_tree.copy(); try { - gsdi = new GSDI( gene_tree, species_tree, false, true, true ); + gsdi = new GSDI( gene_tree, species_tree, false, true, true, true ); } catch ( final SDIException e ) { JOptionPane.showMessageDialog( this, @@ -964,7 +997,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { GSDIR gsdir = null; final Phylogeny species_tree = _species_tree.copy(); try { - gsdir = new GSDIR( gene_tree, species_tree, true, true ); + gsdir = new GSDIR( gene_tree, species_tree, true, true, true ); } catch ( final SDIException e ) { JOptionPane.showMessageDialog( this, @@ -981,6 +1014,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { result_gene_tree.setRerootable( false ); result_gene_tree.clearHashIdToNodeMap(); result_gene_tree.recalculateNumberOfExternalDescendants( true ); + PhylogenyMethods.orderAppearance( result_gene_tree.getRoot(), true, true, DESCENDANT_SORT_PRIORITY.NODE_NAME ); _mainpanel.addPhylogenyInNewTab( result_gene_tree, getConfiguration(), "gene tree", null ); getMainPanel().getControlPanel().setShowEvents( true ); showWhole(); @@ -1274,6 +1308,8 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { options.setBackgroundColorGradient( ( _background_gradient_cbmi != null ) && _background_gradient_cbmi.isSelected() ); options.setShowDomainLabels( ( _show_domain_labels != null ) && _show_domain_labels.isSelected() ); + options.setShowAnnotationRefSource( ( _show_annotation_ref_source != null ) + && _show_annotation_ref_source.isSelected() ); options.setAbbreviateScientificTaxonNames( ( _abbreviate_scientific_names != null ) && _abbreviate_scientific_names.isSelected() ); options.setColorLabelsSameAsParentBranch( ( _color_labels_same_as_parent_branch != null ) @@ -1282,8 +1318,6 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { && _show_default_node_shapes_internal_cbmi.isSelected() ); options.setShowDefaultNodeShapesExternal( ( _show_default_node_shapes_external_cbmi != null ) && _show_default_node_shapes_external_cbmi.isSelected() ); - options.setTaxonomyColorizeNodeShapes( ( _taxonomy_colorize_node_shapes_cbmi != null ) - && _taxonomy_colorize_node_shapes_cbmi.isSelected() ); if ( ( _non_lined_up_cladograms_rbmi != null ) && ( _non_lined_up_cladograms_rbmi.isSelected() ) ) { options.setCladogramType( CLADOGRAM_TYPE.NON_LINED_UP ); } @@ -1340,6 +1374,9 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { else if ( ( _circular_type_cbmi != null ) && _circular_type_cbmi.isSelected() ) { options.setPhylogenyGraphicsType( PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ); } + if ( ( _color_by_taxonomic_group_cbmi != null ) && _color_by_taxonomic_group_cbmi.isEnabled() ) { + options.setColorByTaxonomicGroup( _color_by_taxonomic_group_cbmi.isSelected() ); + } } void updateTypeCheckboxes( final Options options, final Object o ) { @@ -1351,7 +1388,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { if ( ( getMainPanel().getCurrentPhylogeny() != null ) && !getMainPanel().getCurrentPhylogeny().isEmpty() ) { String title = "Nexus"; if ( !ForesterUtil.isEmpty( getMainPanel().getCurrentPhylogeny().getName() ) ) { - title = getMainPanel().getCurrentPhylogeny().getName() + " " + title; + title = "\"" + getMainPanel().getCurrentPhylogeny().getName() + "\" in " + title; } showTextFrame( getMainPanel().getCurrentPhylogeny().toNexus( getOptions() .getNhConversionSupportValueStyle() ), @@ -1363,7 +1400,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { if ( ( getMainPanel().getCurrentPhylogeny() != null ) && !getMainPanel().getCurrentPhylogeny().isEmpty() ) { String title = "New Hampshire"; if ( !ForesterUtil.isEmpty( getMainPanel().getCurrentPhylogeny().getName() ) ) { - title = getMainPanel().getCurrentPhylogeny().getName() + " " + title; + title = "\"" + getMainPanel().getCurrentPhylogeny().getName() + "\" in " + title; } showTextFrame( getMainPanel().getCurrentPhylogeny() .toNewHampshire( false, getOptions().getNhConversionSupportValueStyle() ), @@ -1375,7 +1412,7 @@ public class ArchaeopteryxE extends JApplet implements ActionListener { if ( ( getMainPanel().getCurrentPhylogeny() != null ) && !getMainPanel().getCurrentPhylogeny().isEmpty() ) { String title = "phyloXML"; if ( !ForesterUtil.isEmpty( getMainPanel().getCurrentPhylogeny().getName() ) ) { - title = getMainPanel().getCurrentPhylogeny().getName() + " " + title; + title = "\"" + getMainPanel().getCurrentPhylogeny().getName() + "\" in " + title; } showTextFrame( getMainPanel().getCurrentPhylogeny().toPhyloXML( 0 ), title ); }