- added context menu option to create a new FieldUnit in DerivateEditor
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 16 Dec 2014 09:33:43 +0000 (09:33 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 16 Dec 2014 09:33:43 +0000 (09:33 +0000)
.gitattributes
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java [new file with mode: 0644]

index 48c7acfff5b513ab960c6b7d0c7d0eb1a30743e0..396ab0ba90ba786e25f256ad953501ffd03d8d3a 100644 (file)
@@ -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
index 0489ab4f0918438a087c445abda57af3743645bb..eb2bcb9ba477b9339d9d214fe88f89ef5dd4efa5 100644 (file)
                label="Delete"
                style="push">
          </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+               label="Create Field Unit"
+               style="push">
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+               label="Delete (with children)"
+               style="push">
+         </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
             id="eu.etaxonomy.taxeditor.editor.taxonParameterType"
             type="eu.etaxonomy.cdm.model.taxon.TaxonBase">
       </commandParameterType>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivate.createFieldUnit"
+            name="Create Field Unit">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
+            name="Deep Delete">
+      </command>
    </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
index 0d677cd096f6738ac89c2d2b26d8428aacd90a06..7050078e1a47d191c10a4bd35d679ad14c9dd265 100644 (file)
@@ -40,7 +40,7 @@ public class DerivateViewEditorInput implements IEditorInput{
     /**
      * The selected derivate {@link UUID}s
      */
-    private Set<UUID> derivateUUIDs;
+    private final Set<UUID> 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 (file)
index 0000000..da8c8db
--- /dev/null
@@ -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;
+    }
+
+}