From: Patrick Plitzner Date: Wed, 13 Apr 2016 12:28:16 +0000 (+0200) Subject: Correctly handle UuidAndTitleCache type in SearchResultView #5700 X-Git-Tag: 4.0.0^2~28 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/de83ea1f4e6bf1381e0209f571ae643009b8c7de Correctly handle UuidAndTitleCache type in SearchResultView #5700 --- 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 {