Project

General

Profile

Download (3.97 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.ui.dialog.configurator;
10

    
11
import java.util.List;
12

    
13
import org.eclipse.jface.wizard.Wizard;
14

    
15
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
16
import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
17
import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
18
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
19
import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
20
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
21
import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
22
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
23
import eu.etaxonomy.cdm.persistence.dto.TermDto;
24
import eu.etaxonomy.taxeditor.l10n.Messages;
25
import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
26

    
27
/**
28
 * @author k.luther
29
 * @since 11.12.2019
30
 */
31
public class StructuredAggregationConfigurationWizard extends Wizard implements IPostMoniteredOperationEnabled {
32

    
33
    private final StructuredDescriptionAggregationConfiguration configurator;
34
    private StructuredDescriptionAggregationConfigurationWizardPage page;
35
    private ILongRunningTasksService longRunningTaskService;
36
    private DescriptiveDataSetBaseDto dataSet;
37
    private List<TaxonNodeDto> selectedNodes;
38

    
39

    
40
    public StructuredAggregationConfigurationWizard(StructuredDescriptionAggregationConfiguration config, DescriptiveDataSetBaseDto dataSet, List<TaxonNodeDto> nodes) {
41
        super();
42
        this.configurator = config;
43
        this.dataSet = dataSet;
44
        setNeedsProgressMonitor(true);
45
        this.setWindowTitle(Messages.SetAggregationConfiguration_Title);
46
        longRunningTaskService = CdmApplicationState.getLongRunningTasksService();
47
        this.selectedNodes = nodes;
48
    }
49

    
50

    
51

    
52
    @Override
53
    public void postOperation(IRemotingProgressMonitor monitor) {
54
        // TODO Auto-generated method stub
55

    
56
    }
57

    
58
    @Override
59
    public boolean performFinish() {
60
        configurator.setAggregatingSourceTypes(page.getSourceTypes());
61
        configurator.setAggregationMode(page.getAggregationMode());
62
        configurator.setToParentSourceMode(page.getSourceModeChildParent());
63

    
64

    
65

    
66
//        for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
67
//            filter = filter.orSubtree(taxonNode);
68
//        }
69
        TaxonNodeFilter filter = configurator.getTaxonNodeFilter();
70
        if (!page.useHigherLevel()) {
71
            filter.setRankMax(dataSet.getMaxRank().getUuid());
72
            filter.setRankMin(dataSet.getMinRank().getUuid());
73

    
74
            for (TermDto namedArea : dataSet.getGeoFilter()) {
75
                filter = filter.orArea(namedArea.getUuid());
76
            }
77
            //TODO: check whether this is correct!!!!
78
            for (TaxonNode node: page.getSelectedTaxonNodes()) {
79
                if (page.useSubtree()){
80
                    filter = filter.orSubtree(node);
81
                }else{
82
                    filter = filter.orTaxon(node.getTaxon());
83
                }
84
            }
85
            configurator.setTaxonNodeFilter(filter);
86
        }else{
87
            filter = TaxonNodeFilter.NewRankInstance(dataSet.getMinRank().getUuid(),
88
                    dataSet.getMaxRank().getUuid());
89
            for (TermDto namedArea : dataSet.getGeoFilter()) {
90
                filter = filter.orArea(namedArea.getUuid());
91
            }
92
            for (TaxonNodeDto taxonNode : dataSet.getSubTreeFilter()) {
93
                filter = filter.orSubtree(taxonNode.getUuid());
94
            }
95
            configurator.setTaxonNodeFilter(filter);
96
        }
97

    
98

    
99

    
100
        return true;
101
    }
102

    
103
    @Override
104
    public void addPages() {
105
        page = new StructuredDescriptionAggregationConfigurationWizardPage(configurator, selectedNodes);
106
        addPage(page);
107

    
108
    }
109
}
(9-9/10)