diff options
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r-- | src/jrummikub/control/RoundControl.java | 18 | ||||
-rw-r--r-- | src/jrummikub/control/network/ConnectionControl.java | 5 | ||||
-rw-r--r-- | src/jrummikub/control/network/GameJoinControl.java | 16 | ||||
-rw-r--r-- | src/jrummikub/control/network/GameOfferControl.java | 17 | ||||
-rw-r--r-- | src/jrummikub/control/network/NetworkControl.java | 58 |
5 files changed, 79 insertions, 35 deletions
diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java index f060420..fb4ab0c 100644 --- a/src/jrummikub/control/RoundControl.java +++ b/src/jrummikub/control/RoundControl.java @@ -228,10 +228,12 @@ public class RoundControl { } else { List<Stone> markedStones = new ArrayList<Stone>(); for (Pair<StoneSet, Position> set : clonedTable) { - if (!set.getFirst().isValid(roundState.getGameSettings())) { - for (Stone stone : set.getFirst()) { - markedStones.add(stone); - } + if (set.getFirst().isValid(roundState.getGameSettings())) { + continue; + } + for (Stone stone : set.getFirst()) { + markedStones.add(stone); + } } view.setStoneCollectionHidden(true); @@ -401,8 +403,8 @@ public class RoundControl { .getGameSettings()); } - bestScore = updateBestScore(bestScore, -stonePoints, - playerHand.getSize()); + bestScore = updateBestScore(bestScore, -stonePoints, playerHand + .getSize()); points.add(-stonePoints); pointSum += stonePoints; @@ -424,8 +426,8 @@ public class RoundControl { private static Pair<Integer, Integer> updateBestScore( Pair<Integer, Integer> bestScore, int stonePoints, int size) { if (bestScore.getFirst() == stonePoints) { - return new Pair<Integer, Integer>(stonePoints, Math.min( - bestScore.getSecond(), size)); + return new Pair<Integer, Integer>(stonePoints, Math.min(bestScore + .getSecond(), size)); } else if (bestScore.getFirst() < stonePoints) { return new Pair<Integer, Integer>(stonePoints, size); } diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java index ca8537d..28684b2 100644 --- a/src/jrummikub/control/network/ConnectionControl.java +++ b/src/jrummikub/control/network/ConnectionControl.java @@ -299,6 +299,11 @@ class ConnectionControl implements IConnectionControl { String messageType = extension.getValue("messageType"); + handleMessageTypes(extension, sender, messageType); + } + + private void handleMessageTypes(DefaultPacketExtension extension, + String sender, String messageType) { if (messageType.equals("game_offer")) { UUID uuid = UUID.fromString(extension.getValue("uuid")); GameSettings settings = (GameSettings) Base64 diff --git a/src/jrummikub/control/network/GameJoinControl.java b/src/jrummikub/control/network/GameJoinControl.java index 4adc61d..489199e 100644 --- a/src/jrummikub/control/network/GameJoinControl.java +++ b/src/jrummikub/control/network/GameJoinControl.java @@ -10,8 +10,21 @@ import jrummikub.util.IListener1; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.IView; +/** + * Control for joining a network game + */ public class GameJoinControl extends AbstractGameBeginControl { + /** + * Creates new game join control + * + * @param connectionControl + * the current connection control for events and messages + * @param gameData + * the game data for settings, game id + * @param view + * the view + */ public GameJoinControl(final IConnectionControl connectionControl, final GameData gameData, final IView view) { super(connectionControl, view, gameData, SettingsMode.NETWORK_JOIN); @@ -54,6 +67,9 @@ public class GameJoinControl extends AbstractGameBeginControl { } } + /** + * Starts the join control and sets the settings panel in game join mode + */ public void startGameJoin() { view.showSettingsPanel(true); } diff --git a/src/jrummikub/control/network/GameOfferControl.java b/src/jrummikub/control/network/GameOfferControl.java index af060fd..0c94c1f 100644 --- a/src/jrummikub/control/network/GameOfferControl.java +++ b/src/jrummikub/control/network/GameOfferControl.java @@ -11,8 +11,21 @@ import jrummikub.util.IListener1; import jrummikub.view.ISettingsPanel.SettingsMode; import jrummikub.view.IView; +/** + * Control for network game host + */ public class GameOfferControl extends AbstractGameBeginControl { + /** + * Creates new game offer control + * + * @param connectionControl + * for events (listening and handling) + * @param settings + * the game settings for player list, colors, names + * @param view + * the view + */ public GameOfferControl(final IConnectionControl connectionControl, final GameSettings settings, final IView view) { super(connectionControl, view, @@ -57,6 +70,10 @@ public class GameOfferControl extends AbstractGameBeginControl { })); } + /** + * sends the game offer and starts the settings panel for host using network + * offer type + */ public void startGameOffer() { connectionControl.offerGame(gameData); diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java index 95f48a4..a8faac5 100644 --- a/src/jrummikub/control/network/NetworkControl.java +++ b/src/jrummikub/control/network/NetworkControl.java @@ -44,26 +44,27 @@ public class NetworkControl { this.view = view; connectionControl = new ConnectionControl(loginData); + addConnectionSetupListeners(loginData, view); addConnectionControlListeners(loginData, view); - connections.add(view.getGameListPanel().getJoinEvent() - .add(new IListener1<GameData>() { + connections.add(view.getGameListPanel().getJoinEvent().add( + new IListener1<GameData>() { @Override public void handle(GameData gameData) { join(gameData); } })); - connections.add(view.getGameListPanel().getOpenNewGameEvent() - .add(new IListener() { + connections.add(view.getGameListPanel().getOpenNewGameEvent().add( + new IListener() { @Override public void handle() { createSettingsControl(); } })); - connections.add(view.getGameListPanel().getCancelEvent() - .add(new IListener() { + connections.add(view.getGameListPanel().getCancelEvent().add( + new IListener() { @Override public void handle() { abort(); @@ -87,25 +88,6 @@ public class NetworkControl { */ public void addConnectionControlListeners(final LoginData loginData, final IView view) { - connections.add(connectionControl.getConnectedEvent().add( - new IListener() { - @Override - public void handle() { - view.getGameListPanel().setChannelName( - loginData.getChannelName()); - view.showGameListPanel(true); - } - })); - - connections.add(connectionControl.getConnectionFailedEvent().add( - new IListener() { - @Override - public void handle() { - // TODO Auto-generated method stub - - } - })); - connections.add(connectionControl.getGameOfferEvent().add( new IListener1<GameData>() { @Override @@ -149,6 +131,28 @@ public class NetworkControl { })); } + private void addConnectionSetupListeners(final LoginData loginData, + final IView view) { + connections.add(connectionControl.getConnectedEvent().add( + new IListener() { + @Override + public void handle() { + view.getGameListPanel().setChannelName( + loginData.getChannelName()); + view.showGameListPanel(true); + } + })); + + connections.add(connectionControl.getConnectionFailedEvent().add( + new IListener() { + @Override + public void handle() { + // TODO Auto-generated method stub + + } + })); + } + private void updateGameList() { List<GameData> gameList = new ArrayList<GameData>(); @@ -220,8 +224,8 @@ public class NetworkControl { } view.showGameListPanel(false); - settingsControl = new NetworkSettingsControl( - connectionControl.getNickname(), view, new GameSettings()); + settingsControl = new NetworkSettingsControl(connectionControl + .getNickname(), view, new GameSettings()); settingsControl.getOfferGameEvent().add(new IListener1<GameSettings>() { @Override public void handle(GameSettings settings) { |