summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/NetworkControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkControl.java115
1 files changed, 76 insertions, 39 deletions
diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java
index ed2c8e6..8a1c8e4 100644
--- a/src/jrummikub/control/network/NetworkControl.java
+++ b/src/jrummikub/control/network/NetworkControl.java
@@ -17,6 +17,9 @@ import jrummikub.view.IGameListPanel;
import jrummikub.view.IGameListPanel.GameData;
import jrummikub.view.IView;
+/**
+ * Class dealing with network connection, offering and choice of network games
+ */
public class NetworkControl {
private ConnectionControl connectionControl;
private IView view;
@@ -27,17 +30,72 @@ public class NetworkControl {
private Map<UUID, GameData> gameMap = new HashMap<UUID, GameData>();
+ /**
+ * Creates a new network control
+ *
+ * @param loginData
+ * user's login data
+ * @param view
+ * for events and handlers
+ */
public NetworkControl(final LoginData loginData, final IView view) {
this.view = view;
connectionControl = new ConnectionControl(loginData);
- connections.add(connectionControl.getConnectedEvent().add(new IListener() {
- @Override
- public void handle() {
- view.getGameListPanel().setChannelName(loginData.getChannelName());
- view.showGameListPanel(true);
- }
- }));
+ addConnectionControlListeners(loginData, view);
+
+ connections.add(view.getGameListPanel().getJoinEvent()
+ .add(new IListener1<IGameListPanel.GameData>() {
+ @Override
+ public void handle(GameData value) {
+ // TODO Auto-generated method stub
+
+ }
+ }));
+
+ connections.add(view.getGameListPanel().getOpenNewGameEvent()
+ .add(new IListener() {
+ @Override
+ public void handle() {
+ if (settingsControl == null) {
+ view.showGameListPanel(false);
+
+ settingsControl = new NetworkSettingsControl(
+ connectionControl, view, new GameSettings());
+ settingsControl.startSettings();
+ }
+ }
+ }));
+
+ connections.add(view.getGameListPanel().getCancelEvent()
+ .add(new IListener() {
+ @Override
+ public void handle() {
+ abort();
+ stopNetworkEvent.emit();
+ }
+ }));
+ }
+
+ /**
+ * Adds the listeners for connection control events
+ *
+ * @param loginData
+ * player's login data
+ * @param view
+ * view for events
+ */
+ public void addConnectionControlListeners(final LoginData loginData,
+ final IView view) {
+ 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 IListener() {
@@ -76,44 +134,18 @@ public class NetworkControl {
}
}
}));
-
- connections.add(view.getGameListPanel().getJoinEvent()
- .add(new IListener1<IGameListPanel.GameData>() {
- @Override
- public void handle(GameData value) {
- // TODO Auto-generated method stub
-
- }
- }));
-
- connections.add(view.getGameListPanel().getOpenNewGameEvent()
- .add(new IListener() {
- @Override
- public void handle() {
- if (settingsControl == null) {
- view.showGameListPanel(false);
-
- settingsControl = new NetworkSettingsControl(connectionControl,
- view, new GameSettings());
- settingsControl.startSettings();
- }
- }
- }));
-
- connections.add(view.getGameListPanel().getCancelEvent()
- .add(new IListener() {
- @Override
- public void handle() {
- abort();
- stopNetworkEvent.emit();
- }
- }));
}
+ /**
+ * Starts a new network connection with the sepcified data
+ */
public void startNetwork() {
connectionControl.connect();
}
+ /**
+ * Ends the network connection if canceled
+ */
public void abort() {
for (Connection c : connections) {
c.remove();
@@ -122,6 +154,11 @@ public class NetworkControl {
view.showGameListPanel(false);
}
+ /**
+ * Getter for stopNetworkEvent
+ *
+ * @return stopNetworkEvent
+ */
public IEvent getStopNetworkEvent() {
return stopNetworkEvent;
}