package org.ovirt.engine.ui.webadmin.section.main.view; import org.ovirt.engine.ui.common.MainTableHeaderlessResources; import org.ovirt.engine.ui.common.MainTableResources; import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.view.AbstractView; import org.ovirt.engine.ui.common.widget.table.SimpleActionTable; import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; import com.google.gwt.core.client.GWT; import com.google.gwt.user.cellview.client.CellTable.Resources; /** * Base class for table-based main tab views. * * @param <T> * Table row data type. * @param <M> * Main model type. */ public abstract class AbstractMainTabTableView<T, M extends SearchableListModel> extends AbstractView { private final MainModelProvider<T, M> modelProvider; @WithElementId public final SimpleActionTable<T> table; public AbstractMainTabTableView(MainModelProvider<T, M> modelProvider) { this.modelProvider = modelProvider; this.table = createActionTable(); } protected SimpleActionTable<T> createActionTable() { return new SimpleActionTable<T>(modelProvider, getTableHeaderlessResources(), getTableResources(), ClientGinjectorProvider.getEventBus(), ClientGinjectorProvider.getClientStorage()) { { showRefreshButton(); showPagingButtons(); showItemsCount(); showSelectionCountTooltip(); enableHeaderContextMenu(); } }; } protected Resources getTableHeaderlessResources() { return (Resources) GWT.create(MainTableHeaderlessResources.class); } protected Resources getTableResources() { return (Resources) GWT.create(MainTableResources.class); } protected M getMainModel() { return modelProvider.getModel(); } public SimpleActionTable<T> getTable() { return table; } public MainModelProvider<T, M> getModelProvider() { return modelProvider; } }