From de83ea1f4e6bf1381e0209f571ae643009b8c7de Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Wed, 13 Apr 2016 14:28:16 +0200 Subject: [PATCH] Correctly handle UuidAndTitleCache type in SearchResultView #5700 --- .../taxeditor/navigation/NavigationUtil.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java index 0995da311..47d63d05b 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java @@ -25,6 +25,9 @@ import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.navigator.CommonViewer; +import eu.etaxonomy.cdm.api.service.IClassificationService; +import eu.etaxonomy.cdm.api.service.INameService; +import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.common.ICdmBase; import eu.etaxonomy.cdm.model.description.PolytomousKey; @@ -62,13 +65,28 @@ public class NavigationUtil extends AbstractUtility{ * @param selectedObject a {@link eu.etaxonomy.cdm.model.common.CdmBase} object. */ public static void openEditor(UuidAndTitleCache uuidAndTitleCache){ - TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid()); - if(taxonBase==null){ - MessagingUtils.warn(NavigationUtil.class, "No taxon stored with UUID "+uuidAndTitleCache.getUuid()); - return; + Class type = uuidAndTitleCache.getType(); + if(type.equals(Classification.class)){ + Classification classification = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid()); + openEditor(classification); + } + else if(type.equals(TaxonNode.class)){ + TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(uuidAndTitleCache.getUuid()); + openEditor(taxonNode); + } + else if(type.equals(TaxonBase.class)){ + TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid()); + openEditor(taxonBase); + } + else if(type.equals(TaxonNameBase.class)){ + TaxonNameBase nameBase = CdmStore.getService(INameService.class).load(uuidAndTitleCache.getUuid()); + openEditor(nameBase); + } + else{ + MessagingUtils.warningDialog("Unknown type", NavigationUtil.class, "There is no editor available to open this object."); } - openEditor(taxonBase); } + public static void openEditor(ICdmBase selectedObject){ UUID entityUuid = selectedObject.getUuid(); try { -- 2.34.1