JAL-2872 Undid inference disabling (done in Jalview instead)
[jalview.git] / forester / java / src / org / forester / archaeopteryx / MainFrame.java
index a06adaf..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;
@@ -113,10 +113,10 @@ public abstract class MainFrame extends JFrame implements ActionListener {
     static final String              OPTIONS_HEADER                          = "Options";
     static final String              SEARCH_SUBHEADER                        = "Search:";
     static final String              DISPLAY_SUBHEADER                       = "Display:";
-    static final String              SEARCH_TERMS_ONLY_LABEL                 = "Match Complete Terms Only";
-    static final String              SEARCH_REGEX_LABEL                      = "Search with Regular Expressions";
-    static final String              SEARCH_CASE_SENSITIVE_LABEL             = "Case Sensitive";
-    static final String              INVERSE_SEARCH_RESULT_LABEL             = "Negate Result";
+    static final String              SEARCH_TERMS_ONLY_LABEL                 = "Words";
+    static final String              SEARCH_REGEX_LABEL                      = "Regex";
+    static final String              SEARCH_CASE_SENSITIVE_LABEL             = "Match Case";
+    static final String              INVERSE_SEARCH_RESULT_LABEL             = "Inverse";
     static final String              COLOR_BY_TAXONOMIC_GROUP                = "Colorize by Taxonomic Group";
     static final String              DISPLAY_SCALE_LABEL                     = "Scale";
     static final String              NON_LINED_UP_CLADOGRAMS_LABEL           = "Non-Lined Up Cladogram";
@@ -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();
         }
@@ -505,6 +500,9 @@ public abstract class MainFrame extends JFrame implements ActionListener {
             showWhole();
         }
         else if ( o == _search_case_senstive_cbmi ) {
+            if ( ( _search_with_regex_cbmi != null ) && _search_case_senstive_cbmi.isSelected() ) {
+                _search_with_regex_cbmi.setSelected( false );
+            }
             updateOptions( getOptions() );
             getMainPanel().getControlPanel().search0();
             getMainPanel().getControlPanel().search1();
@@ -527,7 +525,7 @@ public abstract class MainFrame extends JFrame implements ActionListener {
                 _search_whole_words_only_cbmi.setSelected( false );
             }
             if ( ( _search_case_senstive_cbmi != null ) && _search_with_regex_cbmi.isSelected() ) {
-                _search_case_senstive_cbmi.setSelected( true );
+                _search_case_senstive_cbmi.setSelected( false );
             }
             updateOptions( getOptions() );
             getMainPanel().getControlPanel().search0();
@@ -604,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() );
@@ -612,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() );
@@ -620,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() );
@@ -628,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() );
@@ -636,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() );
@@ -644,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() );
@@ -724,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 );
         }
@@ -1027,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 ) {
@@ -1124,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 );
         }
@@ -1134,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() {
@@ -1185,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" ) );
@@ -1193,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 );