diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java | 7 |
1 files changed, 6 insertions, 1 deletions
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 cd455e6a..b000659f 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,6 +39,7 @@ public abstract class Wizard extends JDialog { private int currentPage = -1; private boolean needsLayout = true; private boolean isCancelled = false; + protected boolean outOfOrderFlow = false; private final JButton btnPrev; private final JButton btnNext; @@ -164,6 +165,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; old.onPageLeave(); old.setVisible(false); @@ -250,6 +252,9 @@ public abstract class Wizard extends JDialog { } btnFinish.setEnabled(canFinish); // State of next button + if (outOfOrderFlow) { + btnNext.setEnabled(page.isComplete()); + } if (currentPage != -1 && getPage(currentPage) == page) { btnNext.setEnabled(currentPage + 1 < pages.size() && page.isComplete()); btnPrev.setEnabled(currentPage > 0 && getPage(currentPage - 1).canComeBack); @@ -275,7 +280,7 @@ public abstract class Wizard extends JDialog { return isCancelled; } - public final void doNext() { + public void doNext() { if (isPostFinish || !btnNext.isEnabled()) return; if (currentPage + 1 < pages.size()) { |