Created
March 19, 2015 21:15
-
-
Save branflake2267/c818feb9a0efc394c678 to your computer and use it in GitHub Desktop.
Simple GroupingValidHandler example.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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