package com.constellio.app.ui.pages.management.schemas; import com.constellio.app.entities.schemasDisplay.SchemaTypeDisplayConfig; import com.constellio.app.services.metadata.AppSchemasServices; import com.constellio.app.ui.application.NavigatorConfigurationService; import com.constellio.app.ui.entities.MetadataSchemaTypeVO; import com.constellio.app.ui.framework.builders.MetadataSchemaTypeToVOBuilder; import com.constellio.app.ui.framework.data.SchemaTypeVODataProvider; import com.constellio.app.ui.pages.base.SingleSchemaBasePresenter; import com.constellio.app.ui.params.ParamUtils; import com.constellio.model.entities.CorePermissions; import com.constellio.model.entities.records.wrappers.User; import java.util.HashMap; import java.util.Map; public class ListSchemaTypePresenter extends SingleSchemaBasePresenter<ListSchemaTypeView> { public ListSchemaTypePresenter(ListSchemaTypeView view) { super(view); } @Override protected boolean hasPageAccess(String params, User user) { return user.has(CorePermissions.MANAGE_METADATASCHEMAS).globally(); } public SchemaTypeVODataProvider getDataProvider() { return new SchemaTypeVODataProvider(new MetadataSchemaTypeToVOBuilder(), appLayerFactory, collection); } public void editButtonClicked(MetadataSchemaTypeVO schemaTypeVO) { Map<String, String> paramsMap = new HashMap<>(); paramsMap.put("schemaTypeCode", schemaTypeVO.getCode()); String params = ParamUtils.addParams(NavigatorConfigurationService.DISPLAY_SCHEMA, paramsMap); view.navigate().to().listSchema(params); } public void listGroupButtonClicked(MetadataSchemaTypeVO schemaTypeVO) { Map<String, String> paramsMap = new HashMap<>(); paramsMap.put("schemaTypeCode", schemaTypeVO.getCode()); String params = ParamUtils.addParams(NavigatorConfigurationService.LIST_ONGLET, paramsMap); view.navigate().to().listTabDisplayForm(params); } public void backButtonClicked() { view.navigate().to().adminModule(); } public void reportButtonClicked(MetadataSchemaTypeVO schemaVO) { Map<String, String> paramsMap = new HashMap<>(); paramsMap.put("schemaTypeCode", schemaVO.getCode()); String params = ParamUtils.addParams(NavigatorConfigurationService.REPORT_DISPLAY_FORM, paramsMap); view.navigate().to().reportDisplayForm(params); } public boolean isSearchableSchema(String schemaCode) { SchemaTypeDisplayConfig config = schemasDisplayManager().getType(collection, schemaCode); if (config.isAdvancedSearch()) { return true; } return false; } }