From 443e99450b172c06438ceb452e9b0dc3c715f914 Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Wed, 22 Jun 2011 06:14:41 +0200 Subject: Fixed load warnings panels and everything git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@579 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/control/ApplicationControl.java | 66 ++++++++++++++++++++------- 1 file changed, 49 insertions(+), 17 deletions(-) (limited to 'src/jrummikub/control/ApplicationControl.java') diff --git a/src/jrummikub/control/ApplicationControl.java b/src/jrummikub/control/ApplicationControl.java index 7590081..25de8c9 100644 --- a/src/jrummikub/control/ApplicationControl.java +++ b/src/jrummikub/control/ApplicationControl.java @@ -42,7 +42,7 @@ public class ApplicationControl { saveControl = new SaveControl(view); addQuitGameHandlers(); - + addSaveLoadHandlers(); addNewNetworkGameHandler(); saveControl.getLoadEvent().add( @@ -65,27 +65,56 @@ public class ApplicationControl { }); } - private void addNewNetworkGameHandler() { - view.getNetworkGameEvent().add(new IListener() { + private void addSaveLoadHandlers() { + view.getLoadEvent().add(new IListener() { @Override public void handle() { - if (gameControl == null) { + if (!isGameRunning()) { abortControls(); - createLoginControl(true); - } else { - view.getQuitWarningPanel().setMode(QuitMode.QUIT_PROCESS); + startApplication(); + view.load(); + return; + } + view.getQuitWarningPanel().setMode(QuitMode.QUIT_GAME); view.showQuitWarningPanel(true); + tempConnection = view.getQuitWarningPanel().getQuitEvent() .add(new IListener() { @Override public void handle() { - view.showQuitWarningPanel(false); abortControls(); - createLoginControl(true); + startApplication(); + view.showQuitWarningPanel(false); + view.load(); tempConnection.remove(); - tempConnection = null; } }); + } + }); + + } + + private void addNewNetworkGameHandler() { + view.getNetworkGameEvent().add(new IListener() { + @Override + public void handle() { + if (!isGameRunning()) { + abortControls(); + createLoginControl(true); + } else { + view.getQuitWarningPanel().setMode(QuitMode.QUIT_PROCESS); + view.showQuitWarningPanel(true); + tempConnection = view.getQuitWarningPanel().getQuitEvent() + .add(new IListener() { + @Override + public void handle() { + view.showQuitWarningPanel(false); + abortControls(); + createLoginControl(true); + tempConnection.remove(); + tempConnection = null; + } + }); } } }); @@ -101,10 +130,7 @@ public class ApplicationControl { view.getQuitEvent().add(new IListener() { @Override public void handle() { - if (networkControl != null) { - return; - } - if (gameControl == null) { + if (!isGameRunning()) { System.exit(0); } else { showQuitWarning(); @@ -151,6 +177,15 @@ public class ApplicationControl { }); } + /** + * Checks if a game is currently running + * @return true when a game is running + */ + public boolean isGameRunning() { + return gameControl != null || networkControl != null + && networkControl.isGameRunning(); + } + /** * Create a new network login control */ @@ -282,9 +317,6 @@ public class ApplicationControl { * @return whether the server could be started */ public boolean startDedicatedServer(String password) { - if (password == "") { - password = "jrummikub"; - } if (server == null) { DedicatedServer newServer = new DedicatedServer(password); ServerStatus status = newServer.start(); -- cgit v1.2.3