diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-11 03:15:12 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-11 03:15:12 +0200 |
commit | dbd57d42188aa8499211f9a0461fd3511c80f578 (patch) | |
tree | d4945475a9990463379b2d70aa83c6269202cc04 /src/jrummikub | |
parent | 630cdea1d9383aee75a984867682459d06c7c61a (diff) | |
download | JRummikub-dbd57d42188aa8499211f9a0461fd3511c80f578.tar JRummikub-dbd57d42188aa8499211f9a0461fd3511c80f578.zip |
Add NetworkSettingsControl
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@409 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub')
-rw-r--r-- | src/jrummikub/control/SettingsControl.java | 13 | ||||
-rw-r--r-- | src/jrummikub/control/network/NetworkControl.java | 11 | ||||
-rw-r--r-- | src/jrummikub/control/network/NetworkSettingsControl.java | 38 | ||||
-rw-r--r-- | src/jrummikub/view/IGameListPanel.java | 4 |
4 files changed, 58 insertions, 8 deletions
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<GameSettings> startGameEvent = new Event1<GameSettings>(); + protected IView view; + protected Event1<GameSettings> startGameEvent = new Event1<GameSettings>(); private List<Connection> connections = new ArrayList<Connection>(); - 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<Connection> connections = new ArrayList<Connection>(); private Event stopNetworkEvent = new Event(); + private NetworkSettingsControl settingsControl; + private Map<UUID, GameData> gameMap = new HashMap<UUID, GameData>(); 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; |