(no commit message)
authorKatja Luther <k.luther@bgbm.org>
Thu, 12 Mar 2015 11:21:03 +0000 (11:21 +0000)
committerKatja Luther <k.luther@bgbm.org>
Thu, 12 Mar 2015 11:21:03 +0000 (11:21 +0000)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java

index 56ce064a52673e5c5558b88de653decdcac38c8b..16011b6cb116496d6a82685319c978ea1102bc05 100644 (file)
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,13 +22,17 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 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;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * Change the taxonomic parent of a given taxon.
@@ -44,9 +50,9 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
        /**
         * A reference to the former taxonomical parents
         */
-       private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
+       //private Map<TaxonNode, ITaxonTreeNode> oldParentTreeNodes;
 
-       private Set<TaxonNode> taxonNodes;
+       private TaxonNode taxonNode;
 
        /**
         * <p>Constructor for MoveTaxonOperation.</p>
@@ -59,18 +65,19 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public MoveTaxonOperation(String label, IUndoContext undoContext,
-                       Set<TaxonNode> taxonNodes, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+                       TaxonNode taxonNodeToMove, ITaxonTreeNode newParentTreeNode, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
-
-               this.taxonNodes = taxonNodes;
-
+               
+               this.taxonNode = taxonNodeToMove;
+               /*for (TaxonNode node:taxonNodes){
+                       this.taxonNodes.add(service.load(node.getUuid()));
+               }*/
+               
                this.newParentTreeNode = newParentTreeNode;
 
                // 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();
        }
 
        /* (non-Javadoc)
@@ -83,16 +90,18 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                bind();
                monitor.worked(20);
 
-               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());
-               }
+               UpdateResult result = CdmStore.getService(ITaxonNodeService.class).moveTaxonNode(this.taxonNode.getUuid(),newParentTreeNode.getUuid());
+//             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);