package com.constellio.app.ui.framework.components.table; import com.constellio.app.ui.framework.components.table.columns.TableColumnsManager; import com.vaadin.data.Container; import com.vaadin.ui.Table; public class BaseTable extends Table { private String tableId; private TableColumnsManager columnsManager; public BaseTable(String tableId) { super(); this.tableId = tableId; init(); } public BaseTable(String tableId, String caption) { super(caption); this.tableId = tableId; init(); } public BaseTable(String tableId, String caption, Container dataSource) { super(caption, dataSource); this.tableId = tableId; init(); } private void init() { addAttachListener(new AttachListener() { @Override public void attach(AttachEvent event) { String tableId = getTableId(); if (tableId != null && columnsManager == null) { columnsManager = newColumnsManager(); columnsManager.manage(BaseTable.this, tableId); } } }); } protected TableColumnsManager newColumnsManager() { return new TableColumnsManager(); } protected String getTableId() { return tableId; } }