summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/impl/SettingsPanel.java
diff options
context:
space:
mode:
authorJannis Harder <harder@informatik.uni-luebeck.de>2011-05-29 15:31:58 +0200
committerJannis Harder <harder@informatik.uni-luebeck.de>2011-05-29 15:31:58 +0200
commit7f89a1ce1067ec4ad31e0496bd679f70939aca10 (patch)
tree1cb657232dce8af662a1f7f5fd71230f94b75678 /src/jrummikub/view/impl/SettingsPanel.java
parentffbfc751c95b483f72bbb9ff47e4f04eef2c83cb (diff)
downloadJRummikub-7f89a1ce1067ec4ad31e0496bd679f70939aca10.tar
JRummikub-7f89a1ce1067ec4ad31e0496bd679f70939aca10.zip
Added options UI
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@294 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/SettingsPanel.java')
-rw-r--r--src/jrummikub/view/impl/SettingsPanel.java73
1 files changed, 68 insertions, 5 deletions
diff --git a/src/jrummikub/view/impl/SettingsPanel.java b/src/jrummikub/view/impl/SettingsPanel.java
index e96b19d..862aa32 100644
--- a/src/jrummikub/view/impl/SettingsPanel.java
+++ b/src/jrummikub/view/impl/SettingsPanel.java
@@ -8,6 +8,7 @@ import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
+import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -15,18 +16,24 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
+import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.Icon;
import javax.swing.JButton;
+import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
+import javax.swing.JSpinner;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
+import javax.swing.SpinnerNumberModel;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
@@ -44,13 +51,15 @@ import jrummikub.view.ISettingsPanel;
class SettingsPanel extends JPanel implements ISettingsPanel {
private JPanel playerSetupPanel;
private JPanel playerSettingsViewport;
- private JPanel ruleSetupPanel;
+ private JPanel optionsPanel;
private JButton addPlayerButton;
private JLabel errorMessageLabel;
private JButton startButton;
private boolean removeButtonsEnabled = true;
private List<PlayerSettingsPanel> playerSettingsPanels = new ArrayList<PlayerSettingsPanel>();
+
+ private JSpinner initialMeldThresholdSpinner;
private Event startGameEvent = new Event();
private Event addPlayerEvent = new Event();
@@ -185,8 +194,57 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
addPlayerPanel.add(addPlayerButton);
}
- private void createRuleSetupPanel() {
- ruleSetupPanel = new JPanel();
+ private JComponent makeFiller() {
+ return new Box.Filler(new Dimension(0, 0), new Dimension(0, 0), new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
+ }
+
+ private void createOptionsPanel() {
+ optionsPanel = new JPanel();
+ GridBagLayout layout = new GridBagLayout();
+ optionsPanel.setLayout(layout);
+
+ GridBagConstraints labelC = new GridBagConstraints();
+ GridBagConstraints optionC = new GridBagConstraints();
+
+ labelC.anchor = GridBagConstraints.EAST;
+ labelC.gridx = 0;
+ labelC.insets = new Insets(5,5,5,5);
+ optionC.anchor = GridBagConstraints.WEST;
+ optionC.gridx = 1;
+ optionC.insets = new Insets(5,5,5,5);
+
+ JLabel label = new JLabel("Auslegeschranke:");
+ labelC.gridy = 0;
+ optionsPanel.add(label, labelC);
+
+ initialMeldThresholdSpinner = new JSpinner();
+ initialMeldThresholdSpinner.setModel(new SpinnerNumberModel(1, 1, 999, 1));
+ initialMeldThresholdSpinner.setPreferredSize(new Dimension(60, initialMeldThresholdSpinner.getMinimumSize().height));
+ initialMeldThresholdSpinner.addChangeListener(new ChangeListener() {
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ changeInitialMeldThresholdEvent.emit((Integer)initialMeldThresholdSpinner.getValue());
+ }
+ });
+ optionC.gridy = 0;
+ optionsPanel.add(initialMeldThresholdSpinner, optionC);
+
+
+ label = new JLabel("Dinge:");
+ labelC.gridx = 0;
+ labelC.gridy = 1;
+ optionsPanel.add(label, labelC);
+
+ labelC.gridx = 1;
+ labelC.gridy = 2;
+ labelC.fill = GridBagConstraints.BOTH;
+ labelC.weightx = 1;
+ labelC.weighty = 1;
+ optionsPanel.add(makeFiller(), labelC);
+
+
+ // TODO Knöpfe für Dinge
}
SettingsPanel() {
@@ -197,8 +255,8 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
createPlayerSetupPanel();
tabbedPane.addTab("Spieler", playerSetupPanel);
- createRuleSetupPanel();
- tabbedPane.addTab("Regeln", ruleSetupPanel);
+ createOptionsPanel();
+ tabbedPane.addTab("Optionen", optionsPanel);
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
@@ -357,4 +415,9 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
}
}
}
+
+ @Override
+ public void setInitialMeldThreshold(int value) {
+ initialMeldThresholdSpinner.setValue(value);
+ }
}