package com.constellio.app.ui.framework.containers; import com.constellio.app.ui.framework.data.DataProvider; import com.constellio.app.ui.framework.data.DataProvider.DataRefreshListener; import com.vaadin.data.util.IndexedContainer; @SuppressWarnings("serial") public abstract class DataContainer<T extends DataProvider> extends ContainerAdapter<IndexedContainer> implements RefreshableContainer { private T dataProvider; public DataContainer(T dataProvider) { super(new IndexedContainer()); this.dataProvider = dataProvider; dataProvider.addDataRefreshListener(new DataRefreshListener() { @Override public void dataRefresh() { DataContainer.this.refresh(); } }); } @Override public void refresh() { removeAllItems(); populateFromData(dataProvider); } protected abstract void populateFromData(T dataProvider); }