X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGDesktop.java;h=7b4f477f380d0a5266cff884c6996c7abd6244de;hb=072176426bbe5af5d6588b3a6eb6d5969fe1b01e;hp=3e3691c5dd925acbbd6b9b304800dde997457a31;hpb=124aa4823768a2c745a5e41f2ebfe13ab77bbea4;p=jalview.git diff --git a/src/jalview/jbgui/GDesktop.java b/src/jalview/jbgui/GDesktop.java index 3e3691c..7b4f477 100755 --- a/src/jalview/jbgui/GDesktop.java +++ b/src/jalview/jbgui/GDesktop.java @@ -20,13 +20,7 @@ */ 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; @@ -36,14 +30,24 @@ import javax.swing.JMenu; 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.jbgui.QuitHandler.QResponse; +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(); @@ -52,10 +56,6 @@ 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(); @@ -76,20 +76,14 @@ public class GDesktop extends JFrame 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(); @@ -115,6 +109,7 @@ public class GDesktop extends JFrame */ public GDesktop() { + super(); try { jbInit(); @@ -124,11 +119,12 @@ public class GDesktop extends JFrame 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'); @@ -146,20 +142,38 @@ public class GDesktop extends JFrame */ 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() { @@ -184,8 +198,8 @@ public class GDesktop extends JFrame } } }); - inputTextboxMenuItem.setText(MessageManager - .getString("label.from_textbox")); + inputTextboxMenuItem + .setText(MessageManager.getString("label.from_textbox")); inputTextboxMenuItem .addActionListener(new java.awt.event.ActionListener() { @@ -201,7 +215,14 @@ public class GDesktop extends JFrame @Override public void actionPerformed(ActionEvent e) { - quit(); + QResponse qresponse = Desktop.instance != null + ? Desktop.instance.desktopQuit() + : QResponse.QUIT; + if (qresponse == QResponse.CANCEL_QUIT) + { + jalview.bin.Console + .debug("GDesktop: Quit action cancelled by user"); + } } }); aboutMenuItem.setText(MessageManager.getString("label.about")); @@ -213,8 +234,8 @@ public class GDesktop extends JFrame 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 @@ -223,7 +244,7 @@ public class GDesktop extends JFrame @Override public void actionPerformed(ActionEvent e) { - documentationMenuItem_actionPerformed(e); + documentationMenuItem_actionPerformed(); } }); this.getContentPane().setLayout(flowLayout1); @@ -244,54 +265,30 @@ public class GDesktop extends JFrame @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); + saveState_actionPerformed(); } }); - 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() + 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 @@ -300,17 +297,6 @@ 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() { @@ -320,8 +306,8 @@ public class GDesktop extends JFrame closeAll_actionPerformed(e); } }); - raiseRelated.setText(MessageManager - .getString("action.raise_associated_windows")); + raiseRelated.setText( + MessageManager.getString("action.raise_associated_windows")); raiseRelated.addActionListener(new ActionListener() { @Override @@ -330,8 +316,8 @@ public class GDesktop extends JFrame raiseRelated_actionPerformed(e); } }); - minimizeAssociated.setText(MessageManager - .getString("action.minimize_associated_windows")); + minimizeAssociated.setText( + MessageManager.getString("action.minimize_associated_windows")); minimizeAssociated.addActionListener(new ActionListener() { @Override @@ -340,8 +326,8 @@ public class GDesktop extends JFrame minimizeAssociated_actionPerformed(e); } }); - garbageCollect.setText(MessageManager - .getString("label.collect_garbage")); + garbageCollect + .setText(MessageManager.getString("label.collect_garbage")); garbageCollect.addActionListener(new ActionListener() { @Override @@ -350,8 +336,8 @@ public class GDesktop extends JFrame garbageCollect_actionPerformed(e); } }); - showMemusage.setText(MessageManager - .getString("label.show_memory_usage")); + showMemusage + .setText(MessageManager.getString("label.show_memory_usage")); showMemusage.addActionListener(new ActionListener() { @Override @@ -390,10 +376,10 @@ public class GDesktop extends JFrame } }); 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 @@ -415,31 +401,36 @@ public class GDesktop extends JFrame 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); @@ -527,7 +518,8 @@ public class GDesktop extends JFrame * @param e * DOCUMENT ME! */ - protected void inputTextboxMenuItem_actionPerformed(AlignmentViewPanel avp) + protected void inputTextboxMenuItem_actionPerformed( + AlignmentViewPanel avp) { } @@ -536,6 +528,7 @@ public class GDesktop extends JFrame */ protected void quit() { + // System.out.println("********** GDesktop.quit()"); } /** @@ -548,13 +541,7 @@ public class GDesktop extends JFrame { } - /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! - */ - protected void documentationMenuItem_actionPerformed(ActionEvent e) + protected void documentationMenuItem_actionPerformed() { } @@ -564,7 +551,7 @@ public class GDesktop extends JFrame * @param e * DOCUMENT ME! */ - public void SaveState_actionPerformed(ActionEvent e) + protected void preferences_actionPerformed(ActionEvent e) { } @@ -574,17 +561,11 @@ public class GDesktop extends JFrame * @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) { } @@ -594,7 +575,7 @@ public class GDesktop extends JFrame * @param e * DOCUMENT ME! */ - public void loadState_actionPerformed(ActionEvent e) + public void loadState_actionPerformed() { }