diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-10 17:47:45 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-10 17:47:45 +0200 |
commit | e4ac4b55cd048f83b0c545026191c6df2ae990d0 (patch) | |
tree | 3f7339edb3eae212f71a8a7c22905403315cc27a /src/jrummikub/control/LoginControl.java | |
parent | 5fe8b50012514bcd3b5a139246a7035c90bfe37c (diff) | |
download | JRummikub-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.java | 61 |
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(); + } + } + +} |