From 6a1330fd67eb77960cd8704f89f5e747dcdc3d57 Mon Sep 17 00:00:00 2001
From: Patric Plitzner
Date: Tue, 16 Dec 2014 09:33:43 +0000
Subject: [PATCH] - added context menu option to create a new FieldUnit in
DerivateEditor
---
.gitattributes | 1 +
eu.etaxonomy.taxeditor.editor/plugin.xml | 20 +++++++++++
.../derivate/DerivateViewEditorInput.java | 7 ++--
.../handler/CreateFieldUnitHandler.java | 35 +++++++++++++++++++
4 files changed, 60 insertions(+), 3 deletions(-)
create mode 100644 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java
diff --git a/.gitattributes b/.gitattributes
index 48c7acfff..396ab0ba9 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -546,6 +546,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/d
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/SingleReadSequenceContextMenu.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivateEditorForTaxonHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/DeleteDerivateOperation.java -text
diff --git a/eu.etaxonomy.taxeditor.editor/plugin.xml b/eu.etaxonomy.taxeditor.editor/plugin.xml
index 0489ab4f0..eb2bcb9ba 100644
--- a/eu.etaxonomy.taxeditor.editor/plugin.xml
+++ b/eu.etaxonomy.taxeditor.editor/plugin.xml
@@ -610,6 +610,16 @@
label="Delete"
style="push">
+
+
+
+
@@ -1271,6 +1281,16 @@
id="eu.etaxonomy.taxeditor.editor.taxonParameterType"
type="eu.etaxonomy.cdm.model.taxon.TaxonBase">
+
+
+
+
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
index 0d677cd09..7050078e1 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
@@ -40,7 +40,7 @@ public class DerivateViewEditorInput implements IEditorInput{
/**
* The selected derivate {@link UUID}s
*/
- private Set derivateUUIDs;
+ private final Set derivateUUIDs;
/**
* List of the {@link UUID}s of the root elements of the hierarchy (may be the same objects as the derivates)
*/
@@ -153,10 +153,11 @@ public class DerivateViewEditorInput implements IEditorInput{
return derivateUUIDs;
}
- public void setRootAsDerivate(){
- this.derivateUUIDs = this.rootUUIDs;
+ public void addRootUuid(UUID root){
+ rootUUIDs.add(root);
}
+
public ConversationHolder getConversationHolder() {
return conversationHolder;
}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java
new file mode 100644
index 000000000..da8c8db71
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java
@@ -0,0 +1,35 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+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;
+
+public class CreateFieldUnitHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ DerivateView derivateView = (DerivateView)AbstractUtility.getActivePart();
+ if(derivateView.isDirty()){
+ MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+ return null;
+ }
+ FieldUnit fieldUnit = FieldUnit.NewInstance();
+ CdmStore.getService(IOccurrenceService.class).save(fieldUnit);
+ derivateView.getConversationHolder().commit();
+ DerivateViewEditorInput input = (DerivateViewEditorInput) derivateView.getEditorInput();
+ input.addRootUuid(fieldUnit.getUuid());
+ derivateView.refreshTree();
+ }
+ return null;
+ }
+
+}
--
2.34.1