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.java74
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
-
+
}
}