From fd4fff8bff48f3699a3e228ce56e36dd895b3a93 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Mon, 8 Feb 2016 18:05:18 +0100
Subject: [PATCH] Extend factual data view context menu with option to open
specimen directly in DerivativeEditor
---
eu.etaxonomy.taxeditor.editor/plugin.xml | 80 +++++++++++++------
...DerivativeEditorForDescriptionElement.java | 45 +++++++++++
2 files changed, 100 insertions(+), 25 deletions(-)
create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java
diff --git a/eu.etaxonomy.taxeditor.editor/plugin.xml b/eu.etaxonomy.taxeditor.editor/plugin.xml
index eb5070d24..64aa8f2cf 100644
--- a/eu.etaxonomy.taxeditor.editor/plugin.xml
+++ b/eu.etaxonomy.taxeditor.editor/plugin.xml
@@ -702,31 +702,6 @@
label="%command.label.27"
style="push">
-
-
-
+
+
+
@@ -775,6 +757,31 @@
+
+
+
@@ -1241,6 +1248,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java
new file mode 100644
index 000000000..7e3b08b7a
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java
@@ -0,0 +1,45 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import java.util.Collections;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBase {
+
+ @Override
+ protected IndividualsAssociation getEntity(UUID uuid) {
+ DescriptionElementBase descriptionElement = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
+ if(descriptionElement.isInstanceOf(IndividualsAssociation.class)){
+ return (IndividualsAssociation) descriptionElement;
+ }
+ return null;
+ }
+
+ @Override
+ protected void open(ExecutionEvent event, IndividualsAssociation entity) {
+ SpecimenOrObservationBase associatedSpecimenOrObservation = entity.getAssociatedSpecimenOrObservation();
+ if(associatedSpecimenOrObservation!=null){
+ UUID specimenUuid = associatedSpecimenOrObservation.getUuid();
+ try {
+ EditorUtil.open(new DerivateViewEditorInput(Collections.singletonList(specimenUuid)));
+ } catch (PartInitException e) {
+ MessagingUtils.error(OpenDerivateViewHandler.class, "Derivative Editor could not be opened", e);
+ }
+ }
+
+ }
+
+}
--
2.34.1