Package org.appfuse.webapp.client.ui.users.editUser

Source Code of org.appfuse.webapp.client.ui.users.editUser.EditUserViewImpl

/**
*
*/
package org.appfuse.webapp.client.ui.users.editUser;

import java.util.List;

import org.appfuse.webapp.client.application.ApplicationResources;
import org.appfuse.webapp.client.proxies.LabelValueProxy;
import org.appfuse.webapp.client.proxies.RoleProxy;
import org.appfuse.webapp.client.proxies.UserProxy;

import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.CheckBox;
import com.github.gwtbootstrap.client.ui.IntegerBox;
import com.github.gwtbootstrap.client.ui.ListBox;
import com.github.gwtbootstrap.client.ui.LongBox;
import com.github.gwtbootstrap.client.ui.PasswordTextBox;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.editor.client.EditorError;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver;

/**
* @author ivangsa
*
*/
public class EditUserViewImpl extends Composite implements EditUserView {

    interface Binder extends UiBinder<Widget, EditUserViewImpl> {}
    private static final Binder BINDER = GWT.create(Binder.class);

    interface Driver extends RequestFactoryEditorDriver<UserProxy, EditUserViewImpl> { }

    @UiField(provided=true)
    protected ApplicationResources i18n = GWT.create(ApplicationResources.class);

    private EditUserView.Delegate delegate;

    @UiField
    protected Element subheading;

    @UiField LongBox id;
    @UiField IntegerBox version;
    @UiField TextBox username;
    @UiField PasswordTextBox password;
    @UiField Anchor updatePasswordButton;
    @UiField TextBox passwordHint;
    @UiField TextBox firstName;
    @UiField TextBox lastName;
    @UiField TextBox email;
    @UiField TextBox phoneNumber;
    @UiField TextBox website;

    @UiField UIObject addressFieldset;
    @UiField @Path("address.address")
    TextBox address;
    @UiField @Path("address.city")
    TextBox city;
    @UiField @Path("address.province")
    TextBox province;
    @UiField @Path("address.country")
    ListBox country;
    @UiField  @Path("address.postalCode")
    TextBox postalCode;

    @UiField(provided=true)
    protected RolesListBox roles = new RolesListBox();

    @UiField protected Widget passwordControlGroup;
    @UiField protected Widget updatePasswordControl;
    @UiField protected Widget userRoles;//control group for
    @UiField protected Widget accountSettings;//control group for

    @UiField CheckBox enabled;
    @UiField CheckBox accountExpired;
    @UiField CheckBox accountLocked;
    @UiField CheckBox credentialsExpired;

    @UiField Button saveButton;
    @UiField protected Button deleteButton;
    @UiField Button cancelButton;

    /**
     *
     */
    public EditUserViewImpl() {
        super();
        initWidget(BINDER.createAndBindUi(this));
        passwordControlGroup.setVisible(false);
        updatePasswordControl.setVisible(false);
    }

    @Override
    public void setDelegate(final EditUserView.Delegate delegate) {
        this.delegate = delegate;
    }

    @Override
    public RequestFactoryEditorDriver<UserProxy, ? extends EditUserView> createEditorDriver() {
        final RequestFactoryEditorDriver<UserProxy, EditUserViewImpl> editorDriver = GWT.create(Driver.class);
        editorDriver.initialize(this);
        return editorDriver;
    }

    @Override
    public void setCountries(final List<LabelValueProxy> countries) {
        for (final LabelValueProxy labelValue : countries) {
            country.addItem(labelValue.getLabel(), labelValue.getValue());
        }
    }

    @Override
    public void setAvailableRoles(final List<RoleProxy> roles) {
        this.roles.setRowData(roles);
    }

    @Override
    public void showErrors(final List<EditorError> errors) {
        if(errors != null && !errors.isEmpty()) {
            final SafeHtmlBuilder b = new SafeHtmlBuilder();
            for (final EditorError error : errors) {
                if(error.getPath() != null && !"".equals(error.getPath())) {
                    final Object userData = error.getUserData();
                    b.appendEscaped(error.getPath()).appendEscaped(": ");
                }
                b.appendEscaped(error.getMessage()).appendEscaped("\n");
            }
            Window.alert(b.toSafeHtml().asString());
        }
    }

    @UiHandler("saveButton")
    public void onSaveButtonClick(final ClickEvent event) {
        delegate.saveClicked();
    }

    @UiHandler("deleteButton")
    public void onDeleteButtonClick(final ClickEvent event) {
        delegate.deleteClicked();
    }

    @UiHandler("cancelButton")
    public void onCancelButtonClick(final ClickEvent event) {
        delegate.cancelClicked();
    }

    @UiHandler("updatePasswordButton")
    public void onUpdatePasswordClick(final ClickEvent event) {
        delegate.updatePasswordClicked();
    }

    @Override
    public void setEnabled(final boolean b) {
        //TODO
    }

}
TOP

Related Classes of org.appfuse.webapp.client.ui.users.editUser.EditUserViewImpl

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.