From 8074f567ae86b026fc27d657cebccef6cbcedc17 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 12 Aug 2015 19:24:49 +0200 Subject: [client] Fix positioning of Wizard --- .../java/org/openslx/dozmod/gui/wizard/Wizard.java | 28 ++++++++++++---------- 1 file 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 pages = new ArrayList<>(); private final JPanel contentPanel; private int currentPage = -1; + private boolean needsLayout = true; private final JButton btnPrev; private final JButton btnNext; @@ -89,21 +90,8 @@ 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); -- cgit v1.2.3-55-g7522