package com.constellio.app.ui.pages.management.taxonomy; import java.util.ArrayList; import java.util.List; import com.constellio.app.modules.rm.services.ValueListServices; import com.constellio.app.ui.entities.TaxonomyVO; import com.constellio.app.ui.framework.builders.TaxonomyToVOBuilder; import com.constellio.app.ui.pages.base.BasePresenter; import com.constellio.model.entities.CorePermissions; import com.constellio.model.entities.Taxonomy; import com.constellio.model.entities.records.wrappers.User; public class ListTaxonomyPresenter extends BasePresenter<ListTaxonomyView> { private List<String> titles; public ListTaxonomyPresenter(ListTaxonomyView view) { super(view); } public List<TaxonomyVO> getTaxonomies() { titles = new ArrayList<>(); TaxonomyToVOBuilder builder = new TaxonomyToVOBuilder(); User user = getCurrentUser(); TaxonomyPresentersService presentersService = new TaxonomyPresentersService(appLayerFactory); List<TaxonomyVO> result = new ArrayList<>(); for (Taxonomy taxonomy : valueListServices().getTaxonomies()) { if (presentersService.canManage(taxonomy.getCode(), user) && presentersService.displayTaxonomy(taxonomy.getCode(), user)) { result.add(builder.build(taxonomy)); titles.add(taxonomy.getTitle()); } } return result; } ValueListServices valueListServices() { return new ValueListServices(appLayerFactory, view.getCollection()); } public void addButtonClicked() { view.navigate().to().addTaxonomy(); } public void editButtonClicked(String taxonomyCode) { view.navigate().to().editTaxonomy(taxonomyCode); } public void displayButtonClicked(TaxonomyVO taxonomy) { view.navigate().to().taxonomyManagement(taxonomy.getCode()); } @Override protected boolean hasPageAccess(String params, User user) { return user.has(CorePermissions.MANAGE_TAXONOMIES).globally(); } }