21 |
21 |
|
22 |
22 |
import eu.etaxonomy.cdm.api.service.ITermService;
|
23 |
23 |
import eu.etaxonomy.cdm.api.service.TermServiceImpl.TermMovePosition;
|
|
24 |
import eu.etaxonomy.cdm.api.service.UpdateResult;
|
|
25 |
import eu.etaxonomy.cdm.model.common.CdmBase;
|
|
26 |
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
|
|
27 |
import eu.etaxonomy.cdm.model.term.TermVocabulary;
|
24 |
28 |
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
|
25 |
29 |
import eu.etaxonomy.cdm.persistence.dto.TermDto;
|
26 |
30 |
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
|
... | ... | |
64 |
68 |
@Override
|
65 |
69 |
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
|
66 |
70 |
throws ExecutionException {
|
|
71 |
UpdateResult result = new UpdateResult();
|
67 |
72 |
for(TermDto term:sourceTerms){
|
68 |
73 |
sourceVocabularies.add(term.getVocabularyDto());
|
69 |
74 |
UUID parentUuid = targetTermOrVocabulary.getUuid();
|
... | ... | |
74 |
79 |
else if(currentLocation == ViewerDropAdapter.LOCATION_AFTER) {
|
75 |
80 |
termMovePosition = TermMovePosition.AFTER;
|
76 |
81 |
}
|
77 |
|
CdmStore.getService(ITermService.class).moveTerm(term, parentUuid, termMovePosition);
|
|
82 |
result.includeResult(CdmStore.getService(ITermService.class).moveTerm(term, parentUuid, termMovePosition));
|
78 |
83 |
}
|
79 |
|
Collection<AbstractTermDto> affectedObjects = new HashSet<>(sourceTerms);
|
80 |
|
affectedObjects.addAll(sourceVocabularies);
|
81 |
|
affectedObjects.add(targetTermOrVocabulary);
|
82 |
|
return postExecute(affectedObjects);
|
|
84 |
Collection<CdmBase> affectedObjects = result.getUpdatedObjects();
|
|
85 |
Collection<AbstractTermDto> affectedDtos = new HashSet();
|
|
86 |
for (CdmBase base: affectedObjects){
|
|
87 |
if (base instanceof TermVocabulary){
|
|
88 |
TermVocabularyDto dto = new TermVocabularyDto(base.getUuid(), ((TermVocabulary)base).getRepresentations(), ((TermVocabulary)base).getTermType());
|
|
89 |
affectedDtos.add(dto);
|
|
90 |
}
|
|
91 |
if (base instanceof DefinedTermBase){
|
|
92 |
TermDto dto = TermDto.fromTerm((DefinedTermBase)base);
|
|
93 |
affectedDtos.add(dto);
|
|
94 |
}
|
|
95 |
}
|
|
96 |
|
|
97 |
|
|
98 |
return postExecute(affectedDtos);
|
83 |
99 |
}
|
84 |
100 |
|
85 |
101 |
@Override
|
ref #8044: handle update result of moveTerm correctly