*/
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.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.APQHandlers;
+import jalview.gui.Desktop;
+import jalview.io.FileFormatException;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
/**
* DOCUMENT ME!
*
*/
private void jbInit() throws Exception
{
+ /**
+ * 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
+ {
+ APQHandlers.setAPQHandlers((Desktop) this);
+ } catch (Exception e)
+ {
+ jalview.bin.Console.outPrintln("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"));
inputURLMenuItem_actionPerformed(null);
} catch (FileFormatException e1)
{
- System.err.println("Error loading from URL: " + e1.getMessage());
+ jalview.bin.Console
+ .errPrintln("Error loading from URL: " + e1.getMessage());
}
}
});
@Override
public void actionPerformed(ActionEvent e)
{
- quit();
+ if (Desktop.instance != null)
+ Desktop.instance.desktopQuit();
}
});
aboutMenuItem.setText(MessageManager.getString("label.about"));
}
});
- Float specversion = Platform.isJS() ? Float.valueOf(8)
- : Float.parseFloat(
- System.getProperty("java.specification.version"));
-
desktopMenubar.add(FileMenu);
desktopMenubar.add(toolsMenu);
desktopMenubar.add(HelpMenu);
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);
- if (!Platform.isAMacAndNotJS() || specversion < 11)
+ if (!APQHandlers.setPreferences)
{
toolsMenu.add(preferences);
}
*/
protected void quit()
{
- // System.out.println("********** GDesktop.quit()");
+ // jalview.bin.Console.outPrintln("********** GDesktop.quit()");
}
/**