summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/impl/SettingsPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/view/impl/SettingsPanel.java')
-rw-r--r--src/jrummikub/view/impl/SettingsPanel.java50
1 files changed, 40 insertions, 10 deletions
diff --git a/src/jrummikub/view/impl/SettingsPanel.java b/src/jrummikub/view/impl/SettingsPanel.java
index 8864b7b..740cfc8 100644
--- a/src/jrummikub/view/impl/SettingsPanel.java
+++ b/src/jrummikub/view/impl/SettingsPanel.java
@@ -81,6 +81,8 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
private Map<StoneColor, JToggleButton> colorButtons = new HashMap<StoneColor, JToggleButton>();
private Event startGameEvent = new Event();
+ private Event loadGameEvent = new Event();
+ private Event networkGameEvent = new Event();
private Event addPlayerEvent = new Event();
private Event1<Integer> removePlayerEvent = new Event1<Integer>();
private Event2<Integer, Color> changePlayerColorEvent = new Event2<Integer, Color>();
@@ -93,12 +95,20 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
private Event1<Integer> changeHighestValueEvent = new Event1<Integer>();
private Event1<Set<StoneColor>> changeStoneColorsEvent = new Event1<Set<StoneColor>>();
private Event1<Integer> changeTimeEvent = new Event1<Integer>();
-
+
@Override
public IEvent getStartGameEvent() {
return startGameEvent;
}
+ IEvent getLoadGameEvent() {
+ return loadGameEvent;
+ }
+
+ IEvent getNetworkGameEvent() {
+ return networkGameEvent;
+ }
+
@Override
public IEvent getAddPlayerEvent() {
return addPlayerEvent;
@@ -138,7 +148,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
public IEvent1<Integer> getChangeHighestValueEvent() {
return changeHighestValueEvent;
}
-
+
@Override
public IEvent1<Integer> getChangeJokerNumberEvent() {
return changeJokerNumberEvent;
@@ -318,7 +328,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
makeOptionLabel(4, "Jokeranzahl:");
jokerNumberSpinner = makeOptionSpinner(4, 1, 999, 1, changeJokerNumberEvent);
-
+
makeOptionLabel(5, "Zeit für Spielzug:");
timeSpinner = makeOptionSpinner(5, 1, 999, 1, changeTimeEvent);
@@ -431,17 +441,37 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
c.weighty = 0;
add(errorMessageLabel, c);
- startButton = new JButton("Spiel starten");
- startButton.addActionListener(new ActionListener() {
+ c.gridwidth = 1;
+ startButton = addButton("Spiel starten", startGameEvent, c);
+
+ c.weightx = 0;
+ add(Box.createHorizontalStrut(10), c);
+
+ c.weightx = 1;
+ addButton("Spiel laden...", loadGameEvent, c);
+
+ c.weightx = 0;
+ add(Box.createHorizontalStrut(10), c);
+
+ c.weightx = 1;
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ addButton("Netzwerkspiel...", networkGameEvent, c);
+
+ setBorder(new CompoundBorder(new LineBorder(Color.BLACK), new EmptyBorder(
+ 10, 10, 10, 10)));
+ }
+
+ private JButton addButton(String title, final Event event,
+ GridBagConstraints c) {
+ JButton button = new JButton(title);
+ button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- startGameEvent.emit();
+ event.emit();
}
});
- add(startButton, c);
-
- setBorder(new CompoundBorder(new LineBorder(Color.BLACK), new EmptyBorder(
- 10, 10, 10, 10)));
+ add(button, c);
+ return button;
}
private class PlayerSettingsPanel extends JPanel {