I'm trying my first Hello World with Vaadin right now and I'm stuck with my first simple validated Form. I'm using a BeanItem
as the ItemDataSource
for my form, and I don't know how to add a Validator for the bean property.
My Problem
How can I get the actual Field
for the property in my bean? I need to call addValidator()
on the field, but I can only get it on the Form
.
HelloWorldForm
package vaadinapp.hello;
import com.vaadin.data.util.BeanItem;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Form;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
public class HelloWorldForm extends Form {
HelloWorldBean data = new HelloWorldBean();
public HelloWorldForm() {
setCaption("Hello World");
setDescription("This is a simple form that lets you enter your name and displays a greeting.");
setItemDataSource(new BeanItem(data));
setFooter(new VerticalLayout());
getFooter().addComponent(
new Label("This is the footer area of the Form. You can use any layout here. This is nice for buttons."));
// Have a button bar in the footer.
HorizontalLayout okbar = new HorizontalLayout();
okbar.setHeight("25px");
getFooter().addComponent(okbar);
// Add an Ok (commit), Reset (discard), and Cancel buttons
// for the form.
Button okbutton = new Button("OK", this, "commit");
okbar.addComponent(okbutton);
okbar.setComponentAlignment(okbutton, Alignment.TOP_RIGHT);
okbar.addComponent(new Button("Reset", this, "discard"));
okbar.addComponent(new Button("Cancel"));
}
}
HelloWorldBean
package vaadinapp.hello;
public class HelloWorldBean {
String greeting;
public String getGreeting() {
return greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
}