summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameJoinControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/GameJoinControl.java')
-rw-r--r--src/jrummikub/control/network/GameJoinControl.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/jrummikub/control/network/GameJoinControl.java b/src/jrummikub/control/network/GameJoinControl.java
index 1d29df4..d4a31d3 100644
--- a/src/jrummikub/control/network/GameJoinControl.java
+++ b/src/jrummikub/control/network/GameJoinControl.java
@@ -1,5 +1,7 @@
package jrummikub.control.network;
+import java.util.UUID;
+
import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
import jrummikub.model.PlayerSettings.Type;
@@ -10,7 +12,6 @@ import jrummikub.view.ISettingsPanel.SettingsMode;
import jrummikub.view.IView;
public class GameJoinControl extends AbstractGameBeginControl {
- private Event backEvent = new Event();
public GameJoinControl(final ConnectionControl connectionControl,
final GameData gameData, final IView view) {
@@ -31,6 +32,16 @@ public class GameJoinControl extends AbstractGameBeginControl {
}
}
}));
+ connections.add(connectionControl.getGameWithdrawalEvent().add(
+ new IListener1<UUID>() {
+ @Override
+ public void handle(UUID uuid) {
+ if (uuid.equals(gameData.getGameID())) {
+ abort();
+ backEvent.emit();
+ }
+ }
+ }));
}
private void fixGameSettings(GameSettings settings) {
@@ -44,10 +55,6 @@ public class GameJoinControl extends AbstractGameBeginControl {
}
}
- public Event getBackEvent() {
- return backEvent;
- }
-
public void startGameJoin() {
view.showSettingsPanel(true);
}
@@ -55,10 +62,10 @@ public class GameJoinControl extends AbstractGameBeginControl {
/**
* Aborts joining and goes back to game list
*/
+ @Override
protected void goBack() {
abort();
connectionControl.leaveGame();
- view.showSettingsPanel(false);
backEvent.emit();
}