package com.constellio.app.modules.rm.ui.pages.decommissioning; import com.constellio.app.modules.rm.ui.entities.FolderDetailVO; import com.constellio.app.ui.entities.RecordVO; import com.constellio.app.ui.pages.base.BaseViewImpl; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.*; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.themes.ValoTheme; import static com.constellio.app.ui.i18n.i18n.$; public class OrderDecommissioningListViewImpl extends BaseViewImpl implements OrderDecommissioningListView { private OrderDecommissioningListPresenter presenter; private ListSelect listSelect; public static final String BUTTONS_LAYOUT = "base-form-buttons-layout"; public static final String SAVE_BUTTON = "base-form-save"; public static final String CANCEL_BUTTON = "base-form-cancel"; private RecordVO decommissioningList; public OrderDecommissioningListViewImpl() { presenter = new OrderDecommissioningListPresenter(this); } @Override protected void initBeforeCreateComponents(ViewChangeEvent event) { decommissioningList = presenter.forParams(event.getParameters()).getDecommissioningList(); } @Override protected String getTitle() { return $("OrderDecommissioningListView.viewTitle"); } @Override protected Component buildMainComponent(ViewChangeEvent event) { VerticalLayout mainLayout = new VerticalLayout(); mainLayout.setSizeFull(); mainLayout.setSpacing(true); HorizontalLayout subLayout = new HorizontalLayout(); subLayout.setSizeFull(); subLayout.setSpacing(true); subLayout.addComponents(folderList()); subLayout.addComponent(getSideButtonLayout()); mainLayout.addComponent(subLayout); mainLayout.addComponent(getFormButton()); return mainLayout; } private Component getFormButton() { HorizontalLayout mainLayout = new HorizontalLayout(); mainLayout.setSpacing(true); Button save = new Button($("save")); save.addStyleName(SAVE_BUTTON); save.addStyleName(ValoTheme.BUTTON_PRIMARY); save.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { presenter.saveButtonClicked(); } }); Button cancel = new Button($("cancel")); cancel.addStyleName(CANCEL_BUTTON); cancel.addStyleName(ValoTheme.BUTTON_PRIMARY); cancel.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { presenter.cancelButtonClicked(); } }); mainLayout.addComponent(save); mainLayout.addComponent(cancel); mainLayout.addStyleName(BUTTONS_LAYOUT); return mainLayout; } private Component getSideButtonLayout() { VerticalLayout verticalLayout = new VerticalLayout(); Button up = new Button($("OrderFacetConfigurationView.up")); up.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { FolderDetailVO value = (FolderDetailVO) listSelect.getValue(); if (value != null) { presenter.swap(value.getFolderId(), -1); refreshList(); listSelect.select(value.getFolderId()); } } }); Button down = new Button($("OrderFacetConfigurationView.down")); down.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { FolderDetailVO value = (FolderDetailVO) listSelect.getValue(); if (value != null) { presenter.swap(value.getFolderId(), 1); refreshList(); listSelect.select(value.getFolderId()); } } }); verticalLayout.addComponent(up); verticalLayout.addComponent(down); return verticalLayout; } private void refreshList() { listSelect.removeAllItems(); for (FolderDetailVO folderDetailVO : presenter.getFolderDetails()) { listSelect.addItem(folderDetailVO); String tmp = presenter.getLabelForCode(folderDetailVO); listSelect.setItemCaption(folderDetailVO, tmp); } } private ListSelect folderList() { listSelect = new ListSelect(""); listSelect.setWidth("100%"); refreshList(); return listSelect; } }