JAL-1953 equals and hashCode now takes node ID in account
[jalview.git] / forester / java / src / org / forester / archaeopteryx / MainFrame.java
index 74a8fff..0378d5b 100644 (file)
@@ -40,10 +40,10 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 
 import javax.swing.Box;
-import javax.swing.JApplet;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JFileChooser;
 import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
@@ -82,18 +82,18 @@ import org.forester.util.ForesterConstants;
 import org.forester.util.ForesterUtil;
 import org.forester.util.WindowsUtils;
 
-public abstract class MainFrame extends JFrame implements ActionListener {
-
-    final static NHFilter            nhfilter                                = new NHFilter();
-    final static NHXFilter           nhxfilter                               = new NHXFilter();
-    final static XMLFilter           xmlfilter                               = new XMLFilter();
-    final static TolFilter           tolfilter                               = new TolFilter();
-    final static NexusFilter         nexusfilter                             = new NexusFilter();
-    final static PdfFilter           pdffilter                               = new PdfFilter();
-    final static GraphicsFileFilter  graphicsfilefilter                      = new GraphicsFileFilter();
-    final static MsaFileFilter       msafilter                               = new MsaFileFilter();
-    final static SequencesFileFilter seqsfilter                              = new SequencesFileFilter();
-    final static DefaultFilter       defaultfilter                           = new DefaultFilter();
+public abstract class MainFrame extends JInternalFrame implements ActionListener {
+
+    public final static NHFilter            nhfilter                                = new NHFilter();
+    public final static NHXFilter           nhxfilter                               = new NHXFilter();
+    public final static XMLFilter           xmlfilter                               = new XMLFilter();
+    public final static TolFilter           tolfilter                               = new TolFilter();
+    public final static NexusFilter         nexusfilter                             = new NexusFilter();
+    public final static PdfFilter           pdffilter                               = new PdfFilter();
+    public final static GraphicsFileFilter  graphicsfilefilter                      = new GraphicsFileFilter();
+    public final static MsaFileFilter       msafilter                               = new MsaFileFilter();
+    public final static SequencesFileFilter seqsfilter                              = new SequencesFileFilter();
+    public final static DefaultFilter       defaultfilter                           = new DefaultFilter();
     static final String              USE_MOUSEWHEEL_SHIFT_TO_ROTATE          = "rotate with mousewheel + Shift (or A and S), D toggles between horizontal and radial labels";
     static final String              PHYLOXML_REF_TOOL_TIP                   = AptxConstants.PHYLOXML_REFERENCE;                                                                                                                                                //TODO //FIXME
     static final String              APTX_REF_TOOL_TIP                       = AptxConstants.APTX_REFERENCE;
@@ -177,6 +177,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
     JMenuItem                        _write_to_tif_item;
     JMenuItem                        _write_to_png_item;
     JMenuItem                        _write_to_bmp_item;
+    JMenuItem                        _write_to_eps_item;
     // tools menu:
     JMenuItem                        _midpoint_root_item;
     JMenuItem                        _taxcolor_item;
@@ -274,6 +275,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
     JMenuItem                        _about_item;
     JMenuItem                        _help_item;
     JMenuItem                        _website_item;
+    JMenuItem                        _aptxjs_website_item;
     JMenuItem                        _mailing_list_item;
     JMenuItem                        _phyloxml_website_item;
     JMenuItem                        _phyloxml_ref_item;
@@ -327,14 +329,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
     @Override
     public void actionPerformed( final ActionEvent e ) {
         final Object o = e.getSource();
-        boolean is_applet = false;
-        JApplet applet = null;
-        if ( getCurrentTreePanel() != null ) {
-            is_applet = getCurrentTreePanel().isApplet();
-            if ( is_applet ) {
-                applet = getCurrentTreePanel().obtainApplet();
-            }
-        }
+      
         if ( o == _exit_item ) {
             close();
         }
@@ -607,7 +602,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _help_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.APTX_DOC_SITE, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.APTX_DOC_SITE );
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -615,7 +610,15 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _website_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.APTX_WEB_SITE, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.APTX_WEB_SITE);
+            }
+            catch ( final IOException e1 ) {
+                ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
+            }
+        }
+        else if ( o == _aptxjs_website_item ) {
+            try {
+                AptxUtil.openWebsite( AptxConstants.APTX_JS_WEB_SITE);;
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -623,7 +626,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _mailing_list_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.APTX_MAILING_LIST, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.APTX_MAILING_LIST );
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -631,7 +634,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _phyloxml_website_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.PHYLOXML_WEB_SITE, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.PHYLOXML_WEB_SITE );
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -639,7 +642,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _aptx_ref_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.APTX_REFERENCE_URL, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.APTX_REFERENCE_URL );
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -647,7 +650,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
         else if ( o == _phyloxml_ref_item ) {
             try {
-                AptxUtil.openWebsite( AptxConstants.PHYLOXML_REFERENCE_URL, is_applet, applet );
+                AptxUtil.openWebsite( AptxConstants.PHYLOXML_REFERENCE_URL );
             }
             catch ( final IOException e1 ) {
                 ForesterUtil.printErrorMessage( AptxConstants.PRG_NAME, e1.toString() );
@@ -727,6 +730,18 @@ public abstract class MainFrame extends JFrame implements ActionListener {
                 setCurrentDir( new_dir );
             }
         }
+        else if (o == _write_to_eps_item) {
+          final File new_dir = writeToGraphicsFile(_mainpanel.getCurrentPhylogeny(),
+                  GraphicsExportType.EPS,
+                  _mainpanel,
+                  _writetographics_filechooser,
+                  this,
+                  getContentPane(),
+                  _current_dir );
+          if (new_dir != null) {
+            setCurrentDir(new_dir);
+          }
+        }
         else if ( o == _print_item ) {
             print( getCurrentTreePanel(), getOptions(), this );
         }
@@ -1030,7 +1045,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
                 _process_menu.setForeground( Color.RED );
             }
             _process_menu.removeAll();
-            final String text = "processes running: " + _process_pool.size();
+            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 ) {
@@ -1127,7 +1142,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         }
     }
 
-    void activateSaveAllIfNeeded() {
+    public void activateSaveAllIfNeeded() {
         if ( ( getMainPanel().getTabbedPane() != null ) && ( getMainPanel().getTabbedPane().getTabCount() > 1 ) ) {
             _save_all_item.setEnabled( true );
         }
@@ -1137,35 +1152,39 @@ public abstract class MainFrame extends JFrame implements ActionListener {
     }
 
     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 );
+//        _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.add( _write_to_eps_item = new JMenuItem("Export to EPS 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(_write_to_eps_item);
+//        customizeJMenuItem( _print_item );
+//        customizeJMenuItem( _exit_item );
+//        _jmenubar.add( _file_jmenu );
     }
 
     void buildFontSizeMenu() {
@@ -1188,6 +1207,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         _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" ) );
@@ -1196,6 +1216,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
         _help_jmenu.add( _about_item = new JMenuItem( "About" ) );
         customizeJMenuItem( _help_item );
         customizeJMenuItem( _website_item );
+        customizeJMenuItem( _aptxjs_website_item );
         customizeJMenuItem( _mailing_list_item );
         customizeJMenuItem( _phyloxml_website_item );
         customizeJMenuItem( _aptx_ref_item );