package com.constellio.app.ui.pages.batchprocess; import static com.constellio.app.ui.i18n.i18n.$; import com.constellio.app.ui.framework.components.table.BaseTable; import com.constellio.app.ui.framework.containers.BatchProcessContainer; import com.constellio.app.ui.framework.data.BatchProcessDataProvider; import com.constellio.app.ui.pages.base.BaseViewImpl; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.Component; import com.vaadin.ui.TabSheet; import com.vaadin.ui.VerticalLayout; public class ListBatchProcessesViewImpl extends BaseViewImpl implements ListBatchProcessesView { private BatchProcessDataProvider userBatchProcessDataProvider; private BatchProcessDataProvider systemBatchProcessDataProvider; private ListBatchProcessesPresenter presenter; public ListBatchProcessesViewImpl() { this.presenter = new ListBatchProcessesPresenter(this); } @Override public void setUserBatchProcesses(BatchProcessDataProvider dataProvider) { this.userBatchProcessDataProvider = dataProvider; } @Override public void setSystemBatchProcesses(BatchProcessDataProvider dataProvider) { this.systemBatchProcessDataProvider = dataProvider; } @Override protected Component buildMainComponent(ViewChangeEvent event) { VerticalLayout mainLayout = new VerticalLayout(); mainLayout.addStyleName("batch-processes"); mainLayout.setSizeFull(); mainLayout.setSpacing(true); if (systemBatchProcessDataProvider != null) { BaseTable userBatchProcessTable = newTable(false, null); BaseTable systemBatchProcessTable = newTable(true, null); TabSheet tabSheet = new TabSheet(); tabSheet.addTab(userBatchProcessTable, $("ListBatchProcessesView.userBatchProcesses")); tabSheet.addTab(systemBatchProcessTable, $("ListBatchProcessesView.systemBatchProcesses")); mainLayout.addComponent(tabSheet); } else { BaseTable userBatchProcessTable = newTable(false, $("ListBatchProcessesView.userBatchProcesses")); mainLayout.addComponent(userBatchProcessTable); } return mainLayout; } private BaseTable newTable(boolean systemBatchProcesses, String caption) { BatchProcessContainer container; BaseTable batchProcessTable; if (systemBatchProcesses) { container = new BatchProcessContainer(systemBatchProcessDataProvider, systemBatchProcesses); batchProcessTable = new BaseTable("ListBatchProcessesView.systemBatchProcesses", caption); } else { container = new BatchProcessContainer(userBatchProcessDataProvider, systemBatchProcesses); batchProcessTable = new BaseTable("ListBatchProcessesView.userBatchProcesses", $("ListBatchProcessesView.userBatchProcesses")); } batchProcessTable.setContainerDataSource(container); batchProcessTable.setColumnHeader("rank", $("ListBatchProcessesView.rank")); batchProcessTable.setColumnHeader("title", $("ListBatchProcessesView.title")); batchProcessTable.setColumnHeader("status", $("ListBatchProcessesView.status")); batchProcessTable.setColumnHeader("requestDateTime", $("ListBatchProcessesView.requestDateTime")); batchProcessTable.setColumnHeader("startDateTime", $("ListBatchProcessesView.startDateTime")); batchProcessTable.setColumnHeader("handledRecordsCount", $("ListBatchProcessesView.handledRecordsCount")); batchProcessTable.setColumnHeader("totalRecordsCount", $("ListBatchProcessesView.totalRecordsCount")); batchProcessTable.setColumnHeader("progress", $("ListBatchProcessesView.progress")); batchProcessTable.setColumnHeader("username", $("ListBatchProcessesView.username")); batchProcessTable.setColumnHeader("collection", $("ListBatchProcessesView.collection")); batchProcessTable.setWidth("98%"); return batchProcessTable; } @Override protected boolean isBackgroundViewMonitor() { return true; } @Override protected void onBackgroundViewMonitor() { presenter.backgroundViewMonitor(); } @Override protected String getTitle() { return $("ListBatchProcessesView.viewTitle"); } @Override protected boolean isFullWidthIfActionMenuAbsent() { return true; } }