Package com.ponysdk.impl.webapplication.login

Source Code of com.ponysdk.impl.webapplication.login.DefaultLoginPageView

package com.ponysdk.impl.webapplication.login;

import com.ponysdk.core.internalization.PString;
import com.ponysdk.impl.theme.PonySDKTheme;
import com.ponysdk.ui.server.basic.PButton;
import com.ponysdk.ui.server.basic.PCheckBox;
import com.ponysdk.ui.server.basic.PFlowPanel;
import com.ponysdk.ui.server.basic.PLabel;
import com.ponysdk.ui.server.basic.PPasswordTextBox;
import com.ponysdk.ui.server.basic.PSimplePanel;
import com.ponysdk.ui.server.basic.PTextBox;
import com.ponysdk.ui.server.basic.PWidget;
import com.ponysdk.ui.server.basic.event.PClickHandler;
import com.ponysdk.ui.server.basic.event.PKeyUpHandler;

public class DefaultLoginPageView extends PSimplePanel implements LoginPageView {

    private final PButton loginButton;
    private final PCheckBox rememberMe;

    private final PTextBox loginTextBox = new PTextBox();

    private final PPasswordTextBox passwordTextBox = new PPasswordTextBox();

    private final PFlowPanel messagePanel = new PFlowPanel();

    private final PLabel versionInformation = new PLabel();

    private int messageIndex = 1;

    public DefaultLoginPageView(final String title) {

        loginButton = new PButton(PString.get("activity.login.signin"));
        rememberMe = new PCheckBox(PString.get("activity.login.rememberme"));

        loginTextBox.setStyleName("pony-LoginPage-LoginTextBox");
        passwordTextBox.setStyleName("pony-LoginPage-PasswordTextBox");
        loginButton.addStyleName("pony-LoginPage-SubmitButton");
        versionInformation.addStyleName("pony-LoginPage-VersionInformation");

        final PFlowPanel panel = new PFlowPanel();
        panel.setStyleName("pony-LoginPage");

        // logo
        final PLabel logo = new PLabel(title);
        logo.addStyleName("pony-LoginPage-Logo");
        panel.add(logo);

        // input
        final PFlowPanel inputPanel = new PFlowPanel();
        inputPanel.add(buildLoginInput());
        inputPanel.add(buildPasswordInput());
        panel.add(inputPanel);

        final PFlowPanel buttonAndCheckbox = new PFlowPanel();
        panel.add(buttonAndCheckbox);
        buttonAndCheckbox.add(loginButton);
        buttonAndCheckbox.add(rememberMe);

        loginButton.setStyleName(PonySDKTheme.BUTTON_BLUE);

        // messages
        panel.add(messagePanel);
        panel.add(versionInformation);

        setWidget(panel);
    }

    private PWidget buildLoginInput() {
        final PFlowPanel panel = new PFlowPanel();
        panel.add(new PLabel(PString.get("activity.login.login")));
        panel.add(loginTextBox);
        return panel;
    }

    private PWidget buildPasswordInput() {
        final PFlowPanel panel = new PFlowPanel();
        panel.add(new PLabel(PString.get("activity.login.password")));
        panel.add(passwordTextBox);
        return panel;
    }

    @Override
    public void addLoginShortcutListener(final PKeyUpHandler handler) {
        loginTextBox.addKeyUpHandler(handler);
    }

    @Override
    public void addLoginClickHandler(final PClickHandler handler) {
        loginButton.addClickHandler(handler);
    }

    @Override
    public void addPasswordShortcutListener(final PKeyUpHandler handler) {
        passwordTextBox.addKeyUpHandler(handler);
    }

    @Override
    public void addVersionInformation(final String version) {
        versionInformation.setText(version);
    }

    @Override
    public void addMessage(final String message) {
        final PLabel messageLabel = new PLabel(message);
        messageLabel.ensureDebugId("login_page_message_" + messageIndex);
        messageIndex++;
        messagePanel.add(messageLabel);
    }

    @Override
    public String getLogin() {
        return loginTextBox.getText();
    }

    @Override
    public String getPassword() {
        return passwordTextBox.getText();
    }

    @Override
    public Boolean isRememberMe() {
        return rememberMe.getValue();
    }

    @Override
    public void clearMessages() {
        messagePanel.clear();
        messageIndex = 1;
    }

    @Override
    public void setFocusOnLogin(final boolean focused) {
        loginTextBox.setFocus(focused);
    }

    public PButton getLoginButton() {
        return loginButton;
    }

    public PTextBox getLoginTextBox() {
        return loginTextBox;
    }

    public PPasswordTextBox getPasswordTextBox() {
        return passwordTextBox;
    }

    public PCheckBox getRememberMe() {
        return rememberMe;
    }

}
TOP

Related Classes of com.ponysdk.impl.webapplication.login.DefaultLoginPageView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.