package com.vaadin.v7.tests.server.component.fieldgroup;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.vaadin.annotations.PropertyId;
import com.vaadin.ui.FormLayout;
import com.vaadin.v7.data.fieldgroup.FieldGroup;
import com.vaadin.v7.data.util.ObjectProperty;
import com.vaadin.v7.data.util.PropertysetItem;
import com.vaadin.v7.ui.TextField;
public class FieldNamedDescriptionTest {
@Test
public void bindReadOnlyPropertyToFieldGroup() {
// Create an item
PropertysetItem item = new PropertysetItem();
item.addItemProperty("name", new ObjectProperty<String>("Zaphod"));
item.addItemProperty("description",
new ObjectProperty<String>("This is a description"));
// Define a form as a class that extends some layout
class MyForm extends FormLayout {
// Member that will bind to the "name" property
TextField name = new TextField("Name");
// This member will not bind to the desctiptionProperty as the name
// description conflicts with something in the binding process
@PropertyId("description")
TextField description = new TextField("Description");
public MyForm() {
// Add the fields
addComponent(name);
addComponent(description);
}
}
// Create one
MyForm form = new MyForm();
// Now create a binder that can also creates the fields
// using the default field factory
FieldGroup binder = new FieldGroup(item);
binder.bindMemberFields(form);
assertTrue(form.description.getValue().equals("This is a description"));
}
}