package com.constellio.app.ui.pages.management.app; import java.io.OutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.constellio.app.entities.modules.ProgressInfo; import com.constellio.app.services.appManagement.AppManagementService; import com.constellio.app.services.appManagement.AppManagementServiceException; import com.constellio.app.ui.pages.base.BasePresenter; import com.constellio.app.ui.util.MessageUtils; import com.constellio.data.io.streamFactories.StreamFactory; import com.constellio.model.entities.CorePermissions; import com.constellio.model.entities.records.wrappers.User; @SuppressWarnings("serial") public class AppManagementPresenter extends BasePresenter<AppManagementView> { private static final Logger LOGGER = LoggerFactory.getLogger(AppManagementPresenter.class); public AppManagementPresenter(AppManagementView view) { super(view); } @Override protected boolean hasPageAccess(String params, User user) { return user.hasAny(CorePermissions.MANAGE_SYSTEM_UPDATES).globally(); } public void restartApplicationButtonClicked() { try { appManagementService().restart(); } catch (AppManagementServiceException e) { view.showErrorMessage(MessageUtils.toMessage(e)); // FIXME No reference to Vaadin objects // view.getErrorHandler().error(new ErrorEvent(e)); } } public void updateApplicationButtonClicked() { try { appManagementService().update(new ProgressInfo()); } catch (AppManagementServiceException e) { LOGGER.warn("Error when updating", e); view.showErrorMessage(MessageUtils.toMessage(e)); // FIXME No reference to Vaadin objects // view.getErrorHandler().error(new ErrorEvent(e)); } } public void onSuccessfullUpload() { boolean canUpdate = appManagementService().isWarFileUploaded(); view.setUpdateButtonVisible(canUpdate); } public void enterView() { boolean canUpdate = appManagementService().isWarFileUploaded(); view.setUpdateButtonVisible(canUpdate); StreamFactory<OutputStream> warFileDestination = appManagementService().getWarFileDestination(); view.setWarFileDestination(warFileDestination); // view.setWarVersion(getApplicationServices().getWarVersion()); view.setWebappName(appManagementService().getWebappFolderName()); } private AppManagementService appManagementService() { return appLayerFactory.newApplicationService(); } }