1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- ---
- title: Auto Generating A Form Based On A Bean Vaadin 6 Style Form
- order: 21
- layout: page
- ---
-
- [[auto-generating-a-form-based-on-a-bean-vaadin-6-style-form]]
- = Auto-generating a form based on a bean - Vaadin 6 style Form
-
- In Vaadin 6 it is easy to get a completely auto generated form based on
- a bean instance by creating a `BeanItem` and passing that to a Form. Using
- `FieldGroup` this requires a few extra lines as `FieldGroup` never adds
- fields automatically to any layout but instead gives that control to the
- developer.
-
- Given a bean such as this `Person`:
-
- [source,java]
- ....
- public class Person {
- private String firstName,lastName;
- private int age;
- // + setters and getters
- }
- ....
-
- You can auto create a form using FieldGroup as follows:
-
- [source,java]
- ....
- public class AutoGeneratedFormUI extends UI {
- @Override
- public void init(VaadinRequest request) {
- VerticalLayout layout = new VerticalLayout();
- setContent(layout);
-
- FieldGroup fieldGroup = new BeanFieldGroup<Person>(Person.class);
-
- // We need an item data source before we create the fields to be able to
- // find the properties, otherwise we have to specify them by hand
- fieldGroup.setItemDataSource(new BeanItem<Person>(new Person("John", "Doe", 34)));
-
- // Loop through the properties, build fields for them and add the fields
- // to this UI
- for (Object propertyId : fieldGroup.getUnboundPropertyIds()) {
- layout.addComponent(fieldGroup.buildAndBind(propertyId));
- }
- }
- }
- ....
|