diff options
author | Simon Rettberg | 2022-03-17 13:11:39 +0100 |
---|---|---|
committer | Simon Rettberg | 2022-03-17 13:11:39 +0100 |
commit | bff3e6f556534c04ad192a171de81bcc6c3a7334 (patch) | |
tree | 1499674f2ce9d8a69ed84e6ce9036b6014fdec97 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java | |
parent | [client] Add timestamps to file logger (diff) | |
download | tutor-module-bff3e6f556534c04ad192a171de81bcc6c3a7334.tar.gz tutor-module-bff3e6f556534c04ad192a171de81bcc6c3a7334.tar.xz tutor-module-bff3e6f556534c04ad192a171de81bcc6c3a7334.zip |
[client] Try to do a better job cleaning up when closing wizards
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 | 26 |
1 files changed, 23 insertions, 3 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 3c5e27ba..6490180b 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 @@ -275,14 +275,14 @@ public abstract class Wizard extends JDialog { if (outOfOrderPage != null) { outOfOrderPage.onPageLeave(); } - dispose(); + cleanup(); } } protected final void doFinish() { if (isPostFinish) { postFinishPage.onPageLeave(); - dispose(); + cleanup(); return; } if (!btnFinish.isEnabled()) @@ -297,7 +297,7 @@ public abstract class Wizard extends JDialog { } postFinishPage = performFinish(); if (postFinishPage == null) { - dispose(); + cleanup(); } else { isPostFinish = true; btnPrev.setVisible(false); @@ -355,5 +355,25 @@ public abstract class Wizard extends JDialog { protected WizardPage performFinish() { return null; } + + /** + * Called when this wizard is closed, either by aborting or + * by finishing it. + */ + private final void cleanup() + { + doCleanup(); + dispose(); + pages.clear(); + postFinishPage = null; + outOfOrderPage = null; + } + + /** + * Force all derived wizards to think about what + * references they might want to free when they're + * being closed. + */ + protected abstract void doCleanup(); } |