From bf24a9279ae23336cc8e14d6e1c40f1a2a0c33a7 Mon Sep 17 00:00:00 2001 From: Bennet Gerlach Date: Sun, 19 Jun 2011 02:47:38 +0200 Subject: Start game button in a network game sends an event git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@479 72836036-5685-4462-b002-a69064685172 --- .../control/network/GameOfferControl.java | 38 +++++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'src/jrummikub/control/network/GameOfferControl.java') diff --git a/src/jrummikub/control/network/GameOfferControl.java b/src/jrummikub/control/network/GameOfferControl.java index 0c94c1f..8c5820d 100644 --- a/src/jrummikub/control/network/GameOfferControl.java +++ b/src/jrummikub/control/network/GameOfferControl.java @@ -7,6 +7,7 @@ import jrummikub.model.GameSettings; import jrummikub.model.PlayerSettings; import jrummikub.model.PlayerSettings.Type; import jrummikub.util.GameData; +import jrummikub.util.IListener; import jrummikub.util.IListener1; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.IView; @@ -20,16 +21,15 @@ public class GameOfferControl extends AbstractGameBeginControl { * Creates new game offer control * * @param connectionControl - * for events (listening and handling) + * for events (listening and handling) * @param settings - * the game settings for player list, colors, names + * the game settings for player list, colors, names * @param view - * the view + * the view */ public GameOfferControl(final IConnectionControl connectionControl, final GameSettings settings, final IView view) { - super(connectionControl, view, - new GameData(UUID.randomUUID(), settings), + super(connectionControl, view, new GameData(UUID.randomUUID(), settings), SettingsMode.NETWORK_OFFER); connections.add(connectionControl.getGameJoinEvent().add( @@ -54,11 +54,10 @@ public class GameOfferControl extends AbstractGameBeginControl { new IListener1() { @Override public void handle(String sender) { - List players = gameData - .getGameSettings().getPlayerList(); + List players = gameData.getGameSettings() + .getPlayerList(); for (PlayerSettings s : players) { - if (s.getName().equals(sender) - && s.getType() == Type.NETWORK) { + if (s.getName().equals(sender) && s.getType() == Type.NETWORK) { s.setType(Type.VACANT); s.setName("Offen"); break; @@ -68,6 +67,27 @@ public class GameOfferControl extends AbstractGameBeginControl { connectionControl.offerGame(gameData); } })); + + connections.add(view.getSettingsPanel().getStartGameEvent() + .add(new IListener() { + @Override + public void handle() { + List players = gameData.getGameSettings() + .getPlayerList(); + for (PlayerSettings s : players) { + if (s.getType() == Type.NETWORK) { + startGame(); + return; + } + } + } + })); + } + + @Override + protected void startGame() { + super.startGame(); + connectionControl.startGame(); } /** -- cgit v1.2.3