From 4df5c0e665991dd19a2f25ee513c3ff85a672c55 Mon Sep 17 00:00:00 2001 From: Bennet Gerlach Date: Mon, 20 Jun 2011 03:06:46 +0200 Subject: Implemented login error messages git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@500 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/control/network/NetworkControl.java | 49 +++++++++++++++-------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'src/jrummikub/control/network/NetworkControl.java') diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java index 71000aa..60640db 100644 --- a/src/jrummikub/control/network/NetworkControl.java +++ b/src/jrummikub/control/network/NetworkControl.java @@ -15,6 +15,7 @@ import jrummikub.util.IListener; import jrummikub.util.IListener1; import jrummikub.util.LoginData; import jrummikub.view.IView; +import jrummikub.view.LoginError; /** * Class dealing with network connection, offering and choice of network games @@ -24,6 +25,7 @@ public class NetworkControl { private IView view; private List connections = new ArrayList(); private Event stopNetworkEvent = new Event(); + private Event backToLoginEvent = new Event(); private NetworkSettingsControl settingsControl; private GameOfferControl gameOfferControl; @@ -36,11 +38,11 @@ public class NetworkControl { * Creates a new network control * * @param loginData - * user's login data + * user's login data * @param connectionControl - * current connection for events and messages + * current connection for events and messages * @param view - * for events and handlers + * for events and handlers */ public NetworkControl(final LoginData loginData, IConnectionControl connectionControl, final IView view) { @@ -85,7 +87,7 @@ public class NetworkControl { * Adds the listeners for connection control events * * @param view - * view for events + * view for events */ public void addConnectionControlListeners(final IView view) { connections.add(connectionControl.getGameOfferEvent().add( @@ -133,22 +135,29 @@ public class NetworkControl { private void addConnectionSetupListeners(final LoginData loginData, final IView view) { - connections.add(connectionControl.getConnectedEvent().add( - new IListener() { + connections.add(connectionControl.getConnectedEvent().add(new IListener() { + @Override + public void handle() { + view.getGameListPanel().setChannelName(loginData.getChannelName()); + view.showGameListPanel(true); + } + })); + + connections.add(connectionControl.getConnectionFailedEvent().add( + new IListener1() { @Override - public void handle() { - view.getGameListPanel().setChannelName( - loginData.getChannelName()); - view.showGameListPanel(true); + public void handle(LoginError error) { + view.getConnectPanel().setMode(error); + view.showConnectPanel(true); } })); - connections.add(connectionControl.getConnectionFailedEvent().add( - new IListener() { + connections.add(view.getConnectPanel().getCancelEvent() + .add(new IListener() { @Override public void handle() { - // TODO Auto-generated method stub - + abort(); + backToLoginEvent.emit(); } })); } @@ -181,9 +190,11 @@ public class NetworkControl { } /** - * Starts a new network connection with the sepcified data + * Starts a new network connection with the specified data */ public void startNetwork() { + view.showConnectPanel(true); + view.getConnectPanel().setMode(null); connectionControl.connect(); } @@ -195,6 +206,7 @@ public class NetworkControl { c.remove(); } view.showGameListPanel(false); + view.showConnectPanel(false); if (settingsControl != null) { settingsControl.abort(); @@ -218,6 +230,10 @@ public class NetworkControl { return stopNetworkEvent; } + public IEvent getBackToLoginEvent() { + return backToLoginEvent; + } + private void createSettingsControl() { if (settingsControl != null) { return; @@ -247,8 +263,7 @@ public class NetworkControl { if (gameOfferControl != null) { return; } - gameOfferControl = new GameOfferControl(connectionControl, settings, - view); + gameOfferControl = new GameOfferControl(connectionControl, settings, view); gameOfferControl.getBackEvent().add(new IListener() { @Override public void handle() { -- cgit v1.2.3