Project

General

Profile

« Previous | Next » 

Revision bc6f4f4e

Added by Katja Luther about 4 years ago

ref #8044: handle update result of moveTerm correctly

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/MoveDefinedTermHandler.java
65 65
        List<AbstractTermDto> selectedTerms = new ArrayList<>();
66 66
        if (dialog.open() == IStatus.OK) {
67 67
            selectedTerms = wizard.getSelectedTerms();
68
        }else {
69
            return;
68 70
        }
69 71

  
70 72
        if(selectedTerms.size()!=1){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/MoveDefinedTermOperation.java
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

Also available in: Unified diff