/** * */ package org.gcube.portlets.user.invitefriends.client.validation; import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.ControlGroup; import com.github.gwtbootstrap.client.ui.HelpBlock; import com.github.gwtbootstrap.client.ui.Modal; import com.github.gwtbootstrap.client.ui.TextBox; import com.github.gwtbootstrap.client.ui.constants.ControlGroupType; import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.Editor; import com.google.gwt.editor.client.EditorDriver; import com.google.gwt.editor.client.SimpleBeanEditorDriver; import com.google.gwt.event.dom.client.ClickEvent; 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.ui.Composite; import com.google.gwt.user.client.ui.Widget; /** * * @author Massimiliano Assante, ISTI-CNR * */ public class FormViewImpl extends Composite implements FormView, Editor { interface Binder extends UiBinder {} private static Binder uiBinder = GWT.create(Binder.class); interface Driver extends SimpleBeanEditorDriver { } private Driver driver = GWT.create(Driver.class); private final Delegate delegate; @UiField TextBox email; @UiField TextBox name; @UiField TextBox lastName; // @UiField Button openModal; @UiField Button cancelInvite; @UiField Button sendInvite; @UiField Modal modalWindow; @UiField HelpBlock nameErrors; @UiField HelpBlock helpBlock; @UiField ControlGroup nameGroup; /** * */ public FormViewImpl(Delegate delegate) { super(); this.delegate = delegate; initWidget(uiBinder.createAndBindUi(this)); driver.initialize(this); driver.edit(new UserDetails()); } @UiHandler("openModal") void onUserClick(ClickEvent event) { if (!delegate.onSendClick()) { helpBlock.setText("We will send the invitation email to: "+email.getText()); modalWindow.show(); } } @UiHandler("sendInvite") void onSendInviteClick(ClickEvent event) { if (delegate.onEmailSendInviteClick()) { nameGroup.setType(ControlGroupType.ERROR); nameErrors.setText("Please fill both name and last name"); } else { nameGroup.setType(ControlGroupType.SUCCESS); nameErrors.setText(""); } } @UiHandler("cancelInvite") public void onCancelClick(ClickEvent e) { modalWindow.hide(); } @Override public EditorDriver getEditorDriver() { return driver; } }