package de.akquinet.engineering.vaadinator.example.address.ui.std.view; import java.util.List; import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition; import com.vaadin.data.Container; import com.vaadin.data.Item; import com.vaadin.data.Property; import com.vaadin.data.util.BeanItem; import de.akquinet.engineering.vaadinator.example.address.model.Address; import de.akquinet.engineering.vaadinator.example.address.ui.std.view.container.AddressLazyQueryContainer; import de.akquinet.engineering.vaadinator.example.address.ui.std.view.container.AddressLazyQueryFactory; import de.akquinet.engineering.vaadinator.example.address.ui.view.ButtonFactory; import de.akquinet.engineering.vaadinator.example.address.ui.view.ExceptionMappingStrategy; public class AddressSelectViewImplEx extends AddressSelectViewImpl { private AddressSelectView.Observer observer; private AddressLazyQueryContainer container; public AddressSelectViewImplEx(ExceptionMappingStrategy exceptionMappingStrategy, ButtonFactory buttonFactory) { super(exceptionMappingStrategy, buttonFactory); } @Override protected Container initContainer() { AddressLazyQueryFactory factory = new AddressLazyQueryFactory(observer); // quite small batch size, for debugging. Don't use that in production. container = new AddressLazyQueryContainer(new LazyQueryDefinition(false, 2, null), factory); return container; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public Address getAddressSelection() { Item item = container.getItem(((Property) addressTable).getValue()); return ((BeanItem<Address>) item).getBean(); } @Override public void setOrRefreshData(List<Address> addressList) { if (container != null) { container.refresh(); } } @Override public void setObserver(Observer observer) { super.setObserver(observer); this.observer = observer; } }