package com.constellio.app.modules.rm.ui.pages.containers; import static com.constellio.app.ui.i18n.i18n.$; import com.constellio.app.ui.entities.RecordVO; import com.constellio.app.ui.framework.buttons.DisplayButton; import com.constellio.app.ui.framework.components.RecordDisplay; import com.constellio.app.ui.framework.components.table.RecordVOTable; import com.constellio.app.ui.framework.containers.AdminUnitsWithContainersCountContainer; import com.constellio.app.ui.framework.containers.ButtonsContainer; import com.constellio.app.ui.framework.containers.ButtonsContainer.ContainerButton; import com.constellio.app.ui.framework.containers.RecordVOLazyContainer; import com.constellio.app.ui.pages.base.BaseViewImpl; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.Button; import com.vaadin.ui.Component; import com.vaadin.ui.VerticalLayout; public class ContainersInAdministrativeUnitViewImpl extends BaseViewImpl implements ContainersInAdministrativeUnitView { private ContainersInAdministrativeUnitPresenter presenter; public ContainersInAdministrativeUnitViewImpl() { presenter = new ContainersInAdministrativeUnitPresenter(this); } @Override protected Component buildMainComponent(ViewChangeEvent event) { presenter.forParams(event.getParameters()); VerticalLayout layout = new VerticalLayout(); layout.setSpacing(true); layout.addComponent(new RecordDisplay(presenter.getAdministrativeUnit())); layout.addComponent(buildChildrenAdminUnitsTable()); layout.addComponent(buildContainersTable()); return layout; } private Component buildChildrenAdminUnitsTable() { RecordVOLazyContainer recordVOLazyContainer = new RecordVOLazyContainer(presenter.getChildrenAdminUnitsDataProvider()); AdminUnitsWithContainersCountContainer adaptedContainer = new AdminUnitsWithContainersCountContainer( recordVOLazyContainer, getCollection(), getSessionContext().getCurrentUser().getId(), presenter.tabName); ButtonsContainer buttonsContainer = new ButtonsContainer(adaptedContainer, "buttons"); buttonsContainer.addButton(new ContainerButton() { @Override protected Button newButtonInstance(final Object itemId, ButtonsContainer<?> container) { return new DisplayButton() { @Override protected void buttonClick(ClickEvent event) { Integer index = (Integer) itemId; RecordVO entity = presenter.getChildrenAdminUnitsDataProvider().getRecordVO(index); presenter.displayAdminUnitButtonClicked(presenter.tabName, entity); } }; } }); RecordVOTable table = new RecordVOTable($("ContainersInAdministrativeUnitView.childrenAdminUnitsTableTitle"), buttonsContainer); table.setWidth("100%"); table.setColumnHeader("buttons", ""); table.setColumnHeader(AdminUnitsWithContainersCountContainer.CONTAINERS_COUNT, $("containersCount")); table.setColumnHeader(AdminUnitsWithContainersCountContainer.SUB_ADMINISTRATIVE_UNITS_COUNT, $("subAdministrativeUnitsCount")); // table.setColumnWidth(dataProvider.getSchema().getCode() + "_id", 120); table.setPageLength(table.getItemIds().size()); return table; } private Component buildContainersTable() { RecordVOLazyContainer recordVOLazyContainer = new RecordVOLazyContainer(presenter.getContainersDataProvider()); ButtonsContainer buttonsContainer = new ButtonsContainer(recordVOLazyContainer, "buttons"); buttonsContainer.addButton(new ContainerButton() { @Override protected Button newButtonInstance(final Object itemId, ButtonsContainer<?> container) { return new DisplayButton() { @Override protected void buttonClick(ClickEvent event) { Integer index = (Integer) itemId; RecordVO entity = presenter.getContainersDataProvider().getRecordVO(index); presenter.displayContainerButtonClicked(entity); } }; } }); RecordVOTable table = new RecordVOTable($("ContainersInFilingSpaceView.containersTableTitle"), buttonsContainer); table.setWidth("100%"); table.setColumnHeader("buttons", ""); // table.setColumnWidth(dataProvider.getSchema().getCode() + "_id", 120); table.setPageLength(table.getItemIds().size()); table.setVisible(table.getItemIds().size() > 0); return table; } @Override protected String getTitle() { return $("ContainersInAdministrativeUnitView.viewTitle"); } }