package eu.etaxonomy.taxeditor.navigation.navigator.operation;
-import java.util.HashMap;
import java.util.Map;
import java.util.Set;
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;
/**
* 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>
*
* @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();
}
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);