From 39182e0f92ef51b6b4ed38b8da8f652cc9969a36 Mon Sep 17 00:00:00 2001 From: Laurent Clouet Date: Sat, 9 Sep 2023 13:29:23 +0200 Subject: [PATCH] Fix: when there an empty queue, display a better exit dialog --- .../standalone/swing/activity/Working.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sheepit/client/standalone/swing/activity/Working.java b/src/main/java/com/sheepit/client/standalone/swing/activity/Working.java index 54a1820..7bb7815 100644 --- a/src/main/java/com/sheepit/client/standalone/swing/activity/Working.java +++ b/src/main/java/com/sheepit/client/standalone/swing/activity/Working.java @@ -559,17 +559,30 @@ public class Working implements Activity { } int jobsQueueSize = getJobsQueueSize(client); - int userDecision = showCloseDialog(jobsQueueSize); - - if (userDecision == 0) { - finishJobBeforeExit(client, jobsQueueSize); + if (jobsQueueSize == 0) { + int userDecision = showCloseDialogNoFrame(); + if (userDecision == 0) { + exitImmediately(client); + } } - else if (userDecision == 1) { - exitImmediately(client); + else { + int userDecision = showCloseDialog(jobsQueueSize); + if (userDecision == 0) { + finishJobBeforeExit(client, jobsQueueSize); + } + else if (userDecision == 1) { + exitImmediately(client); + } } } } + public int showCloseDialogNoFrame() { + String[] exitJobOptions = {"Exit Immediately", "Do Nothing" }; + return JOptionPane.showOptionDialog(null, "Exit Now or Later", "Exit Now or Later", + JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, exitJobOptions, exitJobOptions[1]); // Make the "Do nothing" button the default one to avoid mistakes + } + public int showCloseDialog(int jobsQueueSize) { String[] exitJobOptions = { "Exit after current Jobs", "Exit Immediately", "Do Nothing" }; return JOptionPane.showOptionDialog(null, String.format(