3 import javax.swing.JFrame;
4 import javax.swing.JOptionPane;
6 import com.formdev.flatlaf.extras.FlatDesktop;
8 import jalview.util.MessageManager;
10 public class QuitHandler
12 public static void setQuitHandler()
14 FlatDesktop.setQuitHandler(response -> {
15 boolean confirmQuit = jalview.bin.Cache
16 .getDefault(jalview.gui.Desktop.CONFIRM_KEYBOARD_QUIT, true);
17 boolean canQuit = !confirmQuit;
21 // ensure Jalview window is brought to front for Quit confirmation
22 // window to be visible
24 // this method of raising the Jalview window is broken in java
25 // jalviewDesktop.setVisible(true);
26 // jalviewDesktop.toFront();
28 // a better hack which works instead
29 JFrame dialogParent = new JFrame();
30 dialogParent.setAlwaysOnTop(true);
32 n = JOptionPane.showConfirmDialog(dialogParent,
33 MessageManager.getString("label.quit_jalview"),
34 MessageManager.getString("action.quit"),
35 JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,
38 dialogParent.setAlwaysOnTop(false);
39 dialogParent.dispose();
43 n = JOptionPane.OK_OPTION;
45 canQuit = (n == JOptionPane.OK_OPTION);
48 response.performQuit();
52 response.cancelQuit();