*/
package jalview.jbgui;
-import jalview.api.AlignmentViewPanel;
-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;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
+import jalview.api.AlignmentViewPanel;
+import jalview.bin.Cache;
+import jalview.gui.Desktop;
+import jalview.io.FileFormatException;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
/**
* DOCUMENT ME!
*
* @author $author$
* @version $Revision$
*/
+@SuppressWarnings("serial")
public class GDesktop extends JFrame
{
+
protected static JMenu windowMenu = new JMenu();
JMenuBar desktopMenubar = new JMenuBar();
JMenu HelpMenu = new JMenu();
- protected JMenu VamsasMenu = new JMenu();
-
- protected JMenu VamsasStMenu = new JMenu();
-
JMenuItem inputLocalFileMenuItem = new JMenuItem();
JMenuItem inputURLMenuItem = new JMenuItem();
JMenuItem saveState = new JMenuItem();
+ JMenuItem saveAsState = new JMenuItem();
+
JMenuItem loadState = new JMenuItem();
JMenu inputMenu = new JMenu();
- protected JMenuItem vamsasStart = new JMenuItem();
-
- protected JMenuItem vamsasImport = new JMenuItem();
-
- protected JMenuItem vamsasSave = new JMenuItem();
-
JMenuItem inputSequence = new JMenuItem();
- protected JMenuItem vamsasStop = new JMenuItem();
-
JMenuItem closeAll = new JMenuItem();
JMenuItem raiseRelated = new JMenuItem();
*/
public GDesktop()
{
+ super();
try
{
jbInit();
e.printStackTrace();
}
- if (!Platform.isAMac())
+ if (Platform.allowMnemonics())
{
+ // BH was !Platform.isAMacAndNotJS()) i.e. "JS or not Mac"
+ // 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');
*/
private void jbInit() throws Exception
{
+ boolean apqHandlersSet = false;
+ /**
+ * APQHandlers sets handlers for About, Preferences and Quit actions
+ * peculiar to macOS's application menu. APQHandlers will check to see if a
+ * handler is supported before setting it.
+ */
+ try
+ {
+ apqHandlersSet = APQHandlers.setAPQHandlers(this);
+ } catch (Exception e)
+ {
+ System.out.println("Cannot set APQHandlers");
+ // e.printStackTrace();
+ } catch (Throwable t)
+ {
+ jalview.bin.Console
+ .warn("Error setting APQHandlers: " + t.toString());
+ jalview.bin.Console.trace(Cache.getStackTraceString(t));
+ }
+ setName("jalview-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, Toolkit
- .getDefaultToolkit().getMenuShortcutKeyMask(), false));
+ 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(),
+ false));
inputLocalFileMenuItem
.addActionListener(new java.awt.event.ActionListener()
{
}
}
});
- inputTextboxMenuItem.setText(MessageManager
- .getString("label.from_textbox"));
+ inputTextboxMenuItem
+ .setText(MessageManager.getString("label.from_textbox"));
inputTextboxMenuItem
.addActionListener(new java.awt.event.ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- quit();
+ if (Desktop.instance != null)
+ Desktop.instance.desktopQuit();
}
});
aboutMenuItem.setText(MessageManager.getString("label.about"));
aboutMenuItem_actionPerformed(e);
}
});
- documentationMenuItem.setText(MessageManager
- .getString("label.documentation"));
+ documentationMenuItem
+ .setText(MessageManager.getString("label.documentation"));
documentationMenuItem.setAccelerator(javax.swing.KeyStroke
.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0, false));
documentationMenuItem
@Override
public void actionPerformed(ActionEvent e)
{
- documentationMenuItem_actionPerformed(e);
+ documentationMenuItem_actionPerformed();
}
});
this.getContentPane().setLayout(flowLayout1);
@Override
public void actionPerformed(ActionEvent e)
{
- saveState_actionPerformed(e);
- }
- });
- loadState.setText(MessageManager.getString("action.load_project"));
- loadState.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- loadState_actionPerformed(e);
- }
- });
- 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);
+ saveState_actionPerformed();
}
});
- vamsasImport.setText(MessageManager
- .getString("action.load_vamsas_session"));
- vamsasImport.setVisible(false);
- vamsasImport.addActionListener(new ActionListener()
+ saveAsState.setText(MessageManager.getString("action.save_project_as"));
+ saveAsState.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- vamsasImport_actionPerformed(e);
+ saveAsState_actionPerformed(e);
}
});
- vamsasSave.setText(MessageManager
- .getString("action.save_vamsas_session"));
- vamsasSave.setVisible(false);
- vamsasSave.addActionListener(new ActionListener()
+ loadState.setText(MessageManager.getString("action.load_project"));
+ loadState.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- vamsasSave_actionPerformed(e);
+ loadState_actionPerformed();
}
});
- inputSequence.setText(MessageManager
- .getString("action.fetch_sequences"));
+ inputMenu.setText(MessageManager.getString("label.input_alignment"));
+ inputSequence
+ .setText(MessageManager.getString("action.fetch_sequences"));
inputSequence.addActionListener(new ActionListener()
{
@Override
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()
{
closeAll_actionPerformed(e);
}
});
- raiseRelated.setText(MessageManager
- .getString("action.raise_associated_windows"));
+ raiseRelated.setText(
+ MessageManager.getString("action.raise_associated_windows"));
raiseRelated.addActionListener(new ActionListener()
{
@Override
raiseRelated_actionPerformed(e);
}
});
- minimizeAssociated.setText(MessageManager
- .getString("action.minimize_associated_windows"));
+ minimizeAssociated.setText(
+ MessageManager.getString("action.minimize_associated_windows"));
minimizeAssociated.addActionListener(new ActionListener()
{
@Override
minimizeAssociated_actionPerformed(e);
}
});
- garbageCollect.setText(MessageManager
- .getString("label.collect_garbage"));
+ garbageCollect
+ .setText(MessageManager.getString("label.collect_garbage"));
garbageCollect.addActionListener(new ActionListener()
{
@Override
garbageCollect_actionPerformed(e);
}
});
- showMemusage.setText(MessageManager
- .getString("label.show_memory_usage"));
+ showMemusage
+ .setText(MessageManager.getString("label.show_memory_usage"));
showMemusage.addActionListener(new ActionListener()
{
@Override
}
});
experimentalFeatures = new JCheckBoxMenuItem();
- experimentalFeatures.setText(MessageManager
- .getString("label.show_experimental"));
- experimentalFeatures.setToolTipText(MessageManager
- .getString("label.show_experimental_tip"));
+ experimentalFeatures
+ .setText(MessageManager.getString("label.show_experimental"));
+ experimentalFeatures.setToolTipText(
+ MessageManager.getString("label.show_experimental_tip"));
experimentalFeatures.addActionListener(new ActionListener()
{
@Override
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);
+ if (!APQHandlers.setQuit)
+ {
+ FileMenu.add(quit);
+ }
+ if (!APQHandlers.setAbout)
+ {
+ HelpMenu.add(aboutMenuItem);
+ }
HelpMenu.add(documentationMenuItem);
- VamsasMenu.add(VamsasStMenu);
- VamsasStMenu.setVisible(false);
- VamsasMenu.add(vamsasStart);
- VamsasMenu.add(vamsasImport);
- VamsasMenu.add(vamsasSave);
- VamsasMenu.add(vamsasStop);
- toolsMenu.add(preferences);
- toolsMenu.add(showMemusage);
- toolsMenu.add(showConsole);
- toolsMenu.add(showNews);
- toolsMenu.add(garbageCollect);
- toolsMenu.add(groovyShell);
+ if (!APQHandlers.setPreferences)
+ {
+ toolsMenu.add(preferences);
+ }
+ if (!Platform.isJS())
+ {
+ toolsMenu.add(showMemusage);
+ toolsMenu.add(showConsole);
+ toolsMenu.add(showNews);
+ toolsMenu.add(garbageCollect);
+ toolsMenu.add(groovyShell);
+ }
toolsMenu.add(experimentalFeatures);
// toolsMenu.add(snapShotWindow);
inputMenu.add(inputLocalFileMenuItem);
* @param e
* DOCUMENT ME!
*/
- protected void inputTextboxMenuItem_actionPerformed(AlignmentViewPanel avp)
+ protected void inputTextboxMenuItem_actionPerformed(
+ AlignmentViewPanel avp)
{
}
*/
protected void quit()
{
+ // System.out.println("********** GDesktop.quit()");
}
/**
{
}
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- protected void documentationMenuItem_actionPerformed(ActionEvent e)
+ protected void documentationMenuItem_actionPerformed()
{
}
* @param e
* DOCUMENT ME!
*/
- public void SaveState_actionPerformed(ActionEvent e)
+ protected void preferences_actionPerformed(ActionEvent e)
{
}
* @param e
* DOCUMENT ME!
*/
- protected void preferences_actionPerformed(ActionEvent e)
+ public void saveState_actionPerformed()
{
}
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- public void saveState_actionPerformed(ActionEvent e)
+ public void saveAsState_actionPerformed(ActionEvent e)
{
}
* @param e
* DOCUMENT ME!
*/
- public void loadState_actionPerformed(ActionEvent e)
+ public void loadState_actionPerformed()
{
}