From: Patrick Plitzner Date: Tue, 5 Apr 2016 15:01:46 +0000 (+0200) Subject: Correctly handle UuidAndTitleCache objects in "Open in..." menu X-Git-Tag: 4.0.0^2~35 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/f153f11a76f641a7be2feb709dbb0fea7114bbb4 Correctly handle UuidAndTitleCache objects in "Open in..." menu --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java index 63017075f..3d14e03a5 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java @@ -34,8 +34,15 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.IHandlerService; +import eu.etaxonomy.cdm.api.service.IOccurrenceService; +import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.common.ICdmBase; +import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.cdm.model.taxon.Synonym; +import eu.etaxonomy.cdm.model.taxon.Taxon; +import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; import eu.etaxonomy.taxeditor.model.MessagingUtils; +import eu.etaxonomy.taxeditor.store.CdmStore; /** * This class opens a popup dialog and provides the possibility to choose from a @@ -84,6 +91,17 @@ public class CdmViewerChooser extends PopupDialog implements ISelectionChangedLi } private void executeCommand(Command command, Object input) { + //for generic UuidAndTitleCache objects try to load the object + if (input instanceof UuidAndTitleCache){ + UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input; + Class type = uuidAndTitleCache.getType(); + if(type == Taxon.class || type == Synonym.class){ + input = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid()); + } + else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){ + input = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid()); + } + } //set uuid parameter if(input instanceof ICdmBase){ Map params = new HashMap();