package com.constellio.app.modules.rm.ui.pages.decommissioning;
import static com.constellio.app.ui.i18n.i18n.$;
import java.util.List;
import com.constellio.app.ui.framework.components.SearchResultDetailedTable;
import com.constellio.app.ui.framework.components.SearchResultTable;
import com.constellio.app.ui.pages.search.AdvancedSearchCriteriaComponent;
import com.constellio.app.ui.pages.search.SearchViewImpl;
import com.constellio.app.ui.pages.search.criteria.Criterion;
import com.vaadin.ui.Alignment;
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.VerticalLayout;
import com.vaadin.ui.themes.ValoTheme;
public class AddExistingContainerViewImpl extends SearchViewImpl<AddExistingContainerPresenter>
implements AddExistingContainerView {
private AdvancedSearchCriteriaComponent criteria;
public AddExistingContainerViewImpl() {
presenter = new AddExistingContainerPresenter(this);
presenter.resetFacetAndOrder();
criteria = new AdvancedSearchCriteriaComponent(presenter);
}
@Override
protected String getTitle() {
return $("AddExistingContainerView.viewTitle");
}
@Override
protected ClickListener getBackButtonClickListener() {
return new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
presenter.backButtonClicked();
}
};
}
@Override
public void addEmptyCriterion() {
criteria.addEmptyCriterion();
}
@Override
public void setCriteriaSchemaType(String schemaType) {
criteria.setSchemaType(schemaType);
}
@Override
public void setSearchCriteria(List<Criterion> criteria) {
this.criteria.setSearchCriteria(criteria);
}
@Override
public void setAdministrativeUnit(String administrativeUnitID) {
}
@Override
public List<Criterion> getSearchCriteria() {
return criteria.getSearchCriteria();
}
@Override
protected Component buildSearchUI() {
Button addCriterion = new Button($("AddExistingContainerView.addCriterion"));
addCriterion.addStyleName(ValoTheme.BUTTON_LINK);
addCriterion.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
presenter.addCriterionRequested();
}
});
criteria.setWidth("100%");
Button searchButton = new Button($("AddExistingContainerView.search"));
searchButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
searchButton.setEnabled(true);
searchButton.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
presenter.searchRequested();
}
});
VerticalLayout searchUI = new VerticalLayout(addCriterion, criteria, searchButton);
searchUI.setComponentAlignment(addCriterion, Alignment.MIDDLE_RIGHT);
searchUI.setSpacing(true);
return searchUI;
}
@Override
protected Component buildSummary(SearchResultTable results) {
Button addContainers = new Button($("AddExistingContainerView.addContainers"));
addContainers.addStyleName(ValoTheme.BUTTON_LINK);
addContainers.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
presenter.containerAdditionRequested(getSelectedRecordIds());
}
});
return results.createSummary(buildSelectAllButton(), buildAddToSelectionButton(), addContainers);
}
@Override
public Boolean computeStatistics() {
return false;
}
}