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 @@