temp push
[jalview.git] / src / jalview / jbgui / GDesktop.java
index e4a5905..9e15eea 100755 (executable)
 package jalview.jbgui;
 
 import jalview.api.AlignmentViewPanel;
+import jalview.bin.Jalview;
 import jalview.io.FileFormatException;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 
 import java.awt.FlowLayout;
+import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
@@ -36,16 +38,15 @@ import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 
 /**
- * DOCUMENT ME!
+ * abstract class super to jalview.gui.Desktop
  * 
- * @author $author$
- * @version $Revision$
  */
 @SuppressWarnings("serial")
-public class GDesktop extends JFrame
+// BH made abstract
+public abstract class GDesktop extends JFrame
 {
 
-  protected static JMenu windowMenu = new JMenu();
+  protected JMenu windowMenu = new JMenu(); // BH 2019.05.07 was static
 
   JMenuBar desktopMenubar = new JMenuBar();
 
@@ -53,6 +54,10 @@ public class GDesktop extends JFrame
 
   JMenu HelpMenu = new JMenu();
 
+  protected JMenu VamsasMenu = new JMenu();
+
+  protected JMenu VamsasStMenu = new JMenu();
+
   JMenuItem inputLocalFileMenuItem = new JMenuItem();
 
   JMenuItem inputURLMenuItem = new JMenuItem();
@@ -79,6 +84,15 @@ public class GDesktop extends JFrame
 
   JMenu inputMenu = new JMenu();
 
+  // in JalviewJS
+  protected JMenuItem vamsasStart = new JMenuItem();
+
+  protected JMenuItem vamsasImport = new JMenuItem();
+
+  protected JMenuItem vamsasSave = new JMenuItem();
+
+  protected JMenuItem vamsasStop = new JMenuItem();
+
   JMenuItem inputSequence = new JMenuItem();
 
   JMenuItem closeAll = new JMenuItem();
@@ -97,7 +111,8 @@ public class GDesktop extends JFrame
 
   protected JCheckBoxMenuItem showConsole = new JCheckBoxMenuItem();
 
-  protected JCheckBoxMenuItem showNews = new JCheckBoxMenuItem();
+  // BH public for Runnable
+  public JCheckBoxMenuItem showNews = new JCheckBoxMenuItem();
 
   protected JMenuItem snapShotWindow = new JMenuItem();
 
@@ -106,7 +121,6 @@ public class GDesktop extends JFrame
    */
   public GDesktop()
   {
-    super();
     try
     {
       jbInit();
@@ -122,6 +136,7 @@ public class GDesktop extends JFrame
        // but here we want just not a Mac, period, right?
       FileMenu.setMnemonic('F');
       inputLocalFileMenuItem.setMnemonic('L');
+      VamsasMenu.setMnemonic('V'); 
       inputURLMenuItem.setMnemonic('U');
       inputTextboxMenuItem.setMnemonic('C');
       quit.setMnemonic('Q');
@@ -139,14 +154,20 @@ public class GDesktop extends JFrame
    */
   private void jbInit() throws Exception
   {
-    setName("jalview-desktop");
+    setName(Jalview.getAppID("desktop"));
     FileMenu.setText(MessageManager.getString("action.file"));
     HelpMenu.setText(MessageManager.getString("action.help"));
+    VamsasMenu.setText("Vamsas");
+    VamsasMenu.setToolTipText(MessageManager
+            .getString("label.share_data_vamsas_applications"));
+    VamsasStMenu.setText(MessageManager.getString("label.connect_to"));
+    VamsasStMenu.setToolTipText(
+            MessageManager.getString("label.join_existing_vamsas_session"));
     inputLocalFileMenuItem
             .setText(MessageManager.getString("label.load_tree_from_file"));
     inputLocalFileMenuItem.setAccelerator(
             javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O,
-                    jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(),
+                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
                     false));
     inputLocalFileMenuItem
             .addActionListener(new java.awt.event.ActionListener()
@@ -254,6 +275,39 @@ public class GDesktop extends JFrame
       }
     });
     inputMenu.setText(MessageManager.getString("label.input_alignment"));
+    vamsasStart
+            .setText(MessageManager.getString("label.new_vamsas_session"));
+    vamsasStart.setVisible(false);
+    vamsasStart.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        vamsasStart_actionPerformed(e);
+      }
+    });
+    vamsasImport.setText(
+            MessageManager.getString("action.load_vamsas_session"));
+    vamsasImport.setVisible(false);
+    vamsasImport.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        vamsasImport_actionPerformed(e);
+      }
+    });
+    vamsasSave.setText(
+            MessageManager.getString("action.save_vamsas_session"));
+    vamsasSave.setVisible(false);
+    vamsasSave.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        vamsasSave_actionPerformed(e);
+      }
+    });
     inputSequence
             .setText(MessageManager.getString("action.fetch_sequences"));
     inputSequence.addActionListener(new ActionListener()
@@ -264,6 +318,17 @@ public class GDesktop extends JFrame
         inputSequence_actionPerformed(e);
       }
     });
+    vamsasStop
+            .setText(MessageManager.getString("label.stop_vamsas_session"));
+    vamsasStop.setVisible(false);
+    vamsasStop.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        vamsasStop_actionPerformed(e);
+      }
+    });
     closeAll.setText(MessageManager.getString("action.close_all"));
     closeAll.addActionListener(new ActionListener()
     {
@@ -366,32 +431,36 @@ public class GDesktop extends JFrame
       }
     });
 
-    Float specversion = Platform.isJS() ? Float.valueOf(8)
-            : Float.parseFloat(
-                    System.getProperty("java.specification.version"));
-    
     desktopMenubar.add(FileMenu);
     desktopMenubar.add(toolsMenu);
+    VamsasMenu.setVisible(false);
+    desktopMenubar.add(VamsasMenu);
     desktopMenubar.add(HelpMenu);
     desktopMenubar.add(windowMenu);
     FileMenu.add(inputMenu);
     FileMenu.add(inputSequence);
     FileMenu.addSeparator();
-    //FileMenu.add(saveState);
+    FileMenu.add(saveState);
     FileMenu.add(saveAsState);
     FileMenu.add(loadState);
     FileMenu.addSeparator();
     FileMenu.add(quit);
     HelpMenu.add(aboutMenuItem);
     HelpMenu.add(documentationMenuItem);
-    if (!Platform.isAMacAndNotJS() || specversion < 11)
-    {
-      toolsMenu.add(preferences);
-    }
+    VamsasMenu.add(VamsasStMenu);
+    VamsasStMenu.setVisible(false);
+    VamsasMenu.add(vamsasStart);
+    VamsasMenu.add(vamsasImport);
+    VamsasMenu.add(vamsasSave);
+    VamsasMenu.add(vamsasStop);
+    toolsMenu.add(preferences);
     if (!Platform.isJS())
     {
       toolsMenu.add(showMemusage);
       toolsMenu.add(showConsole);
+    }
+    if (!Platform.isJS())
+    {
       toolsMenu.add(showNews);
       toolsMenu.add(garbageCollect);
       toolsMenu.add(groovyShell);
@@ -493,7 +562,6 @@ public class GDesktop extends JFrame
    */
   protected void quit()
   {
-    //System.out.println("********** GDesktop.quit()");
   }
 
   /**