Merge branch 'move-to-luna' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / operation / MoveTaxonOperation.java
index 14b19f62d6ddf6985340fdce736804df55798d62..385a89297f1b93908d2c768c6a78e5a9f8725c7f 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -24,7 +23,6 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
@@ -48,11 +46,14 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
        /**
         * A reference to the former taxonomical parents
         */
+
        private final Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
 
        private final Set<TaxonNode> taxonNodes;
 
 
+       private final TaxonNode taxonNode;
+       private final boolean moveToParentNode;
        /**
         * <p>Constructor for MoveTaxonOperation.</p>
         *
@@ -63,25 +64,28 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
+
        public MoveTaxonOperation(String label,
                IUndoContext undoContext,
-                       Set<TaxonNode> taxonNodes,
+                       TaxonNode taxonNodeToMove,
                        ITaxonTreeNode newParentTreeNode,
                        IPostOperationEnabled postOperationEnabled,
                        IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled,
+                       boolean moveToParentNode) {
                super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
 
-               this.taxonNodes = taxonNodes;
+               this.taxonNode = taxonNodeToMove;
+               /*for (TaxonNode node:taxonNodes){
+                       this.taxonNodes.add(service.load(node.getUuid()));
+               }*/
 
-               this.newParentTreeNode = newParentTreeNode;
 
+               this.newParentTreeNode = newParentTreeNode;
+               this.moveToParentNode = moveToParentNode;
                // Save old parent ITaxonTreeNodes for undo
-               oldParentTreeNodes = new HashMap<TaxonNode, ITaxonTreeNode>();
-               for(TaxonNode taxonNode : taxonNodes){
-                       this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
-               }
 
+               //this.parentNode = taxonNode.getParent();
 
        }
 
@@ -95,18 +99,18 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                bind();
                monitor.worked(20);
 
-
-               try {
-                       for (TaxonNode taxonNode : taxonNodes){
-                           UpdateResult result = CdmStore.getService( ITaxonNodeService.class).moveTaxonNode(taxonNode.getUuid(), newParentTreeNode.getUuid());
-                               monitor.worked(2);
-                       }
-
-
-
-               } catch(IllegalAncestryException e) {
-                       MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage());
-               }
+               UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid(), moveToParentNode);
+//             try {
+//                     for (TaxonNode taxonNode : taxonNodes){
+//                             TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode,
+//                                             newParentTreeNode.getReference(), newParentTreeNode.getMicroReference());
+//                             //taxonNodes.add(newTaxonNode);
+//
+//                             monitor.worked(2);
+//                     }
+//             } catch(IllegalAncestryException e) {
+//                     MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage());
+//             }
                monitor.worked(40);
 
                return postExecute(null);