Project

General

Profile

« Previous | Next » 

Revision f153f11a

Added by Patrick Plitzner about 8 years ago

Correctly handle UuidAndTitleCache objects in "Open in..." menu

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java
34 34
import org.eclipse.ui.PlatformUI;
35 35
import org.eclipse.ui.handlers.IHandlerService;
36 36

  
37
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
38
import eu.etaxonomy.cdm.api.service.ITaxonService;
37 39
import eu.etaxonomy.cdm.model.common.ICdmBase;
40
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
41
import eu.etaxonomy.cdm.model.taxon.Synonym;
42
import eu.etaxonomy.cdm.model.taxon.Taxon;
43
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
38 44
import eu.etaxonomy.taxeditor.model.MessagingUtils;
45
import eu.etaxonomy.taxeditor.store.CdmStore;
39 46

  
40 47
/**
41 48
 * This class opens a popup dialog and provides the possibility to choose from a
......
84 91
    }
85 92

  
86 93
    private void executeCommand(Command command, Object input) {
94
    	 //for generic UuidAndTitleCache objects try to load the object
95
        if (input instanceof UuidAndTitleCache){
96
            UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
97
            Class type = uuidAndTitleCache.getType();
98
            if(type == Taxon.class || type == Synonym.class){
99
            	input = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
100
            }
101
            else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){
102
            	input = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid());
103
            }
104
        }
87 105
        //set uuid parameter
88 106
        if(input instanceof ICdmBase){
89 107
            Map<String, UUID> params = new HashMap<String, UUID>();

Also available in: Unified diff