X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FDesktop.java;h=cf91b9cd9f7a240d2ebc0a7b9840b5f3364fa1ad;hb=a44bf47650800c7fcb0a6d493e1c52e13f4e4e76;hp=1fed71e5181f0161ccaf4041f09eb9bb70c9fa0f;hpb=49a555c3890bc93583a5e0d8f0f237db21f5e3d3;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index 1fed71e..cf91b9c 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -62,16 +62,6 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; -import java.awt.desktop.QuitStrategy; -/* not importing directly. Calling classes with full name in try block to allow Java 1.8 runtime -import java.awt.desktop.AboutHandler; -import java.awt.desktop.PreferencesEvent; -import java.awt.desktop.PreferencesHandler; -import java.awt.desktop.QuitEvent; -import java.awt.desktop.QuitHandler; -import java.awt.desktop.QuitResponse; -import java.awt.desktop.QuitStrategy; -*/ import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; @@ -120,7 +110,6 @@ import javax.swing.JDesktopPane; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JMenuItem; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JProgressBar; @@ -156,7 +145,7 @@ public class Desktop extends jalview.jbgui.GDesktop private static final String EXPERIMENTAL_FEATURES = "EXPERIMENTAL_FEATURES"; - private static final String CONFIRM_KEYBOARD_QUIT = "CONFIRM_KEYBOARD_QUIT"; + protected static final String CONFIRM_KEYBOARD_QUIT = "CONFIRM_KEYBOARD_QUIT"; public static HashMap savingFiles = new HashMap<>(); @@ -169,8 +158,6 @@ public class Desktop extends jalview.jbgui.GDesktop private File projectFile; - private static boolean setAPQHandlers = false; - /** * @param listener * @see jalview.gui.JalviewChangeSupport#addJalviewPropertyChangeListener(java.beans.PropertyChangeListener) @@ -374,125 +361,20 @@ public class Desktop extends jalview.jbgui.GDesktop } */ - // flagging this test to avoid unnecessary reflection - if (!setAPQHandlers) + try { - // see if the Quit, About and Preferences handlers are available - Class desktopClass = java.awt.Desktop.class; - java.awt.Desktop hdesktop = java.awt.Desktop.getDesktop(); - - try - { - Float specversion = Float.parseFloat( - System.getProperty("java.specification.version")); - - if (specversion >= 9) - { - if (Platform.isAMac()) - { - if (desktopClass.getDeclaredMethod("setAboutHandler", - new Class[] - { java.awt.desktop.AboutHandler.class }) != null) - { - - hdesktop.setAboutHandler(new java.awt.desktop.AboutHandler() - { - @Override - public void handleAbout(java.awt.desktop.AboutEvent e) - { - aboutMenuItem_actionPerformed(null); - } - }); - - } - - if (desktopClass.getDeclaredMethod("setPreferencesHandler", - new Class[] - { java.awt.desktop.PreferencesHandler.class }) != null) - { - - hdesktop.setPreferencesHandler( - new java.awt.desktop.PreferencesHandler() - { - @Override - public void handlePreferences( - java.awt.desktop.PreferencesEvent e) - { - preferences_actionPerformed(null); - } - }); - - } - - if (desktopClass.getDeclaredMethod("setQuitHandler", - new Class[] - { java.awt.desktop.QuitHandler.class }) != null) - { - - hdesktop.setQuitHandler(new java.awt.desktop.QuitHandler() - { - @Override - public void handleQuitRequestWith( - java.awt.desktop.QuitEvent e, - java.awt.desktop.QuitResponse r) - { - boolean confirmQuit = jalview.bin.Cache - .getDefault(CONFIRM_KEYBOARD_QUIT, true); - int n; - if (confirmQuit) - { - n = JOptionPane.showConfirmDialog(null, - MessageManager.getString("label.quit_jalview"), - MessageManager.getString("action.quit"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.PLAIN_MESSAGE, null); - } - else - { - n = JOptionPane.OK_OPTION; - } - if (n == JOptionPane.OK_OPTION) - { - System.out.println("Shortcut Quit confirmed by user"); - quit(); - r.performQuit(); // probably won't reach this line, but just - // in - // case - } - else - { - r.cancelQuit(); - System.out.println("Shortcut Quit cancelled by user"); - } - } - }); - hdesktop.setQuitStrategy(QuitStrategy.CLOSE_ALL_WINDOWS); - - } - } - } - else - { - System.out.println( - "Not going to try setting APQ Handlers as java.spec.version is " - + specversion); - } - - } catch (Exception e) - { - System.out.println( - "Exception when looking for About, Preferences, Quit Handlers"); - e.printStackTrace(); - } catch (Throwable t) - { - System.out.println( - "Throwable when looking for About, Preferences, Quit Handlers"); - t.printStackTrace(); - } - - setAPQHandlers = true; + APQHandlers.setAPQHandlers(this); + } catch (Exception e) + { + System.out.println("Cannot set APQHandlers"); + // e.printStackTrace(); + } catch (Throwable t) + { + System.out.println("Cannot set APQHandlers"); + // t.printStackTrace(); } + addWindowListener(new WindowAdapter() { @@ -542,26 +424,7 @@ public class Desktop extends jalview.jbgui.GDesktop } jconsole = new Console(this, showjconsole); // add essential build information - jconsole.setHeader( - "Jalview Version: " + jalview.bin.Cache.getProperty("VERSION") - + "\n" + "Jalview Installation: " - + jalview.bin.Cache.getDefault("INSTALLATION", - "unknown") - + "\n" + "Build Date: " - + jalview.bin.Cache.getDefault("BUILD_DATE", "unknown") - + "\n" + "Java version: " - + System.getProperty("java.version") + "\n" - + System.getProperty("os.arch") + " " - + System.getProperty("os.name") + " " - + System.getProperty("os.version") - + (jalview.bin.Cache.getProperty("VERSION").equals("DEVELOPMENT") - ? "\nJava path:" - + System.getProperty( - "java.home") - + File.separator + "bin" - + File.separator + "java" - : "") - ); + jconsole.setHeader(jalview.bin.Cache.getVersionDetailsForConsole()); showConsole(showjconsole); @@ -1138,7 +1001,7 @@ public class Desktop extends jalview.jbgui.GDesktop KeyStroke ctrlWKey = KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK); KeyStroke cmdWKey = KeyStroke.getKeyStroke(KeyEvent.VK_W, - Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()); + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()); InputMap inputMap = frame .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); @@ -1252,7 +1115,7 @@ public class Desktop extends jalview.jbgui.GDesktop { String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT"); JalviewFileChooser chooser = JalviewFileChooser - .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat, true); + .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat, BackupFiles.getEnabled()); chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle( @@ -1417,8 +1280,6 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void quit() { - //System.out.println("********** Desktop.quit()"); - //System.out.println(savingFiles.toString()); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); jalview.bin.Cache.setProperty("SCREENGEOMETRY_WIDTH", screen.width + ""); @@ -1496,9 +1357,10 @@ public class Desktop extends jalview.jbgui.GDesktop message.append("

Version: " + jalview.bin.Cache.getProperty("VERSION") + "

"); - message.append("Last Updated: " + message.append("Built: " + jalview.bin.Cache.getDefault("BUILD_DATE", "unknown") - + ""); + + " from " + jalview.bin.Cache.getBuildDetailsForSplash() + + ""); } else @@ -1513,7 +1375,8 @@ public class Desktop extends jalview.jbgui.GDesktop if (jalview.bin.Cache.getDefault("LATEST_VERSION", "Checking") .equals("Checking")) { - message.append("
...Checking latest version...
"); + // JBP removed this message for 2.11: May be reinstated in future version + // message.append("
...Checking latest version...
"); } else if (!jalview.bin.Cache.getDefault("LATEST_VERSION", "Checking") .equals(jalview.bin.Cache.getProperty("VERSION"))) @@ -1881,7 +1744,7 @@ public class Desktop extends jalview.jbgui.GDesktop "Jalview Project (old)" }; JalviewFileChooser chooser = new JalviewFileChooser( Cache.getProperty("LAST_DIRECTORY"), suffix, desc, - "Jalview Project", true, true); // last two booleans: allFiles, + "Jalview Project", true, BackupFiles.getEnabled()); // last two booleans: allFiles, // allowBackupFiles chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle(MessageManager.getString("label.restore_state")); @@ -2886,7 +2749,7 @@ public class Desktop extends jalview.jbgui.GDesktop { getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(KeyStroke.getKeyStroke(KeyEvent.VK_Q, - Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()), + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()), "Quit"); getRootPane().getActionMap().put("Quit", new AbstractAction() {