package com.vaadin.tests.util; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Random; import com.vaadin.v7.data.util.BeanItemContainer; @SuppressWarnings("serial") public class PersonContainer extends BeanItemContainer<Person> implements Serializable { /** * Natural property order for Person bean. Used in tables and forms. */ public static final Object[] NATURAL_COL_ORDER = new Object[] { "firstName", "lastName", "email", "phoneNumber", "address.streetAddress", "address.postalCode", "address.city" }; /** * "Human readable" captions for properties in same order as in * NATURAL_COL_ORDER. */ public static final String[] COL_HEADERS_ENGLISH = new String[] { "First name", "Last name", "Email", "Phone number", "Street Address", "Postal Code", "City" }; public PersonContainer() { super(Person.class); addNestedContainerProperty("address.streetAddress"); addNestedContainerProperty("address.postalCode"); addNestedContainerProperty("address.city"); } public static PersonContainer createWithTestData() { return createWithTestData(100); } public static PersonContainer createWithTestData(int size) { PersonContainer c = new PersonContainer(); c.addAll(createTestData(size)); return c; } public static Collection<Person> createTestData() { return createTestData(100); } public static Collection<Person> createTestData(int size) { Random r = new Random(0); ArrayList<Person> testData = new ArrayList<>(); for (int i = 0; i < size; i++) { Person p = new Person(); p.setFirstName(TestDataGenerator.getFirstName(r)); p.setLastName(TestDataGenerator.getLastName(r)); p.getAddress().setCity(TestDataGenerator.getCity(r)); p.setEmail(p.getFirstName().toLowerCase() + "." + p.getLastName().toLowerCase() + "@vaadin.com"); p.setPhoneNumber(TestDataGenerator.getPhoneNumber(r)); p.getAddress().setPostalCode(TestDataGenerator.getPostalCode(r)); p.getAddress() .setStreetAddress(TestDataGenerator.getStreetAddress(r)); testData.add(p); } return testData; } }