summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/LoginControl.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-10 17:47:45 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-10 17:47:45 +0200
commite4ac4b55cd048f83b0c545026191c6df2ae990d0 (patch)
tree3f7339edb3eae212f71a8a7c22905403315cc27a /src/jrummikub/control/LoginControl.java
parent5fe8b50012514bcd3b5a139246a7035c90bfe37c (diff)
downloadJRummikub-e4ac4b55cd048f83b0c545026191c6df2ae990d0.tar
JRummikub-e4ac4b55cd048f83b0c545026191c6df2ae990d0.zip
Move LoginControl to control package
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@402 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/LoginControl.java')
-rw-r--r--src/jrummikub/control/LoginControl.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/jrummikub/control/LoginControl.java b/src/jrummikub/control/LoginControl.java
new file mode 100644
index 0000000..233a2d3
--- /dev/null
+++ b/src/jrummikub/control/LoginControl.java
@@ -0,0 +1,61 @@
+package jrummikub.control;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jrummikub.util.Connection;
+import jrummikub.util.Event;
+import jrummikub.util.Event3;
+import jrummikub.util.IEvent;
+import jrummikub.util.IEvent3;
+import jrummikub.util.IListener;
+import jrummikub.util.IListener3;
+import jrummikub.view.IView;
+
+public class LoginControl {
+ private IView view;
+ private Event3<String, String, String> loginEvent = new Event3<String, String, String>();
+ private Event cancelEvent = new Event();
+ private List<Connection> connections = new ArrayList<Connection>();
+
+ public LoginControl(final IView view) {
+ this.view = view;
+ connections.add(view.getLoginPanel().getLoginEvent()
+ .add(new IListener3<String, String, String>() {
+ @Override
+ public void handle(String userName, String password,
+ String channelName) {
+ abort();
+ loginEvent.emit(userName, password, channelName);
+ }
+ }));
+
+ connections.add(view.getLoginPanel().getCancelEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ abort();
+ cancelEvent.emit();
+ }
+ }));
+ }
+
+ public void startLogin() {
+ view.showLoginPanel(true);
+ }
+
+ public IEvent3<String, String, String> getLoginEvent() {
+ return loginEvent;
+ }
+
+ public IEvent getCancelEvent() {
+ return cancelEvent;
+ }
+
+ public void abort() {
+ view.showLoginPanel(false);
+ for (Connection c : connections) {
+ c.remove();
+ }
+ }
+
+}