From dbd57d42188aa8499211f9a0461fd3511c80f578 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 11 Jun 2011 03:15:12 +0200 Subject: Add NetworkSettingsControl git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@409 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/control/SettingsControl.java | 13 ++++---- src/jrummikub/control/network/NetworkControl.java | 11 +++++-- .../control/network/NetworkSettingsControl.java | 38 ++++++++++++++++++++++ src/jrummikub/view/IGameListPanel.java | 4 +++ 4 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 src/jrummikub/control/network/NetworkSettingsControl.java (limited to 'src') diff --git a/src/jrummikub/control/SettingsControl.java b/src/jrummikub/control/SettingsControl.java index 80b334a..6f4e149 100644 --- a/src/jrummikub/control/SettingsControl.java +++ b/src/jrummikub/control/SettingsControl.java @@ -24,11 +24,11 @@ import jrummikub.view.IView; * The settings control controls the settings panel */ public class SettingsControl { - private IView view; - private Event1 startGameEvent = new Event1(); + protected IView view; + protected Event1 startGameEvent = new Event1(); private List connections = new ArrayList(); - private GameSettings settings; + protected GameSettings settings; /** * Create a new settings control @@ -41,8 +41,6 @@ public class SettingsControl { public SettingsControl(IView view, GameSettings settings) { this.view = view; this.settings = settings; - addPlayer(); - addPlayer(); } /** @@ -59,6 +57,9 @@ public class SettingsControl { * Start the operation of the settings control */ public void startSettings() { + addPlayer(); + addPlayer(); + addPlayerSettingsListeners(); addOptionListeners1(); @@ -247,7 +248,7 @@ public class SettingsControl { update(); } - private void update() { + protected void update() { view.getSettingsPanel().enableRemovePlayerButtons( settings.getPlayerList().size() > 2); view.getSettingsPanel().enableAddPlayerButton( diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java index 013c866..b6dc27e 100644 --- a/src/jrummikub/control/network/NetworkControl.java +++ b/src/jrummikub/control/network/NetworkControl.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import jrummikub.model.GameSettings; import jrummikub.util.Connection; import jrummikub.util.Event; import jrummikub.util.IEvent; @@ -22,6 +23,8 @@ public class NetworkControl { private List connections = new ArrayList(); private Event stopNetworkEvent = new Event(); + private NetworkSettingsControl settingsControl; + private Map gameMap = new HashMap(); public NetworkControl(final LoginData loginData, final IView view) { @@ -38,7 +41,6 @@ public class NetworkControl { testData.setCurrentPlayerCount(2); testData.setMaxPlayerCount(4); - connectionControl.offerGame(testData); } })); @@ -94,8 +96,13 @@ public class NetworkControl { .add(new IListener() { @Override public void handle() { - // TODO Auto-generated method stub + if (settingsControl == null) { + view.showGameListPanel(false); + settingsControl = new NetworkSettingsControl(connectionControl, + view, new GameSettings()); + settingsControl.startSettings(); + } } })); diff --git a/src/jrummikub/control/network/NetworkSettingsControl.java b/src/jrummikub/control/network/NetworkSettingsControl.java new file mode 100644 index 0000000..d1a56e6 --- /dev/null +++ b/src/jrummikub/control/network/NetworkSettingsControl.java @@ -0,0 +1,38 @@ +package jrummikub.control.network; + +import java.util.UUID; + +import jrummikub.control.SettingsControl; +import jrummikub.model.GameSettings; +import jrummikub.view.IGameListPanel.GameData; +import jrummikub.view.IView; + +public class NetworkSettingsControl extends SettingsControl { + private GameData gameData = new GameData(UUID.randomUUID()); + private ConnectionControl connectionControl; + + public NetworkSettingsControl(ConnectionControl connectionControl, IView view, GameSettings settings) { + super(view, settings); + this.connectionControl = connectionControl; + } + + @Override + public void startSettings() { + super.startSettings(); + } + + @Override + protected void update() { + super.update(); + + gameData.setMaxPlayerCount(settings.getPlayerList().size()); + + connectionControl.offerGame(gameData); + } + + @Override + public void abort() { + super.abort(); + connectionControl.withdrawGame(gameData.getGameID()); + } +} diff --git a/src/jrummikub/view/IGameListPanel.java b/src/jrummikub/view/IGameListPanel.java index da41839..018d931 100644 --- a/src/jrummikub/view/IGameListPanel.java +++ b/src/jrummikub/view/IGameListPanel.java @@ -12,6 +12,10 @@ public interface IGameListPanel { private int currentPlayerCount = 0; private int maxPlayerCount = 0; + public GameData(UUID gameID) { + this.gameID = gameID; + } + public GameData(UUID gameID, String host) { this.gameID = gameID; this.host = host; -- cgit v1.2.3