+ private void doUpdateProcessMenu() {
+ if ( _process_pool.size() > 0 ) {
+ if ( _process_menu == null ) {
+ _process_menu = createMenu( "", getConfiguration() );
+ _process_menu.setForeground( Color.RED );
+ }
+ _process_menu.removeAll();
+ final String text = "Processes Running: " + _process_pool.size();
+ _process_menu.setText( text );
+ _jmenubar.add( _process_menu );
+ for( int i = 0; i < _process_pool.size(); ++i ) {
+ final ProcessRunning p = _process_pool.getProcessByIndex( i );
+ _process_menu.add( customizeJMenuItem( new JMenuItem( p.getName() + " [" + p.getStart() + "]" ) ) );
+ }
+ }
+ else {
+ if ( _process_menu != null ) {
+ _process_menu.removeAll();
+ _jmenubar.remove( _process_menu );
+ }
+ }
+ _jmenubar.validate();
+ _jmenubar.repaint();
+ repaint();
+ }
+
+ private String getPreviousNodeAnnotationReference() {
+ return _previous_node_annotation_ref;
+ }
+
+ private void removeBranchColors() {
+ if ( getMainPanel().getCurrentPhylogeny() != null ) {
+ AptxUtil.removeBranchColors( getMainPanel().getCurrentPhylogeny() );
+ }
+ }
+
+ private void removeVisualStyles() {
+ if ( getMainPanel().getCurrentPhylogeny() != null ) {
+ AptxUtil.removeVisualStyles( getMainPanel().getCurrentPhylogeny() );
+ }
+ }
+
+ private void setPreviousNodeAnnotationReference( final String previous_node_annotation_ref ) {
+ _previous_node_annotation_ref = previous_node_annotation_ref;
+ }
+
+ private void writeAllToFile() {
+ if ( ( getMainPanel().getTabbedPane() == null ) || ( getMainPanel().getTabbedPane().getTabCount() < 1 ) ) {
+ return;
+ }
+ final File my_dir = getCurrentDir();
+ if ( my_dir != null ) {
+ _save_filechooser.setCurrentDirectory( my_dir );
+ }
+ _save_filechooser.setSelectedFile( new File( "" ) );
+ final int result = _save_filechooser.showSaveDialog( _contentpane );
+ final File file = _save_filechooser.getSelectedFile();
+ setCurrentDir( _save_filechooser.getCurrentDirectory() );
+ if ( ( file != null ) && ( result == JFileChooser.APPROVE_OPTION ) ) {
+ if ( file.exists() ) {
+ final int i = JOptionPane.showConfirmDialog( getThisFrame(),
+ file + " already exists. Overwrite?",
+ "Warning",
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.WARNING_MESSAGE );
+ if ( i != JOptionPane.OK_OPTION ) {
+ return;
+ }
+ else {
+ try {
+ file.delete();
+ }
+ catch ( final Exception e ) {
+ JOptionPane.showMessageDialog( getThisFrame(),
+ "Failed to delete: " + file,
+ "Error",
+ JOptionPane.WARNING_MESSAGE );
+ }
+ }
+ }
+ final int count = getMainPanel().getTabbedPane().getTabCount();
+ final List<Phylogeny> trees = new ArrayList<Phylogeny>();
+ for( int i = 0; i < count; ++i ) {
+ final Phylogeny phy = getMainPanel().getPhylogeny( i );
+ if ( ForesterUtil.isEmpty( phy.getName() )
+ && !ForesterUtil.isEmpty( getMainPanel().getTabbedPane().getTitleAt( i ) ) ) {
+ phy.setName( getMainPanel().getTabbedPane().getTitleAt( i ) );
+ }
+ trees.add( phy );
+ getMainPanel().getTreePanels().get( i ).setEdited( false );
+ }
+ final PhylogenyWriter writer = new PhylogenyWriter();
+ try {
+ writer.toPhyloXML( file, trees, 0, ForesterUtil.LINE_SEPARATOR );
+ }
+ catch ( final IOException e ) {
+ JOptionPane.showMessageDialog( getThisFrame(),
+ "Failed to write to: " + file,
+ "Error",
+ JOptionPane.WARNING_MESSAGE );
+ }
+ }
+ }
+
+ public void activateSaveAllIfNeeded() {
+ if ( ( getMainPanel().getTabbedPane() != null ) && ( getMainPanel().getTabbedPane().getTabCount() > 1 ) ) {
+ _save_all_item.setEnabled( true );
+ }
+ else {
+ _save_all_item.setEnabled( false );
+ }
+ }
+
+ void buildFileMenu() {
+ _file_jmenu = MainFrame.createMenu( "File", getConfiguration() );
+ _file_jmenu.add( _save_item = new JMenuItem( "Save Tree As..." ) );
+ _file_jmenu.addSeparator();
+ _file_jmenu.add( _write_to_pdf_item = new JMenuItem( "Export to PDF file ..." ) );
+ 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 ( AptxUtil.canWriteFormat( "gif" ) ) {
+ _file_jmenu.add( _write_to_gif_item = new JMenuItem( "Export to GIF file..." ) );
+ }
+ if ( AptxUtil.canWriteFormat( "bmp" ) ) {
+ _file_jmenu.add( _write_to_bmp_item = new JMenuItem( "Export to BMP file..." ) );
+ }
+ _file_jmenu.addSeparator();
+ _file_jmenu.add( _print_item = new JMenuItem( "Print..." ) );
+ _file_jmenu.addSeparator();
+ _file_jmenu.add( _exit_item = new JMenuItem( "Exit" ) );
+ customizeJMenuItem( _save_item );
+ customizeJMenuItem( _write_to_pdf_item );
+ customizeJMenuItem( _write_to_png_item );
+ customizeJMenuItem( _write_to_jpg_item );
+ customizeJMenuItem( _write_to_gif_item );
+ customizeJMenuItem( _write_to_tif_item );
+ customizeJMenuItem( _write_to_bmp_item );
+ customizeJMenuItem( _print_item );
+ customizeJMenuItem( _exit_item );
+ _jmenubar.add( _file_jmenu );
+ }
+
+ void buildFontSizeMenu() {
+ _font_size_menu = createMenu( FONT_SIZE_MENU_LABEL, getConfiguration() );
+ _font_size_menu.add( _super_tiny_fonts_item = new JMenuItem( "Super Tiny Fonts" ) );
+ _font_size_menu.add( _tiny_fonts_item = new JMenuItem( "Tiny Fonts" ) );
+ _font_size_menu.add( _small_fonts_item = new JMenuItem( "Small Fonts" ) );
+ _font_size_menu.add( _medium_fonts_item = new JMenuItem( "Medium Fonts" ) );
+ _font_size_menu.add( _large_fonts_item = new JMenuItem( "Large Fonts" ) );
+ customizeJMenuItem( _super_tiny_fonts_item );
+ customizeJMenuItem( _tiny_fonts_item );
+ customizeJMenuItem( _small_fonts_item );
+ customizeJMenuItem( _medium_fonts_item );
+ customizeJMenuItem( _large_fonts_item );
+ _jmenubar.add( _font_size_menu );
+ }
+
+ void buildHelpMenu() {
+ _help_jmenu = createMenu( "Help", getConfiguration() );
+ _help_jmenu.add( _help_item = new JMenuItem( "Documentation" ) );
+ _help_jmenu.addSeparator();
+ _help_jmenu.add( _website_item = new JMenuItem( "Archaeopteryx Home" ) );
+ _help_jmenu.add( _aptxjs_website_item = new JMenuItem( "NEW! Archaeopteryx online version: Archaeopteryx.js" ) );
+ _help_jmenu.add( _mailing_list_item = new JMenuItem( "Mailing List" ) );
+ _aptx_ref_item = new JMenuItem( "Archaeopteryx Reference" ); //TODO need to add this...
+ _help_jmenu.add( _phyloxml_website_item = new JMenuItem( "phyloXML Home" ) );
+ _help_jmenu.add( _phyloxml_ref_item = new JMenuItem( "phyloXML Reference" ) );
+ _help_jmenu.addSeparator();
+ _help_jmenu.add( _about_item = new JMenuItem( "About" ) );
+ customizeJMenuItem( _help_item );
+ customizeJMenuItem( _website_item );
+ customizeJMenuItem( _aptxjs_website_item );
+ customizeJMenuItem( _mailing_list_item );