diff options
Diffstat (limited to 'src/jrummikub/control/network')
-rw-r--r-- | src/jrummikub/control/network/NetworkControl.java | 11 | ||||
-rw-r--r-- | src/jrummikub/control/network/NetworkSettingsControl.java | 38 |
2 files changed, 47 insertions, 2 deletions
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()); + } +} |