Update operation for move taxon nodes
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / operation / RemotingMoveTaxonOperation.java
index 057d5d30cc97853984b4e1790e9a94040e2f7d27..65e5144786e02ec4063cc8ca92468a7910b2ee86 100644 (file)
@@ -9,6 +9,8 @@
 */
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
+import java.util.HashSet;
+import java.util.Set;
 import java.util.UUID;
 
 import org.eclipse.core.runtime.IAdaptable;
@@ -30,7 +32,7 @@ public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation {
 
     private final static String LABEL = "Move Taxon operation";
 
-    private final UUID taxonNodeToMoveUuid;
+    private Set<UUID> taxonNodesToMoveUuid;
     private final UUID newParentTreeNodeUuid;
     private final boolean moveToParentNode;
 
@@ -40,7 +42,8 @@ public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation {
             UUID newParentTreeNodeUuid,
             boolean moveToParentNode) {
         super(LABEL, Action.Update, source,async);
-        this.taxonNodeToMoveUuid = taxonNodeToMoveUuid;
+        taxonNodesToMoveUuid = new HashSet<UUID>();
+        taxonNodesToMoveUuid.add(taxonNodeToMoveUuid);
         this.newParentTreeNodeUuid = newParentTreeNodeUuid;
         this.moveToParentNode = moveToParentNode;
     }
@@ -51,7 +54,19 @@ public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation {
             TaxonNode newParentTreeNode,
             boolean moveToParentNode) {
         super(LABEL, Action.Update, source,async);
-        this.taxonNodeToMoveUuid = taxonNodeToMove.getUuid();
+        taxonNodesToMoveUuid = new HashSet<UUID>();
+        taxonNodesToMoveUuid.add(taxonNodeToMove.getUuid());
+        this.newParentTreeNodeUuid = newParentTreeNode.getUuid();
+        this.moveToParentNode = moveToParentNode;
+    }
+
+    public RemotingMoveTaxonOperation(Object source,
+            boolean async,
+            Set<UUID> taxonNodesToMoveUuid,
+            TaxonNode newParentTreeNode,
+            boolean moveToParentNode) {
+        super(LABEL, Action.Update, source,async);
+        this.taxonNodesToMoveUuid = taxonNodesToMoveUuid;
         this.newParentTreeNodeUuid = newParentTreeNode.getUuid();
         this.moveToParentNode = moveToParentNode;
     }
@@ -61,9 +76,8 @@ public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation {
      */
     @Override
     protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-        return CdmApplicationState.getService(ITaxonNodeService.class).moveTaxonNode(taxonNodeToMoveUuid,
-                newParentTreeNodeUuid,
-                moveToParentNode);
+        return CdmApplicationState.getService(ITaxonNodeService.class).moveTaxonNodes(taxonNodesToMoveUuid,
+                newParentTreeNodeUuid);
     }
 
 }