package jrummikub.control.network; 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 loginEvent = new Event3(); private Event cancelEvent = new Event(); private List connections = new ArrayList(); public LoginControl(final IView view) { this.view = view; connections.add(view.getLoginPanel().getLoginEvent() .add(new IListener3() { @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 getLoginEvent() { return loginEvent; } public IEvent getCancelEvent() { return cancelEvent; } public void abort() { view.showLoginPanel(false); for (Connection c : connections) { c.remove(); } } }