X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/f1f0943488d3f5c4dc84b910467d19c95120d460..45ab0adb60e41eb97d576a80de97cd9495142871:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java index 4ed9313d3..d923dd9b8 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java @@ -27,9 +27,11 @@ import org.eclipse.ui.IEditorReference; import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; +import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.FieldUnit; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor; import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput; import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin; @@ -37,8 +39,8 @@ import eu.etaxonomy.taxeditor.editor.key.KeyEditor; import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput; import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor; import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditorInput; -import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput; import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor; +import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput; import eu.etaxonomy.taxeditor.editor.view.dataimport.BioCaseEditorInput; import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditor; import eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditorInput; @@ -48,6 +50,8 @@ import eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor; import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput; import eu.etaxonomy.taxeditor.model.AbstractUtility; +import eu.etaxonomy.taxeditor.model.MessagingUtils; +import eu.etaxonomy.taxeditor.store.CdmStore; /** * Utility for the editor package @@ -169,6 +173,11 @@ public class EditorUtil extends AbstractUtility { */ public static void openTaxonBase(UUID taxonBaseUuid) throws PartInitException { + TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).find(taxonBaseUuid); + if (taxonBase != null && taxonBase.isOrphaned()) { + MessagingUtils.warningDialog("Orphaned Taxon", TaxonEditorInput.class, "This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxon is currently not supported."); + return; + } TaxonEditorInput input = TaxonEditorInput .NewInstanceFromTaxonBase(taxonBaseUuid); open(input); @@ -445,4 +454,15 @@ public class EditorUtil extends AbstractUtility { } return null; } + + /** + * Opens a taxon editor for the given object if the given object is a valid input. + * @param object the object for which the editor will be opened + * @throws PartInitException + */ + public static void openTaxonEditor(Object object) throws PartInitException { + if(object instanceof TaxonBase){ + openTaxonBase(((TaxonBase) object).getUuid()); + } + } }