package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.annotations.PropertyId;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.GridLayout;
import com.vaadin.v7.data.fieldgroup.FieldGroup;
import com.vaadin.v7.data.util.BeanItem;
import com.vaadin.v7.ui.TextArea;
import com.vaadin.v7.ui.TextField;
public class FormUsingExistingLayout extends AbstractReindeerTestUI {
public static class Notice {
String firstName;
String lastName;
String message;
public Notice(String firstName, String lastName, String message) {
this.firstName = firstName;
this.lastName = lastName;
this.message = message;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
public static class MyFormLayout extends GridLayout {
private TextField firstName = new TextField("First name");
private TextField lastName = new TextField("Last name");
// The name of the property is by default the name of the member field,
// but it can be redefined with the @PropertyId annotation
@PropertyId("message")
private TextArea messageField = new TextArea("Your message");
public MyFormLayout() {
// Set up the GridLayout
super(2, 3);
setSpacing(true);
// Add the (currently unbound) fields
addComponent(firstName);
addComponent(lastName);
addComponent(messageField, 0, 1, 1, 1);
messageField.setWidth("100%");
}
}
@Override
protected void setup(VaadinRequest request) {
// Create the layout
MyFormLayout myFormLayout = new MyFormLayout();
// Create a field group and use it to bind the fields in the layout
FieldGroup fieldGroup = new FieldGroup(
new BeanItem<>(new Notice("John", "Doe", "")));
fieldGroup.bindMemberFields(myFormLayout);
addComponent(myFormLayout);
}
@Override
protected String getTestDescription() {
return "Mini tutorial for https://vaadin.com/wiki/-/wiki/Main/Creating%20a%20form%20using%20an%20existing%20layout";
}
@Override
protected Integer getTicketNumber() {
return null;
}
}