summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/SettingsControl.java
diff options
context:
space:
mode:
authorIda Massow <massow@informatik.uni-luebeck.de>2011-05-29 20:19:17 +0200
committerIda Massow <massow@informatik.uni-luebeck.de>2011-05-29 20:19:17 +0200
commit794777c2fe8808444d2952d8abe287278d81f119 (patch)
tree014c8dce4acda3da13d1c6eb0e6b27a1a480f3fa /src/jrummikub/control/SettingsControl.java
parenteb7ccb46c5023fb8a3052f1c6d9fa5d2e384d15e (diff)
downloadJRummikub-794777c2fe8808444d2952d8abe287278d81f119.tar
JRummikub-794777c2fe8808444d2952d8abe287278d81f119.zip
Neuer Button im WinPanel mit funktion
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@309 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/SettingsControl.java')
-rw-r--r--src/jrummikub/control/SettingsControl.java101
1 files changed, 58 insertions, 43 deletions
diff --git a/src/jrummikub/control/SettingsControl.java b/src/jrummikub/control/SettingsControl.java
index 42d3659..dfaa552 100644
--- a/src/jrummikub/control/SettingsControl.java
+++ b/src/jrummikub/control/SettingsControl.java
@@ -1,9 +1,12 @@
package jrummikub.control;
import java.awt.Color;
+import java.util.ArrayList;
+import java.util.List;
import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
+import jrummikub.util.Connection;
import jrummikub.util.Event1;
import jrummikub.util.IEvent1;
import jrummikub.util.IListener;
@@ -18,6 +21,7 @@ import jrummikub.view.IView;
public class SettingsControl {
private IView view;
private Event1<GameSettings> startGameEvent = new Event1<GameSettings>();
+ private List<Connection> connections = new ArrayList<Connection>();
private GameSettings settings;
@@ -25,9 +29,9 @@ public class SettingsControl {
* Create a new settings control
*
* @param view
- * the view to use
+ * the view to use
* @param settings
- * initial game settings
+ * initial game settings
*/
public SettingsControl(IView view, GameSettings settings) {
this.view = view;
@@ -37,8 +41,8 @@ public class SettingsControl {
}
/**
- * the start game event is emitted when the user wants to start a game and the
- * settings made are valid
+ * the start game event is emitted when the user wants to start a game and
+ * the settings made are valid
*
* @return the event
*/
@@ -50,64 +54,70 @@ public class SettingsControl {
* Start the operation of the settings control
*/
public void startSettings() {
- view.getSettingsPanel().setInitialMeldThreshold(settings.getInitialMeldThreshold());
+ view.getSettingsPanel().setInitialMeldThreshold(
+ settings.getInitialMeldThreshold());
view.getSettingsPanel().setJokerNumber(settings.getJokerNumber());
-
- view.getSettingsPanel().getChangeInitialMeldThresholdEvent().add(new IListener1<Integer>() {
- @Override
- public void handle(Integer value) {
- settings.setInitialMeldThreshold(value);
- update();
- }
- });
-
- view.getSettingsPanel().getChangeJokerNumberEvent().add(new IListener1<Integer>() {
- @Override
- public void handle(Integer value) {
- settings.setJokerNumber(value);
- update();
- }
- });
-
+
+ connections.add(view.getSettingsPanel()
+ .getChangeInitialMeldThresholdEvent()
+ .add(new IListener1<Integer>() {
+ @Override
+ public void handle(Integer value) {
+ settings.setInitialMeldThreshold(value);
+ update();
+ }
+ }));
+
+ connections.add(view.getSettingsPanel().getChangeJokerNumberEvent()
+ .add(new IListener1<Integer>() {
+ @Override
+ public void handle(Integer value) {
+ settings.setJokerNumber(value);
+ update();
+ }
+ }));
+
addPlayerSettingsListeners();
view.showSettingsPanel(true);
}
private void addPlayerSettingsListeners() {
- view.getSettingsPanel().getStartGameEvent().add(new IListener() {
- @Override
- public void handle() {
- startGame();
- }
- });
- view.getSettingsPanel().getAddPlayerEvent().add(new IListener() {
- @Override
- public void handle() {
- addPlayer();
- }
- });
- view.getSettingsPanel().getRemovePlayerEvent()
+ connections.add(view.getSettingsPanel().getStartGameEvent()
+ .add(new IListener() {
+ @Override
+ public void handle() {
+ startGame();
+ }
+ }));
+ connections.add(view.getSettingsPanel().getAddPlayerEvent()
+ .add(new IListener() {
+ @Override
+ public void handle() {
+ addPlayer();
+ }
+ }));
+ connections.add(view.getSettingsPanel().getRemovePlayerEvent()
.add(new IListener1<Integer>() {
@Override
public void handle(Integer i) {
removePlayer(i);
}
- });
- view.getSettingsPanel().getChangePlayerColorEvent()
+ }));
+ connections.add(view.getSettingsPanel().getChangePlayerColorEvent()
.add(new IListener2<Integer, Color>() {
@Override
public void handle(Integer i, Color color) {
setPlayerColor(i, color);
}
- });
- view.getSettingsPanel().getChangePlayerNameEvent()
+ }));
+ connections.add(view.getSettingsPanel().getChangePlayerNameEvent()
.add(new IListener2<Integer, String>() {
@Override
public void handle(Integer i, String name) {
setPlayerName(i, name);
}
- });
+ }));
}
private void addPlayer() {
@@ -142,7 +152,8 @@ public class SettingsControl {
break;
}
- settings.getPlayerList().add(new PlayerSettings("Spieler " + num, color));
+ settings.getPlayerList().add(
+ new PlayerSettings("Spieler " + num, color));
update();
}
@@ -178,8 +189,9 @@ public class SettingsControl {
private void update() {
view.getSettingsPanel().enableRemovePlayerButtons(
settings.getPlayerList().size() > 2);
- view.getSettingsPanel().enableAddPlayerButton(
- settings.getPlayerList().size() < ISettingsPanel.PLAYER_COLORS.length);
+ view.getSettingsPanel()
+ .enableAddPlayerButton(
+ settings.getPlayerList().size() < ISettingsPanel.PLAYER_COLORS.length);
checkSettings();
@@ -220,6 +232,9 @@ public class SettingsControl {
view.showSettingsPanel(false);
+ for (Connection c : connections) {
+ c.remove();
+ }
startGameEvent.emit(settings);
}
}