summaryrefslogtreecommitdiffstats
path: root/src/jrummikub
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub')
-rw-r--r--src/jrummikub/control/SettingsControl.java16
-rw-r--r--src/jrummikub/view/ISettingsPanel.java33
-rw-r--r--src/jrummikub/view/impl/SettingsPanel.java32
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
-
- }
}