ref #5923 Add "Open in Specimen Editor" for bulk specimen editor
authorPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 10 Mar 2017 14:22:11 +0000 (15:22 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 10 Mar 2017 14:22:11 +0000 (15:22 +0100)
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForSpecimenOrOBservationBase.java [new file with mode: 0644]

index df790ac8b5d0852d66fe123d563813fc9b793687..838b9514af65cf2fa786cf76c63e7ffdeab24fa9 100644 (file)
             </with>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForSpecimenOrOBservationBase"
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="bulkeditor.editor">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
             commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler">
             selection="eu.etaxonomy.cdm.model.taxon.TaxonRelationship"
             viewerName="Bulk Editor">
       </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
+            selection="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase"
+            viewerName="Specimen Editor">
+      </viewCommandMapping>
     </extension>
 </plugin>
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForSpecimenOrOBservationBase.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForSpecimenOrOBservationBase.java
new file mode 100644 (file)
index 0000000..627fc9a
--- /dev/null
@@ -0,0 +1,42 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+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.l10n.Messages;
+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 OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBase<SpecimenOrObservationBase<?>>{
+
+    protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN;
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected SpecimenOrObservationBase<?> getEntity(UUID uuid) {
+        return CdmStore.getService(IOccurrenceService.class).load(uuid);
+    }
+
+    @Override
+    protected void open(ExecutionEvent event, SpecimenOrObservationBase<?> entity) {
+        try {
+            EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
+        } catch (PartInitException e) {
+            MessagingUtils.error(OpenDerivateViewHandler.class, OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e);
+        }
+
+    }
+
+
+
+}