diff options
Diffstat (limited to 'src/jrummikub')
-rw-r--r-- | src/jrummikub/control/SettingsControl.java | 16 | ||||
-rw-r--r-- | src/jrummikub/view/ISettingsPanel.java | 33 | ||||
-rw-r--r-- | src/jrummikub/view/impl/SettingsPanel.java | 32 |
3 files changed, 31 insertions, 50 deletions
diff --git a/src/jrummikub/control/SettingsControl.java b/src/jrummikub/control/SettingsControl.java index 9cb216d..f12f1ad 100644 --- a/src/jrummikub/control/SettingsControl.java +++ b/src/jrummikub/control/SettingsControl.java @@ -56,10 +56,6 @@ public class SettingsControl { * Start the operation of the settings control */ public void startSettings() { - view.getSettingsPanel().setInitialMeldThreshold( - settings.getInitialMeldThreshold()); - view.getSettingsPanel().setJokerNumber(settings.getJokerNumber()); - connections.add(view.getSettingsPanel() .getChangeInitialMeldThresholdEvent() .add(new IListener1<Integer>() { @@ -79,6 +75,15 @@ public class SettingsControl { } })); + connections.add(view.getSettingsPanel().getChangeStoneSetNumberEvent() + .add(new IListener1<Integer>() { + @Override + public void handle(Integer value) { + settings.setStoneSetNumber(value); + update(); + } + })); + addPlayerSettingsListeners(); view.showSettingsPanel(true); @@ -237,7 +242,8 @@ public class SettingsControl { int totalStonesDealt = settings.getNumberOfStonesDealt() * settings.getPlayerList().size(); - int totalStones = settings.getHighestCard() * settings.getStoneSetNumber() + int totalStones = settings.getHighestCard() + * settings.getStoneSetNumber() * settings.getStoneColors().size() + settings.getJokerNumber(); if (totalStones <= totalStonesDealt) { diff --git a/src/jrummikub/view/ISettingsPanel.java b/src/jrummikub/view/ISettingsPanel.java index 3caa8cb..5c83f47 100644 --- a/src/jrummikub/view/ISettingsPanel.java +++ b/src/jrummikub/view/ISettingsPanel.java @@ -132,6 +132,13 @@ public interface ISettingsPanel { public void setGameSettings(GameSettings gameSettings); /** + * Emitted when the joker number is changed + * + * @return the event + */ + public IEvent1<Integer> getChangeJokerNumberEvent(); + + /** * Specifies the different kinds of settings errors that can be displayed */ public enum SettingsError { @@ -150,30 +157,4 @@ public interface ISettingsPanel { /** Only computer players added */ COMPUTER_PLAYERS_ONLY_WARNING } - - /** - * Sets the initial meld threshold in the option pane - * - * @param value - * initial meld threshold - */ - public void setInitialMeldThreshold(int value); - - public void setStoneSetNumber(int number); - - /** - * Emitted when the joker number is changed - * - * @return the event - */ - public IEvent1<Integer> getChangeJokerNumberEvent(); - - - /** - * Sets the joker number in the option pane - * - * @param jokerNumber - * the joker number - */ - public void setJokerNumber(int jokerNumber); }
\ No newline at end of file diff --git a/src/jrummikub/view/impl/SettingsPanel.java b/src/jrummikub/view/impl/SettingsPanel.java index 1eb8e45..5eb82fb 100644 --- a/src/jrummikub/view/impl/SettingsPanel.java +++ b/src/jrummikub/view/impl/SettingsPanel.java @@ -65,6 +65,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel { private List<PlayerSettingsPanel> playerSettingsPanels = new ArrayList<PlayerSettingsPanel>(); private JSpinner initialMeldThresholdSpinner; + private JSpinner stoneSetNumberSpinner; private JSpinner jokerNumberSpinner; private Event startGameEvent = new Event(); @@ -174,6 +175,11 @@ class SettingsPanel extends JPanel implements ISettingsPanel { updatePlayerSettingsPanel(i, gameSettings.getPlayerList().get(i)); } + initialMeldThresholdSpinner.setValue(gameSettings + .getInitialMeldThreshold()); + stoneSetNumberSpinner.setValue(gameSettings.getStoneSetNumber()); + jokerNumberSpinner.setValue(gameSettings.getJokerNumber()); + playerSettingsViewport.revalidate(); } @@ -241,13 +247,17 @@ class SettingsPanel extends JPanel implements ISettingsPanel { initialMeldThresholdSpinner = makeOptionSpinner(0, 1, 999, 1, changeInitialMeldThresholdEvent); - makeOptionLabel(1, "Jokeranzahl:"); - jokerNumberSpinner = makeOptionSpinner(1, 1, 999, 1, + makeOptionLabel(1, "Anzahl Steins\u00e4tze:"); + stoneSetNumberSpinner = makeOptionSpinner(1, 1, 999, 1, + changeStoneSetNumberEvent); + + makeOptionLabel(2, "Jokeranzahl:"); + jokerNumberSpinner = makeOptionSpinner(2, 1, 999, 1, changeJokerNumberEvent); GridBagConstraints c = new GridBagConstraints(); c.gridx = 1; - c.gridy = 2; + c.gridy = 3; c.fill = GridBagConstraints.BOTH; c.weightx = 1; c.weighty = 1; @@ -503,28 +513,12 @@ class SettingsPanel extends JPanel implements ISettingsPanel { } @Override - public void setInitialMeldThreshold(int value) { - initialMeldThresholdSpinner.setValue(value); - } - - @Override public IEvent1<Integer> getChangeJokerNumberEvent() { return changeJokerNumberEvent; } @Override - public void setJokerNumber(int jokerNumber) { - jokerNumberSpinner.setValue(jokerNumber); - } - - @Override public IEvent2<Integer, Type> getChangePlayerTypeEvent() { return changePlayerTypeEvent; } - - @Override - public void setStoneSetNumber(int number) { - // TODO Auto-generated method stub - - } } |