From 078242e981bb1dc9dec02d3aef1b538d93859b26 Mon Sep 17 00:00:00 2001 From: Jan Kozusznik <jan@kozusznik.cz> Date: Wed, 17 Jan 2018 16:00:12 +0100 Subject: [PATCH] fix closing of window fix close operation --- .../main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java | 5 ++--- .../commands/CheckStatusOfHaaS.java | 6 ++++-- .../fiji/haas_snakemake_spim/commands/RunWithHaaS.java | 4 +++- .../ui/CheckStatusOfHaaSController.java | 10 ++++++---- .../ui/CheckStatusOfHaaSWindow.java | 8 ++++---- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java index 45d845b0..de2a03a5 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ModalDialogs.java @@ -1,12 +1,11 @@ package cz.it4i.fiji.haas.ui; import javax.swing.JDialog; -import javax.swing.WindowConstants; public class ModalDialogs { - public static <T extends JDialog>T doModal(T dialog) { + public static <T extends JDialog>T doModal(T dialog, int operation) { dialog.setModal(true); - dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + dialog.setDefaultCloseOperation(operation); new Thread(()->dialog.setVisible(true)).start(); return dialog; } diff --git a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java index bc9e974e..3ea5e71c 100644 --- a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java +++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/CheckStatusOfHaaS.java @@ -7,6 +7,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; +import javax.swing.WindowConstants; + import org.scijava.Context; import org.scijava.command.Command; import org.scijava.log.LogService; @@ -54,8 +56,8 @@ public class CheckStatusOfHaaS implements Command { downloadAll(); } else { CheckStatusOfHaaSWindow window; - window = ModalDialogs.doModal(new CheckStatusOfHaaSWindow(getFrame(), context)); - ProgressDialog dialog = ModalDialogs.doModal(new ProgressDialog(window)); + window = ModalDialogs.doModal(new CheckStatusOfHaaSWindow(getFrame(), context),WindowConstants.DISPOSE_ON_CLOSE); + ProgressDialog dialog = ModalDialogs.doModal(new ProgressDialog(window),WindowConstants.DO_NOTHING_ON_CLOSE); dialog.setTitle("Downloading info about jobs"); Collection<JobInfo> jobs = jobManager.getJobs(dialog); int count = 0; diff --git a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java index 96cda95d..3576aa7f 100644 --- a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java +++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/commands/RunWithHaaS.java @@ -9,6 +9,8 @@ import java.nio.file.Paths; import java.util.Collection; import java.util.stream.Collectors; +import javax.swing.WindowConstants; + import org.scijava.Context; import org.scijava.command.Command; import org.scijava.log.LogService; @@ -56,7 +58,7 @@ public class RunWithHaaS implements Command { jobManager = new JobManager(getWorkingDirectoryPath(), TestingConstants.getSettings()); jobManager.startJob( getContent(dataDirectory).stream().map(HaaSClient::getUploadingFile).collect(Collectors.toList()), - ModalDialogs.doModal(new ProgressDialog(getFrame()))); + ModalDialogs.doModal(new ProgressDialog(getFrame()), WindowConstants.DO_NOTHING_ON_CLOSE)); } catch (IOException e) { log.error(e); } diff --git a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java index 92fa18ed..5c4b41ae 100644 --- a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java +++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSController.java @@ -3,6 +3,8 @@ package cz.it4i.fiji.haas_snakemake_spim.ui; import java.awt.Window; import java.util.function.Function; +import javax.swing.WindowConstants; + import org.scijava.log.LogService; import org.scijava.plugin.Parameter; @@ -20,7 +22,6 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.input.ContextMenuEvent; - public class CheckStatusOfHaaSController { @Parameter @@ -46,9 +47,10 @@ public class CheckStatusOfHaaSController { } private void downloadData(ActionEvent event) { - Platform.runLater(() -> jobs.getSelectionModel().getSelectedItem().downloadData(ModalDialogs.doModal(new ProgressDialog(root)))); + Platform.runLater(() -> jobs.getSelectionModel().getSelectedItem() + .downloadData(ModalDialogs.doModal(new ProgressDialog(root), WindowConstants.DO_NOTHING_ON_CLOSE))); } - + private void initMenu() { ContextMenu cm = new ContextMenu(); MenuItem download = new MenuItem("Download"); @@ -63,7 +65,7 @@ public class CheckStatusOfHaaSController { return; } JobInfo job = jobs.getSelectionModel().getSelectedItem(); - + if (job != null && job.needsDownload()) { download.setDisable(false); } else { diff --git a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java index b2b13c67..5c7b7247 100644 --- a/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java +++ b/haas-snakemake-spim/src/main/java/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaSWindow.java @@ -15,17 +15,17 @@ public class CheckStatusOfHaaSWindow extends FXFrame<CheckStatusOfHaaSController @Parameter private Context context; - + private CheckStatusOfHaaSController controller; public CheckStatusOfHaaSWindow(Frame applicationFrame, Context context) { - super(applicationFrame,"/cz/it4i/fiji/haas/ui/CheckStatusOfHaaS.fxml"); + super(applicationFrame, "/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaS.fxml"); this.context = context; init(this::initController); this.setResizable(false); this.setTitle("Manage status of HaaS jobs"); } - + public void addJob(JobInfo job) { Platform.runLater(new Runnable() { @Override @@ -34,7 +34,7 @@ public class CheckStatusOfHaaSWindow extends FXFrame<CheckStatusOfHaaSController } }); } - + private void initController(CheckStatusOfHaaSController controller) { this.controller = controller; context.inject(controller); -- GitLab