summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkControl.java
diff options
context:
space:
mode:
authorBennet Gerlach <bennet_gerlach@web.de>2011-06-20 03:06:46 +0200
committerBennet Gerlach <bennet_gerlach@web.de>2011-06-20 03:06:46 +0200
commit4df5c0e665991dd19a2f25ee513c3ff85a672c55 (patch)
tree1da402f1c8f98d1a67cfb887f66c2b17d008560a /src/jrummikub/control/network/NetworkControl.java
parentace7175f1a57f3dc88a861842969e84efacf65ad (diff)
downloadJRummikub-4df5c0e665991dd19a2f25ee513c3ff85a672c55.tar
JRummikub-4df5c0e665991dd19a2f25ee513c3ff85a672c55.zip
Implemented login error messages
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@500 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network/NetworkControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkControl.java49
1 files changed, 32 insertions, 17 deletions
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<Connection> connections = new ArrayList<Connection>();
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<LoginError>() {
@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() {