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?ds=sidebyside
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 {