summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameJoinControl.java
diff options
context:
space:
mode:
authorJannis Harder <harder@informatik.uni-luebeck.de>2011-06-18 02:34:07 +0200
committerJannis Harder <harder@informatik.uni-luebeck.de>2011-06-18 02:34:07 +0200
commit626f4bd9ab6f9143851768b3b2f0a756a9d45f01 (patch)
tree99ff752cb55c9680e17c410a4d6ebdc4d8e03380 /src/jrummikub/control/network/GameJoinControl.java
parentfbf5cc3572d9117b18c32c677bc030ab8a8c20ce (diff)
downloadJRummikub-626f4bd9ab6f9143851768b3b2f0a756a9d45f01.tar
JRummikub-626f4bd9ab6f9143851768b3b2f0a756a9d45f01.zip
Implemented color changing in game begin panels
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@455 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network/GameJoinControl.java')
-rw-r--r--src/jrummikub/control/network/GameJoinControl.java74
1 files changed, 7 insertions, 67 deletions
diff --git a/src/jrummikub/control/network/GameJoinControl.java b/src/jrummikub/control/network/GameJoinControl.java
index afb78d4..1d29df4 100644
--- a/src/jrummikub/control/network/GameJoinControl.java
+++ b/src/jrummikub/control/network/GameJoinControl.java
@@ -1,43 +1,20 @@
package jrummikub.control.network;
-import java.awt.Color;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-
import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
import jrummikub.model.PlayerSettings.Type;
-import jrummikub.util.Connection;
import jrummikub.util.Event;
import jrummikub.util.GameData;
-import jrummikub.util.IListener;
import jrummikub.util.IListener1;
-import jrummikub.util.IListener2;
-import jrummikub.util.IListener3;
-import jrummikub.view.ISettingsPanel;
-import jrummikub.view.IView;
import jrummikub.view.ISettingsPanel.SettingsMode;
+import jrummikub.view.IView;
-public class GameJoinControl {
- private List<Connection> connections = new ArrayList<Connection>();
- private GameData gameData;
- private ConnectionControl connectionControl;
- private IView view;
+public class GameJoinControl extends AbstractGameBeginControl {
private Event backEvent = new Event();
public GameJoinControl(final ConnectionControl connectionControl,
final GameData gameData, final IView view) {
- this.connectionControl = connectionControl;
- this.gameData = gameData;
- this.view = view;
-
- view.getSettingsPanel().setSettingsMode(SettingsMode.NETWORK_JOIN);
- view.getSettingsPanel().enableAddPlayerButton(false);
- view.getSettingsPanel().setGameSettings(gameData.getGameSettings());
+ super(connectionControl, view, gameData, SettingsMode.NETWORK_JOIN);
connections.add(connectionControl.getGameOfferEvent().add(
new IListener1<GameData>() {
@@ -50,38 +27,10 @@ public class GameJoinControl {
gameData.setGameSettings(settings);
- updateSettingsPanel(settings);
+ updateSettingsPanel();
}
}
}));
- connections.add(view.getSettingsPanel().getBackEvent().add(
- new IListener() {
- @Override
- public void handle() {
- goBack();
- }
- }));
- connections.add(view.getSettingsPanel().getChangePlayerColorEvent()
- .add(new IListener2<Integer, Color>() {
- @Override
- public void handle(Integer playerNumber, Color color) {
- // TODO Auto-generated method stub
-
- }
- }));
- }
-
- private void updateSettingsPanel(GameSettings settings) {
- view.getSettingsPanel().setGameSettings(settings);
-
- Set<Color> colors = new HashSet<Color>(Arrays
- .asList(ISettingsPanel.PLAYER_COLORS));
-
- for (PlayerSettings player : settings.getPlayerList()) {
- colors.remove(player.getColor());
- }
-
- view.getSettingsPanel().setPlayerColors(colors);
}
private void fixGameSettings(GameSettings settings) {
@@ -94,8 +43,8 @@ public class GameJoinControl {
}
}
}
-
- public Event getBackEvent(){
+
+ public Event getBackEvent() {
return backEvent;
}
@@ -106,20 +55,11 @@ public class GameJoinControl {
/**
* Aborts joining and goes back to game list
*/
- private void goBack() {
+ protected void goBack() {
abort();
connectionControl.leaveGame();
view.showSettingsPanel(false);
backEvent.emit();
}
- /**
- * Aborts joining
- */
- public void abort() {
- for (Connection c : connections) {
- c.remove();
- }
-
- }
}