Project

General

Profile

« Previous | Next » 

Revision 225e3aa7

Added by Patrick Plitzner over 4 years ago

ref #7597 Adapt to service changes

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixBottomToolbar.java
13 13
import java.util.List;
14 14
import java.util.Map;
15 15
import java.util.UUID;
16
import java.util.stream.Collectors;
17 16

  
18 17
import org.eclipse.jface.layout.GridDataFactory;
19 18
import org.eclipse.jface.window.Window;
......
26 25

  
27 26
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
28 27
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
29
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
30 28
import eu.etaxonomy.cdm.api.service.UpdateResult;
31 29
import eu.etaxonomy.cdm.api.service.config.IdentifiableServiceConfiguratorImpl;
32 30
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
33 31
import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
34
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
35 32
import eu.etaxonomy.cdm.common.CdmUtils;
33
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
36 34
import eu.etaxonomy.cdm.model.description.CategoricalData;
37 35
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
38 36
import eu.etaxonomy.cdm.model.description.Feature;
......
40 38
import eu.etaxonomy.cdm.model.description.QuantitativeData;
41 39
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
42 40
import eu.etaxonomy.cdm.model.description.TaxonDescription;
43
import eu.etaxonomy.cdm.model.taxon.Taxon;
44
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
45 41
import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;
46
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
47 42
import eu.etaxonomy.cdm.strategy.generate.PolytomousKeyGenerator;
48 43
import eu.etaxonomy.cdm.strategy.generate.PolytomousKeyGeneratorConfigurator;
49 44
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
......
53 48
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
54 49
import eu.etaxonomy.taxeditor.store.CdmStore;
55 50
import eu.etaxonomy.taxeditor.store.StoreUtil;
56
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonSelectionDialog;
57 51

  
58 52
/**
59 53
 * @author pplitzner
......
156 150
                if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
157 151
                    return;
158 152
                }
159
                List<TaxonNode> taxonSubtreeFilter = CdmStore.getService(IDescriptiveDataSetService.class).loadFilteredTaxonNodes(matrix.getDescriptiveDataSet(), null);
160
                List<TaxonNodeDto> nodeDtos = taxonSubtreeFilter.stream()
161
                        .map(node -> new TaxonNodeDto(node)).collect(Collectors.toList());
162
                TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).findCommonParentDto(nodeDtos);
163
                UUID taxonUuid = parentDto.getTaxonUuid();
164
                int response = MessagingUtils.confirmDialog(
165
                        Messages.CharacterMatrixBottomToolbar_AGGREGATION_TITLE,
166
                        String.format(Messages.CharacterMatrixBottomToolbar_AGGREGATION_MESSAGE
167
                                , parentDto.getTaxonTitleCache()), Messages.CharacterMatrixBottomToolbar_YES, Messages.CharacterMatrixBottomToolbar_CHOOSE_TAXON, Messages.CharacterMatrixBottomToolbar_CANCEL);
168
                if(response==2){
169
                    return;
170
                }
171
                else if(response==1){
172
                    Taxon taxon = TaxonSelectionDialog.selectTaxon(getShell(), null);
173
                    if(taxon==null){
174
                        return;
175
                    }
176
                    taxonUuid = taxon.getUuid();
177
                }
178 153
                List<UUID> descriptionUuids = new ArrayList<>();
179 154
                matrix.getDescriptiveDataSet().getDescriptions().forEach(desc->descriptionUuids.add(desc.getUuid()));
180
                UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).aggregateDescription(taxonUuid, descriptionUuids, matrix.getDescriptiveDataSet().getLabel(), matrix.getDescriptiveDataSet().getUuid());
181
                TaxonDescription taxonDescription = (TaxonDescription) result.getCdmEntity();
182
                TaxonRowWrapperDTO taxonRowWrapper = CdmStore.getService(IDescriptiveDataSetService.class).createTaxonRowWrapper(taxonDescription.getUuid(), matrix.getDescriptiveDataSet().getUuid());
183
                matrix.getDescriptions().add(taxonRowWrapper);
155
                IDescriptiveDataSetService dataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
156
                UpdateResult result = dataSetService.aggregate(matrix.getDescriptiveDataSet().getUuid());
157
                result.getUpdatedObjects().stream()
158
                .filter(o->o instanceof TaxonDescription)
159
                .map(o->HibernateProxyHelper.deproxy(o, TaxonDescription.class))
160
                .forEach(taxonDescription->
161
                    matrix.getDescriptions().add(dataSetService.createTaxonRowWrapper(taxonDescription.getUuid(), matrix.getDescriptiveDataSet().getUuid()))
162
                );
184 163

  
185 164
                aggregateCategorcialHistogram(matrix.getFeatureToHistogramMap());
186 165
                aggregateQuantitativeSummary(matrix.getFeatureToQuantDataStatisticsMap());

Also available in: Unified diff