package com.constellio.app.modules.rm.ui.pages.management;
import com.constellio.app.ui.framework.buttons.IconButton;
import com.constellio.app.ui.pages.base.BaseViewImpl;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.server.ThemeResource;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.themes.ValoTheme;
import static com.constellio.app.ui.i18n.i18n.$;
public class ArchiveManagementViewImpl extends BaseViewImpl implements ArchiveManagementView {
public static final ThemeResource DECOMMISSIONING_ICON = new ThemeResource("images/icons/config/platform_truck.png");
public static final String DECOMMISSIONING = "decommissioning-caption";
public static final ThemeResource NEW_CONTAINER_ICON = new ThemeResource("images/icons/config/container-add.png");
public static final String NEW_CONTAINER = "new-container";
public static final ThemeResource MULTIPLE_CONTAINERS_ICON = new ThemeResource("images/icons/config/boxes-add.png");
public static final String MULTIPLE_CONTAINERS = "new-boxes";
public static final ThemeResource CONTAINERS_ICON = new ThemeResource("images/icons/config/box.png");
public static final String CONTAINERS = "containers-caption";
public static final ThemeResource REPORTS_ICON = new ThemeResource("images/icons/config/report.png");
public static final String REPORTS = "reports-caption";
private final ArchiveManagementPresenter presenter;
private Button decommissioning, multipleContainers, newContainer, containers, reports, availableSpace;
public ArchiveManagementViewImpl() {
presenter = new ArchiveManagementPresenter(this);
}
@Override
protected String getTitle() {
return $("ArchiveManagementView.viewTitle");
}
@Override
protected Component buildMainComponent(ViewChangeEvent event) {
decommissioning = new IconButton(DECOMMISSIONING_ICON, $("ArchiveManagementView.decommissioning"), false) {
@Override
protected void buttonClick(ClickEvent event) {
presenter.decommissioningButtonClicked();
}
};
decommissioning.addStyleName(ValoTheme.BUTTON_ICON_ALIGN_TOP);
decommissioning.addStyleName(DECOMMISSIONING);
newContainer = new IconButton(NEW_CONTAINER_ICON, $("ArchiveManagementView.newContainer"), false) {
@Override
protected void buttonClick(ClickEvent event) {
presenter.newContainerButtonClicked();
}
};
newContainer.addStyleName(ValoTheme.BUTTON_ICON_ALIGN_TOP);
newContainer.addStyleName(NEW_CONTAINER);
multipleContainers = new IconButton(MULTIPLE_CONTAINERS_ICON, $("ArchiveManagementView.newContainers"), false) {
@Override
protected void buttonClick(ClickEvent event) {
presenter.multipleContainersButtonClicked();
}
};
multipleContainers.addStyleName(ValoTheme.BUTTON_ICON_ALIGN_TOP);
multipleContainers.addStyleName(MULTIPLE_CONTAINERS);
multipleContainers.setVisible(presenter.isMultipleContainersButtonVisible());
containers = new IconButton(CONTAINERS_ICON, $("ArchiveManagementView.containers"), false) {
@Override
protected void buttonClick(ClickEvent event) {
presenter.containersButtonClicked();
}
};
containers.addStyleName(ValoTheme.BUTTON_ICON_ALIGN_TOP);
containers.addStyleName(CONTAINERS);
reports = new IconButton(REPORTS_ICON, $("ArchiveManagementView.reports"), false) {
@Override
protected void buttonClick(ClickEvent event) {
presenter.reportsButtonClicked();
}
};
reports.addStyleName(ValoTheme.BUTTON_ICON_ALIGN_TOP);
reports.addStyleName(REPORTS);
presenter.onViewAssembled();
CssLayout layout = new CssLayout(decommissioning, multipleContainers, newContainer, containers, reports);
layout.addStyleName("view-group");
return layout;
}
@Override
public void setDecommissioningButtonVisible(boolean visible) {
decommissioning.setVisible(visible);
}
@Override
public void setNewContainerButtonVisible(boolean visible) {
newContainer.setVisible(visible);
}
@Override
public void setContainersButtonVisible(boolean visible) {
containers.setVisible(visible);
}
@Override
public void setPrintReportsButtonVisible(boolean visible) {
reports.setVisible(visible);
}
}