\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.api.service.TermServiceImpl.TermMovePosition;\r
+import eu.etaxonomy.cdm.api.service.UpdateResult;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;\r
import eu.etaxonomy.cdm.persistence.dto.TermDto;\r
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;\r
@Override\r
public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
+ UpdateResult result = new UpdateResult();\r
for(TermDto term:sourceTerms){\r
sourceVocabularies.add(term.getVocabularyDto());\r
UUID parentUuid = targetTermOrVocabulary.getUuid();\r
else if(currentLocation == ViewerDropAdapter.LOCATION_AFTER) {\r
termMovePosition = TermMovePosition.AFTER;\r
}\r
- CdmStore.getService(ITermService.class).moveTerm(term, parentUuid, termMovePosition);\r
+ result.includeResult(CdmStore.getService(ITermService.class).moveTerm(term, parentUuid, termMovePosition));\r
}\r
- Collection<AbstractTermDto> affectedObjects = new HashSet<>(sourceTerms);\r
- affectedObjects.addAll(sourceVocabularies);\r
- affectedObjects.add(targetTermOrVocabulary);\r
- return postExecute(affectedObjects);\r
+ Collection<CdmBase> affectedObjects = result.getUpdatedObjects();\r
+ Collection<AbstractTermDto> affectedDtos = new HashSet();\r
+ for (CdmBase base: affectedObjects){\r
+ if (base instanceof TermVocabulary){\r
+ TermVocabularyDto dto = new TermVocabularyDto(base.getUuid(), ((TermVocabulary)base).getRepresentations(), ((TermVocabulary)base).getTermType());\r
+ affectedDtos.add(dto);\r
+ }\r
+ if (base instanceof DefinedTermBase){\r
+ TermDto dto = TermDto.fromTerm((DefinedTermBase)base);\r
+ affectedDtos.add(dto);\r
+ }\r
+ }\r
+\r
+\r
+ return postExecute(affectedDtos);\r
}\r
\r
@Override\r