diff options
Diffstat (limited to 'src/jrummikub/view/impl/SettingsPanel.java')
-rw-r--r-- | src/jrummikub/view/impl/SettingsPanel.java | 50 |
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 { |