From ac3c13c50b87abfc6e4959fabd5107990d1eb417 Mon Sep 17 00:00:00 2001 From: Ida Massow Date: Sat, 18 Jun 2011 16:19:20 +0200 Subject: =?UTF-8?q?Ca.=20150=20Zeilen=20=C3=BCberfl=C3=BCssigen=20Code=20e?= =?UTF-8?q?ntfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@463 72836036-5685-4462-b002-a69064685172 --- .../control/network/AbstractGameBeginControl.java | 67 +++++++++++++++------- .../control/network/ConnectionControl.java | 33 ++++++----- 2 files changed, 66 insertions(+), 34 deletions(-) (limited to 'src/jrummikub/control/network') diff --git a/src/jrummikub/control/network/AbstractGameBeginControl.java b/src/jrummikub/control/network/AbstractGameBeginControl.java index 598126a..fd3b546 100644 --- a/src/jrummikub/control/network/AbstractGameBeginControl.java +++ b/src/jrummikub/control/network/AbstractGameBeginControl.java @@ -18,6 +18,10 @@ import jrummikub.view.ISettingsPanel; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.IView; +/** + * Abstract class for network game controls inbetween choosing and starting a + * game + */ public abstract class AbstractGameBeginControl { protected List connections = new ArrayList(); protected GameData gameData; @@ -25,6 +29,18 @@ public abstract class AbstractGameBeginControl { protected IView view; protected Event backEvent = new Event(); + /** + * Create a new game begin control + * + * @param connection + * connection control for mesages and events + * @param view + * the view + * @param gameData + * game data of chosen game + * @param settingsMode + * mode of settings panel + */ public AbstractGameBeginControl(IConnectionControl connection, IView view, final GameData gameData, SettingsMode settingsMode) { this.connectionControl = connection; @@ -35,8 +51,29 @@ public abstract class AbstractGameBeginControl { view.getSettingsPanel().enableAddPlayerButton(false); updateSettingsPanel(); - connections.add(view.getSettingsPanel().getBackEvent() - .add(new IListener() { + addViewListeners(view, gameData); + + connections.add(connectionControl.getChangeColorEvent().add( + new IListener2() { + @Override + public void handle(String sender, Color color) { + List players = gameData + .getGameSettings().getPlayerList(); + for (PlayerSettings s : players) { + if (s.getName().equals(sender) + && s.getType() == Type.NETWORK) { + s.setColor(color); + break; + } + } + updateSettingsPanel(); + } + })); + } + + private void addViewListeners(IView view, final GameData gameData) { + connections.add(view.getSettingsPanel().getBackEvent().add( + new IListener() { @Override public void handle() { goBack(); @@ -62,26 +99,16 @@ public abstract class AbstractGameBeginControl { updateSettingsPanel(); } })); - connections.add(connectionControl.getChangeColorEvent().add( - new IListener2() { - @Override - public void handle(String sender, Color color) { - List players = gameData - .getGameSettings().getPlayerList(); - for (PlayerSettings s : players) { - if (s.getName().equals(sender) - && s.getType() == Type.NETWORK) { - s.setColor(color); - break; - } - } - updateSettingsPanel(); - } - })); } protected abstract void goBack(); + /** + * The back event is emitted when the player wants to go back to the + * previous control and panel + * + * @return the event + */ public Event getBackEvent() { return backEvent; } @@ -96,8 +123,8 @@ public abstract class AbstractGameBeginControl { protected void updateSettingsPanel() { view.getSettingsPanel().setGameSettings(gameData.getGameSettings()); - Set colors = new HashSet( - Arrays.asList(ISettingsPanel.PLAYER_COLORS)); + Set colors = new HashSet(Arrays + .asList(ISettingsPanel.PLAYER_COLORS)); for (PlayerSettings player : gameData.getGameSettings().getPlayerList()) { colors.remove(player.getColor()); diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java index 28684b2..e435309 100644 --- a/src/jrummikub/control/network/ConnectionControl.java +++ b/src/jrummikub/control/network/ConnectionControl.java @@ -323,20 +323,25 @@ class ConnectionControl implements IConnectionControl { if (!currentGame.getGameID().equals(uuid)) { return; } - if (messageType.equals("game_join")) { - gameJoinEvent.emit(sender); - } else if (messageType.equals("game_leave")) { - gameLeaveEvent.emit(sender); - } else if (messageType.equals("game_join_ack")) { - gameJoinAckEvent - .emit(Boolean.valueOf(extension.getValue("ack"))); - } else if (messageType.equals("change_color")) { - changeColorEvent.emit(sender, (Color) Base64 - .decodeToObject(extension.getValue("color"))); - } else { - System.err.println("Received unrecognized message of type '" - + messageType + "'"); - } + messagesDuringGame(extension, sender, messageType); + } + } + + private void messagesDuringGame(DefaultPacketExtension extension, + String sender, String messageType) { + if (messageType.equals("game_join")) { + gameJoinEvent.emit(sender); + } else if (messageType.equals("game_leave")) { + gameLeaveEvent.emit(sender); + } else if (messageType.equals("game_join_ack")) { + gameJoinAckEvent + .emit(Boolean.valueOf(extension.getValue("ack"))); + } else if (messageType.equals("change_color")) { + changeColorEvent.emit(sender, (Color) Base64 + .decodeToObject(extension.getValue("color"))); + } else { + System.err.println("Received unrecognized message of type '" + + messageType + "'"); } } -- cgit v1.2.3