From: Patrick Plitzner
Date: Tue, 13 Sep 2016 11:35:33 +0000 (+0200)
Subject: ref #5616 Fix NPE for opening synonyms from SearchResult view
X-Git-Tag: 4.3.0^2~36
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/4e365f81f63ad9483958e87c6c5c47fe140a7131?ds=sidebyside
ref #5616 Fix NPE for opening synonyms from SearchResult view
---
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java
index a509aecbd..bbbc9a27d 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java
@@ -27,7 +27,7 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
public enum BulkEditorInputType {
@@ -100,7 +100,7 @@ public enum BulkEditorInputType {
return GROUP;
} else if (User.class.isAssignableFrom(clazz)) {
return USER;
- } else if (Taxon.class.isAssignableFrom(clazz)){
+ } else if (TaxonBase.class.isAssignableFrom(clazz)){
return TAXON;
} else if (Media.class.isAssignableFrom(clazz)){
return MEDIA;
diff --git a/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
index 3ce1fcb21..dbee61992 100644
--- a/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
+++ b/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
@@ -8,6 +8,7 @@ Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
Export-Package: eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.editor.handler,
+ eu.etaxonomy.taxeditor.editor.handler.defaultHandler,
eu.etaxonomy.taxeditor.editor.internal,
eu.etaxonomy.taxeditor.editor.key.polytomous,
eu.etaxonomy.taxeditor.editor.name,
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonBaseHandler.java
similarity index 77%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonHandler.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonBaseHandler.java
index 7584a8062..1f9b37cd4 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonHandler.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonBaseHandler.java
@@ -12,7 +12,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
-public class DefaultOpenTaxonEditorForTaxonHandler extends DefaultOpenHandlerBase {
+public class DefaultOpenTaxonEditorForTaxonBaseHandler extends DefaultOpenHandlerBase {
@Override
protected TaxonBase getEntity(UUID uuid) {
@@ -24,7 +24,7 @@ public class DefaultOpenTaxonEditorForTaxonHandler extends DefaultOpenHandlerBas
try {
EditorUtil.openTaxonBase(entity.getUuid());
} catch (PartInitException e) {
- MessagingUtils.error(DefaultOpenTaxonEditorForTaxonHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
+ MessagingUtils.error(DefaultOpenTaxonEditorForTaxonBaseHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
}
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
index 5eb1e1784..77071c9b5 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
@@ -10,6 +10,8 @@
package eu.etaxonomy.taxeditor.editor.name.handler;
+import java.util.Set;
+
import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -170,6 +172,17 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P
}
private boolean isOrphaned(Object selectedElement) {
- return selectedElement instanceof Taxon && ((Taxon) selectedElement).isOrphaned();
+ if(selectedElement instanceof Taxon){
+ return ((Taxon) selectedElement).isOrphaned();
+ }
+ else if(selectedElement instanceof Synonym){
+ Set acceptedTaxa = ((Synonym) selectedElement).getAcceptedTaxa();
+ for (Taxon taxon : acceptedTaxa) {
+ if(!taxon.isOrphaned()){
+ return false;
+ }
+ }
+ }
+ return false;
}
}
diff --git a/eu.etaxonomy.taxeditor.navigation/plugin.xml b/eu.etaxonomy.taxeditor.navigation/plugin.xml
index 65c7e18ea..be4c61af8 100644
--- a/eu.etaxonomy.taxeditor.navigation/plugin.xml
+++ b/eu.etaxonomy.taxeditor.navigation/plugin.xml
@@ -554,7 +554,7 @@