summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java
diff options
context:
space:
mode:
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.java28
1 files changed, 15 insertions, 13 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 d2c5019c..75aefae2 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
@@ -35,6 +35,7 @@ public abstract class Wizard extends JDialog {
private final List<WizardPage> pages = new ArrayList<>();
private final JPanel contentPanel;
private int currentPage = -1;
+ private boolean needsLayout = true;
private final JButton btnPrev;
private final JButton btnNext;
@@ -89,22 +90,9 @@ public abstract class Wizard extends JDialog {
//
setPreferredSize(new Dimension(550, 420));
setResizable(false);
- // TODO this seems broken: it only center the (still) empty frame
- // later when the page is shown, it won't be centered correctly.
- // Centered is the top left corner of this frame, not the actual
- // center of the pages!
- MainWindow.centerShell(this);
// Window events
addWindowListener(new WindowAdapter() {
@Override
- public void windowOpened(WindowEvent e) {
- e.getWindow().pack();
- if (!pages.isEmpty()) {
- showPage(0);
- }
- }
-
- @Override
public void windowClosing(WindowEvent we) {
doCancel();
}
@@ -136,6 +124,20 @@ public abstract class Wizard extends JDialog {
});
}
+ @SuppressWarnings("deprecation")
+ @Override
+ public void show() {
+ if (needsLayout) {
+ needsLayout = false;
+ pack();
+ if (!pages.isEmpty()) {
+ showPage(0);
+ }
+ MainWindow.centerShell(this);
+ }
+ super.show();
+ }
+
private void showPage(int index) {
if (currentPage != -1) {
WizardPage old = pages.get(currentPage);