package org.vaadin.viritin.v7; import org.vaadin.viritin.it.*; import com.vaadin.ui.Button; import com.vaadin.ui.Component; import com.vaadin.ui.Notification; import com.vaadin.v7.ui.TextField; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import org.vaadin.addonhelpers.AbstractTest; import org.vaadin.viritin.v7.BeanBinder; import org.vaadin.viritin.v7.MBeanFieldGroup; import org.vaadin.viritin.v7.fields.IntegerField; import org.vaadin.viritin.v7.fields.IntegerSliderField; import org.vaadin.viritin.v7.fields.MTextField; import org.vaadin.viritin.layouts.MVerticalLayout; /** * * @author Matti Tahvonen */ public class IntegerFieldUsage extends AbstractTest { private static final long serialVersionUID = -1841759044439831663L; public static class Domain { private Integer normalInteger; private Integer integer; private int intti = 2; @Min(10) @Max(100) private Integer validatedInteger; @NotNull @Min(5) @Max(55) private int slider = 50; public Integer getValidatedInteger() { return validatedInteger; } public void setValidatedInteger(Integer validatedInteger) { this.validatedInteger = validatedInteger; } public Integer getInteger() { return integer; } public void setInteger(Integer integer) { this.integer = integer; } public int getIntti() { return intti; } public void setIntti(int intti) { this.intti = intti; } public int getSlider() { return slider; } public void setSlider(int slider) { this.slider = slider; } public Integer getNormalInteger() { return normalInteger; } public void setNormalInteger(Integer normalInteger) { this.normalInteger = normalInteger; } @Override public String toString() { return "Domain{" + "normalInteger=" + normalInteger + ", integer=" + integer + ", intti=" + intti + ", validatedInteger=" + validatedInteger + ", slider=" + slider + '}'; } } private final TextField normalInteger = new MTextField().withCaption("Integer with basic TextField"); private final IntegerField integer = new IntegerField().withCaption("Integer"); private final IntegerField intti = new IntegerField().withCaption("int"); private final IntegerField validatedInteger = new IntegerField().withCaption( "validated"); private final IntegerSliderField slider = new IntegerSliderField() .withCaption("Slider") .withStep(5) // .withMax(69) // Set automatically from BeanValidation annotations // .withMin(-69) // Set automatically from BeanValidation annotations ; @Override public Component getTestComponent() { final Domain domain = new Domain(); BeanBinder.bind(domain, this).withEagerValidation( new MBeanFieldGroup.FieldGroupListener<Domain>() { private static final long serialVersionUID = 1901097967848065661L; boolean wasvalid = true; @Override public void onFieldGroupChange( MBeanFieldGroup<Domain> beanFieldGroup) { if (wasvalid != beanFieldGroup.isValid()) { if (beanFieldGroup.isValid()) { Notification.show("Bean is now valid!"); } else { Notification.show("Bean is invalid!"); } wasvalid = beanFieldGroup.isValid(); } } }); Button show = new Button("Show value", new Button.ClickListener() { private static final long serialVersionUID = 5019806363620874205L; @Override public void buttonClick(Button.ClickEvent event) { Notification.show(domain.toString()); } }); Button toggleVisible = new Button("Toggle visibility", new Button.ClickListener() { private static final long serialVersionUID = 5019806363620874205L; @Override public void buttonClick(Button.ClickEvent event) { integer.setVisible(!integer.isVisible()); } }); // Put invalid value to the backing bean, otherwise demo might appear // broken validatedInteger.setInvalidCommitted(true); slider.setInvalidCommitted(true); return new MVerticalLayout( integer, intti, validatedInteger, slider, normalInteger, show, toggleVisible ); } }