Skip to content

Instantly share code, notes, and snippets.

@branflake2267
Created March 19, 2015 21:15
Show Gist options
  • Save branflake2267/c818feb9a0efc394c678 to your computer and use it in GitHub Desktop.
Save branflake2267/c818feb9a0efc394c678 to your computer and use it in GitHub Desktop.
Simple GroupingValidHandler example.
import java.util.Date;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.datepicker.client.CalendarUtil;
import com.sencha.gxt.test.client.TestSample;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.CssFloatLayoutContainer;
import com.sencha.gxt.widget.core.client.container.CssFloatLayoutContainer.CssFloatData;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.event.InvalidEvent;
import com.sencha.gxt.widget.core.client.event.InvalidEvent.InvalidHandler;
import com.sencha.gxt.widget.core.client.event.ValidEvent;
import com.sencha.gxt.widget.core.client.event.ValidEvent.ValidHandler;
import com.sencha.gxt.widget.core.client.form.DateField;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.IntegerSpinnerField;
import com.sencha.gxt.widget.core.client.form.TextField;
import com.sencha.gxt.widget.core.client.form.validator.GroupingValidHandler;
@TestSample(name = "Valid Invalid Group", description = "", jiraIds = 3793)
public class ValidInvalidGroup implements IsWidget {
private ContentPanel widget;
@Override
public Widget asWidget() {
if (widget == null) {
TextField field0 = new TextField();
TextField field1 = new TextField();
IntegerSpinnerField field2 = new IntegerSpinnerField();
DateField field3 = new DateField();
// validator 0
field0.setAutoValidate(true);
field0.setAllowBlank(false);
// validator 1
field1.setAutoValidate(true);
field1.setAllowBlank(false);
// validator 2
field2.setAllowBlank(false);
field2.setAutoValidate(true);
field2.setMinValue(10);
field2.setIncrement(1);
Date date = new Date();
CalendarUtil.addDaysToDate(date, 1);
// validator 3
field3.setAllowBlank(false);
field3.setAutoValidate(true);
field3.setMinValue(date);
FieldLabel fieldLabel0 = new FieldLabel(field0, "No empty");
FieldLabel fieldLabel1 = new FieldLabel(field1, "No empty");
FieldLabel fieldLabel2 = new FieldLabel(field2, "> 10");
FieldLabel fieldLabel3 = new FieldLabel(field3, "> tomorrow");
final GroupingValidHandler validGroup = new GroupingValidHandler(false);
validGroup.add(field0);
validGroup.add(field1);
validGroup.add(field2);
validGroup.add(field3);
final TextButton finishButton = new TextButton("Can Click if Validators are Passing");
finishButton.setEnabled(false);
CssFloatLayoutContainer container = new CssFloatLayoutContainer();
container.add(fieldLabel0, new CssFloatData(1));
container.add(fieldLabel1, new CssFloatData(1));
container.add(fieldLabel2, new CssFloatData(1));
container.add(fieldLabel3, new CssFloatData(1));
container.add(new HTML(" "), new CssFloatData(1));
container.add(finishButton, new CssFloatData(1));
widget = new ContentPanel();
widget.add(container, new MarginData(50));
validGroup.addInvalidChangeEventHandler(new InvalidHandler() {
@Override
public void onInvalid(InvalidEvent event) {
finishButton.setEnabled(validGroup.isValid());
}
});
validGroup.addValidChangeEventHandler(new ValidHandler() {
@Override
public void onValid(ValidEvent event) {
finishButton.setEnabled(validGroup.isValid());
}
});
}
return widget;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment