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 | 74 |
1 files changed, 66 insertions, 8 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 cf785d7c..ac77dfb6 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 @@ -1,13 +1,69 @@ package org.openslx.dozmod.gui.wizard; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Window; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.BorderFactory; +import javax.swing.BoxLayout; import javax.swing.JDialog; -import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import org.openslx.dozmod.gui.MainWindow; @SuppressWarnings("serial") -public abstract class Wizard extends JDialog { +public class Wizard extends JDialog { - public Wizard(JFrame parent) { + private final JLabel titleLabel; + private final JLabel messageLabel; + private final List<WizardPage> pages = new ArrayList<>(); + private final JPanel contentPanel; + + public Wizard(Window parent) { super(parent, ModalityType.APPLICATION_MODAL); + setLayout(new BorderLayout()); + JPanel header = new JPanel(); + header.setMinimumSize(new Dimension(0, 100)); + header.setOpaque(true); + header.setBackground(Color.WHITE); + header.setLayout(new BoxLayout(header, BoxLayout.PAGE_AXIS)); + header.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + // Labels in header + titleLabel = new JLabel("<title>"); + messageLabel = new JLabel("<message>"); + titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD)); + titleLabel.setForeground(Color.BLACK); + messageLabel.setForeground(Color.BLACK); + header.add(titleLabel); + header.add(messageLabel); + // Add header + getContentPane().add(header, BorderLayout.PAGE_START); + // Add content panel + contentPanel = new JPanel(); + contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.PAGE_AXIS)); + contentPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + add(contentPanel, BorderLayout.CENTER); + // + setPreferredSize(new Dimension(550, 420)); + setResizable(false); + MainWindow.centerShell(this); + addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent e) { + if (!pages.isEmpty()) { + WizardPage page = pages.get(0); + page.setVisible(true); + } + e.getWindow().pack(); + } + }); } public String getWindowTitle() { @@ -15,10 +71,12 @@ public abstract class Wizard extends JDialog { return null; } - protected abstract void addPages(); - protected final void addPage(WizardPage page) { - // TODO Auto-generated method stub + contentPanel.add(page); + if (!pages.isEmpty()) { + page.setVisible(false); + } + pages.add(page); } /** @@ -34,12 +92,12 @@ public abstract class Wizard extends JDialog { void updateHeader() { // TODO Auto-generated method stub - + } void updateButtons() { // TODO Auto-generated method stub - + } } |