diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-14 04:55:24 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-14 04:55:24 +0200 |
commit | ebacf1ae7494abc3a80cf1ec242a6202d6438323 (patch) | |
tree | 9052767ea3cc2dcdbf20926c47224f1304ae1585 /src/jrummikub/control/network/GameJoinControl.java | |
parent | 4879b7b93eaff1f80056d78e19271d6418ec6534 (diff) | |
download | JRummikub-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.java | 51 |
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(); + } + } +} |