package org.vaadin.jefferson.demo.simpleaddressbook.content; import org.vaadin.jefferson.content.SelectionControl; import org.vaadin.jefferson.demo.simpleaddressbook.domain.Contact; import com.vaadin.data.Container.Filter; import com.vaadin.data.util.BeanItemContainer; import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.Table; public final class ContactList extends SelectionControl<Contact> { public ContactList() { super("Contact list", Contact.class); } @Override public Table createFallback() { return new Table(); } public void removeContact(Contact contact) { getRendition().getContainerDataSource().removeItem(contact); } public void addNewContact() { AbstractSelect rendition = getRendition(); Contact contact = new Contact(); @SuppressWarnings("unchecked") BeanItemContainer<Contact> container = (BeanItemContainer<Contact>) rendition.getContainerDataSource(); container.addItemAt(0, contact); rendition.select(contact); if (rendition instanceof Table) { ((Table) rendition).setCurrentPageFirstItemId(contact); } } public void filter(Object propertyId, Filter filter) { @SuppressWarnings("unchecked") BeanItemContainer<Contact> container = (BeanItemContainer<Contact>) getRendition().getContainerDataSource(); container.removeContainerFilters(propertyId); if (filter != null) { container.addContainerFilter(filter); } } }