Search in sources :

Example 1 with LoginDelegate

use of cbit.vcell.desktop.LoginDelegate in project vcell by virtualcell.

the class VCellClient method login.

public static void login(final RequestManager requestManager, final ClientServerInfo clientServerInfo, final DocumentWindowManager currWindowManager) {
    final LoginManager loginManager = new LoginManager();
    LoginDelegate loginDelegate = new LoginDelegate() {

        public void login(final String userid, final UserLoginInfo.DigestedPassword digestedPassword) {
            AsynchClientTask task1 = new AsynchClientTask("connect to server", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    ClientServerInfo newClientServerInfo = createClientServerInfo(clientServerInfo, userid, digestedPassword);
                    requestManager.connectToServer(currWindowManager, newClientServerInfo);
                }
            };
            AsynchClientTask task2 = new AsynchClientTask("logging in", AsynchClientTask.TASKTYPE_SWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    ConnectionStatus connectionStatus = requestManager.getConnectionStatus();
                    loginManager.close();
                    if (connectionStatus.getStatus() != ConnectionStatus.CONNECTED) {
                        VCellClient.login(requestManager, clientServerInfo, currWindowManager);
                    } else {
                        ErrorUtils.setLoginInfo(clientServerInfo.getUserLoginInfo());
                    }
                }
            };
            ClientTaskDispatcher.dispatch(currWindowManager.getComponent(), new Hashtable<String, Object>(), new AsynchClientTask[] { task1, task2 });
        }

        public void registerRequest() {
            loginManager.close();
            try {
                UserRegistrationManager.registrationOperationGUI(requestManager, currWindowManager, clientServerInfo, LoginManager.USERACTION_REGISTER, null);
            } catch (UserCancelException e) {
            // do nothing
            } catch (Exception e) {
                e.printStackTrace();
                PopupGenerator.showErrorDialog(currWindowManager, "New user Registration error:\n" + e.getMessage());
            }
        }

        public void lostPasswordRequest(String userid) {
            try {
                ClientServerInfo newClientServerInfo = createClientServerInfo(clientServerInfo, userid, null);
                UserRegistrationManager.registrationOperationGUI(requestManager, currWindowManager, newClientServerInfo, LoginManager.USERACTION_LOSTPASSWORD, null);
            } catch (UserCancelException e) {
            // do nothing
            } catch (Exception e) {
                e.printStackTrace();
                PopupGenerator.showErrorDialog(currWindowManager, "New user Registration error:\n" + e.getMessage());
            }
        }

        public void userCancel() {
            loginManager.close();
            PopupGenerator.showInfoDialog(currWindowManager, "Note:  The Login dialog can be accessed any time under the 'Server' main menu as 'Change User...'");
        }
    };
    loginManager.showLoginDialog(currWindowManager.getComponent(), currWindowManager, loginDelegate);
}
Also used : AsynchClientTask(cbit.vcell.client.task.AsynchClientTask) LoginManager(cbit.vcell.desktop.LoginManager) Hashtable(java.util.Hashtable) ClientServerInfo(cbit.vcell.client.server.ClientServerInfo) UserCancelException(org.vcell.util.UserCancelException) LoginDelegate(cbit.vcell.desktop.LoginDelegate) DigestedPassword(org.vcell.util.document.UserLoginInfo.DigestedPassword) ConnectionStatus(cbit.vcell.client.server.ConnectionStatus) UserCancelException(org.vcell.util.UserCancelException)

Example 2 with LoginDelegate

use of cbit.vcell.desktop.LoginDelegate in project vcell by virtualcell.

the class DocumentWindow method showLoginDialog.

/**
 * Comment
 */
private void showLoginDialog() {
    final LoginManager loginManager = new LoginManager();
    LoginDelegate loginDelegate = new LoginDelegate() {

        public void userCancel() {
            loginManager.close();
            PopupGenerator.showInfoDialog(DocumentWindow.this, "Note:  The Login dialog can be accessed any time under the 'Server' main menu as 'Change User...'");
        }

        public void registerRequest() {
            loginManager.close();
            System.out.println("LoginManager.registerRequest()");
            getWindowManager().getRequestManager().updateUserRegistration(getWindowManager(), true);
        }

        public void login(String userid, UserLoginInfo.DigestedPassword digestedPassword) {
            System.out.println("LoginManager.login(" + userid + ",xxx)");
            getWindowManager().connectAs(userid, digestedPassword);
        }

        public void lostPasswordRequest(String userid) {
            System.out.println("LoginManager.lostPasswordRequest(" + userid + ")");
            getWindowManager().getRequestManager().sendLostPassword(getWindowManager(), userid);
        }
    };
    loginManager.showLoginDialog(this, getWindowManager(), loginDelegate);
}
Also used : LoginManager(cbit.vcell.desktop.LoginManager) LoginDelegate(cbit.vcell.desktop.LoginDelegate)

Aggregations

LoginDelegate (cbit.vcell.desktop.LoginDelegate)2 LoginManager (cbit.vcell.desktop.LoginManager)2 ClientServerInfo (cbit.vcell.client.server.ClientServerInfo)1 ConnectionStatus (cbit.vcell.client.server.ConnectionStatus)1 AsynchClientTask (cbit.vcell.client.task.AsynchClientTask)1 Hashtable (java.util.Hashtable)1 UserCancelException (org.vcell.util.UserCancelException)1 DigestedPassword (org.vcell.util.document.UserLoginInfo.DigestedPassword)1