Project

General

Profile

« Previous | Next » 

Revision f8c40685

Added by Katja Luther almost 4 years ago

ref #8785: adapt aggregation wizard, add aggregation to context mennu

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/AggregationHandler.java
8 8
*/
9 9
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
10 10

  
11
import java.util.ArrayList;
12
import java.util.Iterator;
11 13
import java.util.List;
12 14
import java.util.UUID;
13 15

  
......
28 30
import org.eclipse.jface.wizard.WizardDialog;
29 31

  
30 32
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
31
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
32 33
import eu.etaxonomy.cdm.api.service.UpdateResult;
33 34
import eu.etaxonomy.cdm.api.service.description.AggregationMode;
34 35
import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
......
63 64
        StructuredDescriptionAggregationConfiguration config = StructuredDescriptionAggregationConfiguration.NewInstance(
64 65
                null, null);
65 66
        IStructuredSelection sel = matrix.getSelection();
66
        Object o = sel.getFirstElement();
67
//        Object o = sel.getFirstElement();
68
        List<TaxonNodeDto> nodeDtos = new ArrayList<>();
69
        Iterator iterator = sel.iterator();
70
        while (iterator.hasNext()){
71
            Object o = iterator.next();
72
            if (o instanceof TaxonNodeDto){
73
                nodeDtos.add((TaxonNodeDto)o);
74
            }
75
        }
67 76
        TaxonNodeFilter filter = TaxonNodeFilter.NewRankInstance(matrix.getDescriptiveDataSet().getMinRank(),
68 77
                matrix.getDescriptiveDataSet().getMaxRank());
69 78
        for (NamedArea namedArea : matrix.getDescriptiveDataSet().getGeoFilter()) {
......
71 80
        }
72 81

  
73 82

  
74
        if (o instanceof TaxonNodeDto){
75
            filter = filter.orSubtree(CdmStore.getService(ITaxonNodeService.class).load(((TaxonNodeDto)o).getUuid()));
83
        if (!nodeDtos.isEmpty()){
84
            for (TaxonNodeDto dto: nodeDtos){
85
                filter = filter.orSubtree(dto.getUuid());
86
            }
76 87
        }else{
77 88
            for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
78 89
                filter = filter.orSubtree(taxonNode);
......
84 95
        config.setAggregateToHigherRanks(true);
85 96
        config.setAggregationMode(AggregationMode.byAreasAndRanks());
86 97
        config.setAdaptBatchSize(false);
87
        StructuredAggregationConfigurationWizard aggregationWizard = new StructuredAggregationConfigurationWizard(config, matrix.getDescriptiveDataSet());
98
        TaxonNodeDto node = null;
99

  
100
        StructuredAggregationConfigurationWizard aggregationWizard = new StructuredAggregationConfigurationWizard(config, matrix.getDescriptiveDataSet(), nodeDtos);
88 101
        WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
89 102
                aggregationWizard);
90 103

  

Also available in: Unified diff