From 7f7c040c3304970a36ee593c89f00a7d462d68f2 Mon Sep 17 00:00:00 2001 From: Stephan Schwär Date: Fri, 16 Oct 2020 13:47:17 +0900 Subject: [client] Cancel conversion worker on wizard cancel --- .../org/openslx/dozmod/gui/wizard/ImageCreationWizard.java | 8 ++++---- .../src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java index e8847152..05397d70 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java @@ -226,8 +226,8 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif @Override protected final void doPrevious() { - if (outOfOrderFlow) { - outOfOrderFlow = false; + if (outOfOrderPage != null) { + outOfOrderPage = null; returnAfterOutOfOrderPage(state.imageUploadPage, state.conversionPage); } else { super.doPrevious(); @@ -236,8 +236,8 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif @Override public final void doNext() { - if (outOfOrderFlow) { - outOfOrderFlow = false; + if (outOfOrderPage != null) { + outOfOrderPage = null; returnAfterOutOfOrderPage(state.imageUploadPage, state.conversionPage); } else { super.doNext(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java index b000659f..35cacd2f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java @@ -39,7 +39,8 @@ public abstract class Wizard extends JDialog { private int currentPage = -1; private boolean needsLayout = true; private boolean isCancelled = false; - protected boolean outOfOrderFlow = false; + // Reference if an out of order page is shown. + protected WizardPage outOfOrderPage = null; private final JButton btnPrev; private final JButton btnNext; @@ -165,7 +166,7 @@ public abstract class Wizard extends JDialog { // Show an out of order page e.g. for converting an image public void showOutOfOrderPage(WizardPage page) { WizardPage old = getPage(currentPage); - outOfOrderFlow = true; + outOfOrderPage = page; old.onPageLeave(); old.setVisible(false); @@ -252,7 +253,7 @@ public abstract class Wizard extends JDialog { } btnFinish.setEnabled(canFinish); // State of next button - if (outOfOrderFlow) { + if (outOfOrderPage != null) { btnNext.setEnabled(page.isComplete()); } if (currentPage != -1 && getPage(currentPage) == page) { @@ -311,6 +312,9 @@ public abstract class Wizard extends JDialog { if (isPostFinish) { postFinishPage.onPageLeave(); } + if (outOfOrderPage != null) { + outOfOrderPage.onPageLeave(); + } dispose(); } } -- cgit v1.2.3-55-g7522