invite-members/src/main/java/org/gcube/portlets/user/invitefriends/client/validation/FormViewImpl.java

78 lines
2.1 KiB
Java

/**
*
*/
package org.gcube.portlets.user.invitefriends.client.validation;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.HelpBlock;
import com.github.gwtbootstrap.client.ui.Modal;
import com.github.gwtbootstrap.client.ui.TextBox;
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<FormView.UserDetails> {
interface Binder extends UiBinder<Widget, FormViewImpl> {}
private static Binder uiBinder = GWT.create(Binder.class);
interface Driver extends SimpleBeanEditorDriver<FormView.UserDetails, FormViewImpl> { }
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 helpBlock;
/**
*
*/
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("cancelInvite")
public void onCancelClick(ClickEvent e) {
modalWindow.hide();
}
@Override
public EditorDriver<FormView.UserDetails> getEditorDriver() {
return driver;
}
}