Revision 225e3aa7
Added by Patrick Plitzner over 4 years ago
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
ref #7597 Adapt to service changes