diff options
Diffstat (limited to 'src/jrummikub/control/ApplicationControl.java')
-rw-r--r-- | src/jrummikub/control/ApplicationControl.java | 76 |
1 files changed, 42 insertions, 34 deletions
diff --git a/src/jrummikub/control/ApplicationControl.java b/src/jrummikub/control/ApplicationControl.java index 7a629af..bc16cb4 100644 --- a/src/jrummikub/control/ApplicationControl.java +++ b/src/jrummikub/control/ApplicationControl.java @@ -32,7 +32,7 @@ public class ApplicationControl { * Creates a new application control * * @param view - * the view to use + * the view to use */ public ApplicationControl(final IView view) { this.view = view; @@ -43,15 +43,16 @@ public class ApplicationControl { public void handle() { view.getQuitWarningPanel().setMode(QuitMode.QUIT_GAME); view.showQuitWarningPanel(true); - tempConnection = view.getQuitWarningPanel().getQuitEvent().add(new IListener() { - @Override - public void handle() { - abortControls(); - startApplication(); - view.showQuitWarningPanel(false); - tempConnection.remove(); - } - }); + tempConnection = view.getQuitWarningPanel().getQuitEvent() + .add(new IListener() { + @Override + public void handle() { + abortControls(); + startApplication(); + view.showQuitWarningPanel(false); + tempConnection.remove(); + } + }); } }); view.getMenuQuitEvent().add(new IListener() { @@ -89,7 +90,7 @@ public class ApplicationControl { } } }); - + view.getQuitWarningPanel().getCancelEvent().add(new IListener() { @Override public void handle() { @@ -97,16 +98,22 @@ public class ApplicationControl { } }); - addLoginControlListeners(); + view.getNetworkGameEvent().add(new IListener() { + @Override + public void handle() { + abortControls(); + + createLoginControl(); + } + }); saveControl.getLoadEvent().add( new IListener3<GameSettings, GameState, IRoundState>() { @Override - public void handle(GameSettings settings, - GameState gameState, IRoundState roundState) { + public void handle(GameSettings settings, GameState gameState, + IRoundState roundState) { abortControls(); - gameControl = new GameControl(settings, saveControl, - view); + gameControl = new GameControl(settings, saveControl, view); addGameControlListeners(gameControl); gameControl.continueGame(gameState, roundState); } @@ -119,28 +126,21 @@ public class ApplicationControl { }); } - private void addLoginControlListeners() { - view.getNetworkGameEvent().add(new IListener() { + private void createLoginControl() { + loginControl = new LoginControl(view); + loginControl.getLoginEvent().add(new IListener1<LoginData>() { + @Override + public void handle(LoginData loginData) { + createNetworkControl(loginData); + } + }); + loginControl.getCancelEvent().add(new IListener() { @Override public void handle() { - abortControls(); - - loginControl = new LoginControl(view); - loginControl.getLoginEvent().add(new IListener1<LoginData>() { - @Override - public void handle(LoginData loginData) { - createNetworkControl(loginData); - } - }); - loginControl.getCancelEvent().add(new IListener() { - @Override - public void handle() { - startApplication(); - } - }); - loginControl.startLogin(); + startApplication(); } }); + loginControl.startLogin(); } private void abortControls() { @@ -215,6 +215,14 @@ public class ApplicationControl { } }); + networkControl.getBackToLoginEvent().add(new IListener() { + @Override + public void handle() { + networkControl = null; + createLoginControl(); + } + }); + networkControl.startNetwork(); } } |