summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameJoinControl.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-14 04:55:24 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-14 04:55:24 +0200
commitebacf1ae7494abc3a80cf1ec242a6202d6438323 (patch)
tree9052767ea3cc2dcdbf20926c47224f1304ae1585 /src/jrummikub/control/network/GameJoinControl.java
parent4879b7b93eaff1f80056d78e19271d6418ec6534 (diff)
downloadJRummikub-ebacf1ae7494abc3a80cf1ec242a6202d6438323.tar
JRummikub-ebacf1ae7494abc3a80cf1ec242a6202d6438323.zip
Implement joining games
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@434 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network/GameJoinControl.java')
-rw-r--r--src/jrummikub/control/network/GameJoinControl.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/jrummikub/control/network/GameJoinControl.java b/src/jrummikub/control/network/GameJoinControl.java
new file mode 100644
index 0000000..c436887
--- /dev/null
+++ b/src/jrummikub/control/network/GameJoinControl.java
@@ -0,0 +1,51 @@
+package jrummikub.control.network;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jrummikub.util.Connection;
+import jrummikub.util.GameData;
+import jrummikub.util.IListener1;
+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 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());
+
+ connections.add(connectionControl.getGameOfferEvent().add(
+ new IListener1<GameData>() {
+ @Override
+ public void handle(GameData data) {
+ if (data.getGameID().equals(gameData.getGameID())) {
+ gameData.setGameSettings(data.getGameSettings());
+ view.getSettingsPanel().setGameSettings(data.getGameSettings());
+ }
+ }
+ }));
+ }
+
+ public void startGameJoin() {
+ view.showSettingsPanel(true);
+ }
+
+ public void abort() {
+ // TODO Implement abort
+
+ for (Connection c : connections) {
+ c.remove();
+ }
+ }
+}