summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/NetworkControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkControl.java50
1 files changed, 30 insertions, 20 deletions
diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java
index bb60556..e09cdc0 100644
--- a/src/jrummikub/control/network/NetworkControl.java
+++ b/src/jrummikub/control/network/NetworkControl.java
@@ -26,6 +26,7 @@ public class NetworkControl {
private Event stopNetworkEvent = new Event();
private NetworkSettingsControl settingsControl;
+ private GameOfferControl gameOfferControl;
private Map<UUID, GameData> gameMap = new HashMap<UUID, GameData>();
@@ -157,27 +158,36 @@ public class NetworkControl {
}
private void createSettingsControl() {
- if (settingsControl == null) {
- view.showGameListPanel(false);
-
- settingsControl = new NetworkSettingsControl(
- connectionControl.getNickname(), view, new GameSettings());
- settingsControl.getOfferGameEvent().add(new IListener1<GameSettings>() {
- @Override
- public void handle(GameSettings value) {
- // TODO Auto-generated method stub
-
- }
- });
- settingsControl.getBackEvent().add(new IListener() {
- @Override
- public void handle() {
- settingsControl=null;
- view.showGameListPanel(true);
- }
- });
- settingsControl.startSettings();
+ if (settingsControl != null) {
+ return;
}
+ view.showGameListPanel(false);
+
+ settingsControl = new NetworkSettingsControl(
+ connectionControl.getNickname(), view, new GameSettings());
+ settingsControl.getOfferGameEvent().add(new IListener1<GameSettings>() {
+ @Override
+ public void handle(GameSettings settings) {
+ settingsControl = null;
+ createGameOfferControl(settings);
+ }
+ });
+ settingsControl.getBackEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ settingsControl = null;
+ view.showGameListPanel(true);
+ }
+ });
+ settingsControl.startSettings();
+ }
+
+ private void createGameOfferControl(GameSettings settings) {
+ if (gameOfferControl != null) {
+ return;
+ }
+ gameOfferControl = new GameOfferControl(connectionControl, settings, view);
+ gameOfferControl.startGameOffer();
}
}