ref #8679 Set taxon node filter and aggregation mode
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 28 Nov 2019 14:54:43 +0000 (15:54 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 28 Nov 2019 14:54:43 +0000 (15:54 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixBottomToolbar.java

index 7c8ebca95471b33c83fe95192d85b56d6aa11aac..c5087d6184f7d0770255add8deb9647f6133635c 100644 (file)
@@ -37,15 +37,18 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.description.DescriptionAggregationConfigurationBase.AggregationMode;
 import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
+import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
@@ -194,6 +197,14 @@ public class CharacterMatrixBottomToolbar extends Composite{
                 null, null);
         config.setDatasetUuid(matrix.getDescriptiveDataSet().getUuid());
         config.setAggregateToHigherRanks(true);
+        config.setAggregationMode(AggregationMode.byAreasAndRanks());
+        TaxonNodeFilter filter = TaxonNodeFilter.NewInstance();
+        Set<TaxonNode> taxonSubtreeFilter = matrix.getDescriptiveDataSet().getTaxonSubtreeFilter();
+        for (TaxonNode taxonNode : taxonSubtreeFilter) {
+            filter = filter.orSubtree(taxonNode);
+        }
+        config.setTaxonNodeFilter(filter);
+
         UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
 
         String jobLabel = "Aggregate Descriptive Data Set";