@@ -0,0 +1,3765 @@
+/*%0A * Copyright 2015 Ryan Gilera.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.github.daytron.revworks.behaviour.login;%0A%0Aimport com.github.daytron.revworks.MainUI;%0Aimport com.github.daytron.revworks.authentication.AccessControl;%0Aimport com.github.daytron.revworks.authentication.AuthenticationException;%0Aimport com.github.daytron.revworks.data.ErrorMsg;%0Aimport com.github.daytron.revworks.data.UserType;%0Aimport com.github.daytron.revworks.service.NoCurrentUserException;%0Aimport com.github.daytron.revworks.util.NotificationUtil;%0Aimport com.vaadin.server.VaadinSession;%0Aimport com.vaadin.ui.Button;%0Aimport com.vaadin.ui.PasswordField;%0Aimport com.vaadin.ui.TextField;%0Aimport java.util.logging.Level;%0Aimport java.util.logging.Logger;%0A%0A/**%0A *%0A * @author Ryan Gilera%0A */%0Apublic class AdminLoginButtonListener implements Button.ClickListener %7B%0A%0A    private static final long serialVersionUID = 1L;%0A%0A    private final TextField userField;%0A    private final PasswordField passwordField;%0A    private final AccessControl userAccessControl;%0A%0A    public AdminLoginButtonListener(TextField userField,%0A            PasswordField passwordField, AccessControl userAccessControl) %7B%0A        this.userField = userField;%0A        this.passwordField = passwordField;%0A        this.userAccessControl = userAccessControl;%0A    %7D%0A%0A    @Override%0A    public void buttonClick(Button.ClickEvent event) %7B%0A        try %7B%0A            userField.validate();%0A            passwordField.validate();%0A        %7D catch (Exception e) %7B%0A            userField.setValidationVisible(true);%0A            passwordField.setValidationVisible(true);%0A%0A            Logger.getLogger(AdminLoginButtonListener.class.getName())%0A                    .log(Level.SEVERE, null, e);%0A            NotificationUtil.showError(%0A                    ErrorMsg.INVALID_INPUT_CAPTION.getText());%0A        %7D%0A    %7D%0A%0A    private void verifyUserCredentials() %7B%0A        UserType userType = UserType.ADMIN;%0A        String userName = userField.getValue();%0A        String password = passwordField.getValue();%0A%0A        try %7B%0A            // Retrieve the user upon authentication%0A            userAccessControl.signIn(userType, userName, password);%0A            %0A            // Verifies if this is the only login session for the current user%0A            // If this is second login session made by the user,%0A            // it terminates the old session and continue with this new session%0A            // created. Afterwards this session is recorded in the servlet.%0A            // See MainUIServlet documentation%0A            MainUI.MainUIServlet.saveUserSessionInfo(%0A                    userAccessControl.getPrincipalName(), %0A                    VaadinSession.getCurrent());%0A            MainUI.MainUIServlet.printSessions(%22admin login%22);%0A            %0A            %0A            %0A        %7D catch (AuthenticationException ex) %7B%0A            Logger.getLogger(AdminLoginButtonListener.class.getName()).log(Level.SEVERE, null, ex);%0A            NotificationUtil.showError(%0A                    ErrorMsg.SIGNIN_FAILED_CAPTION.getText(), %0A                    ex.getMessage());%0A        %7D catch (NoCurrentUserException ex) %7B%0A            Logger.getLogger(AdminLoginButtonListener.class.getName()).log(Level.SEVERE, null, ex);%0A        %7D%0A    %7D%0A%0A%7D%0A

Add a button listener to the login button in the admin login popup