package com.constellio.app.ui.pages.management.facet; import static com.constellio.app.ui.i18n.i18n.$; import com.constellio.app.ui.pages.base.BaseViewImpl; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.Component; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.ListSelect; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; public class OrderFacetConfigurationViewImpl extends BaseViewImpl implements OrderFacetConfigurationView { private OrderFacetConfigurationPresenter 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"; public OrderFacetConfigurationViewImpl() { presenter = new OrderFacetConfigurationPresenter(this); } @Override protected String getTitle() { return $("OrderFacetConfigurationView.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(facetList()); 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) { String value = (String) listSelect.getValue(); if (value != null && !value.isEmpty()) { presenter.swap(value, -1); refreshList(); listSelect.select(value); } } }); Button down = new Button($("OrderFacetConfigurationView.down")); down.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { String value = (String) listSelect.getValue(); if (value != null && !value.isEmpty()) { presenter.swap(value, 1); refreshList(); listSelect.select(value); } } }); verticalLayout.addComponent(up); verticalLayout.addComponent(down); return verticalLayout; } private void refreshList() { listSelect.removeAllItems(); for (String code : presenter.getFacetTitle()) { listSelect.addItem(code); String tmp = presenter.getLabelForCode(code); listSelect.setItemCaption(code, tmp); } } private ListSelect facetList() { listSelect = new ListSelect(""); listSelect.setWidth("100%"); refreshList(); return listSelect; } @Override protected void initBeforeCreateComponents(ViewChangeEvent event) { } }