/** * */ package org.appfuse.webapp.client.ui.users.editUser; import java.util.List; import org.appfuse.webapp.client.application.ApplicationResources; import org.appfuse.webapp.client.application.base.view.ProxyEditView; 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 <D extends ProxyEditView.Delegate> void setDelegate(D delegate) { this.delegate = (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 } }