/** Resets the login screen back to its initial state. */ public void reset() { UserSessionManager.getUserSessionManager().logout(); user = null; Object landingScreen = ui.loadComponentFromFile(XML_LOGIN, this); Object usernameField = ui.find(landingScreen, "usernameField"); ui.removeAll(mainPanel); ui.add(mainPanel, landingScreen); ui.setFocus(usernameField); }
/** The callback method for when a user preses a login button in this screen. */ public void attemptLogin() { Object usernameField = ui.find(mainPanel, "usernameField"); Object passwordField = ui.find(mainPanel, "passwordField"); String username = ui.getText(usernameField); String password = ui.getText(passwordField); UserSessionManager manager = UserSessionManager.getUserSessionManager(); AuthenticationResult result = manager.login(username, password); if (result == AuthenticationResult.NOSUCHUSER || result == AuthenticationResult.WRONGPASSWORD) { displayWarningMessage(INCORRECT_LOGIN_MESSAGE); } if (result == AuthenticationResult.SUCCESS) { user = manager.getCurrentUser(); if (user.needsNewPassword()) { changeModeNewPassword(); } else if (numberOfSecurityQuestions(user) < settings.getRequiredQuestionsRange().value()) { changeModeNewQuestions(); } else { changeModePatientView(); } } }