diff options
author | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-18 16:19:20 +0200 |
---|---|---|
committer | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-18 16:19:20 +0200 |
commit | ac3c13c50b87abfc6e4959fabd5107990d1eb417 (patch) | |
tree | 6457f708d25e751dea1da503df77c0f74d4d30fa /src/jrummikub/control/network | |
parent | bc835d499f2fe3c8b9c5b6bc9cfca9d9666854e9 (diff) | |
download | JRummikub-ac3c13c50b87abfc6e4959fabd5107990d1eb417.tar JRummikub-ac3c13c50b87abfc6e4959fabd5107990d1eb417.zip |
Ca. 150 Zeilen überflüssigen Code entfernt
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@463 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network')
-rw-r--r-- | src/jrummikub/control/network/AbstractGameBeginControl.java | 67 | ||||
-rw-r--r-- | src/jrummikub/control/network/ConnectionControl.java | 33 |
2 files changed, 66 insertions, 34 deletions
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<Connection> connections = new ArrayList<Connection>(); 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<String, Color>() { + @Override + public void handle(String sender, Color color) { + List<PlayerSettings> 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<String, Color>() { - @Override - public void handle(String sender, Color color) { - List<PlayerSettings> 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<Color> colors = new HashSet<Color>( - Arrays.asList(ISettingsPanel.PLAYER_COLORS)); + Set<Color> colors = new HashSet<Color>(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 + "'"); } } |