Merge branch 'move-to-luna' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / operation / ChangeAcceptedTaxonToSynonymOperation.java
index 4dd1c61dbf3a5e01904d92a7aefe610d489afe79..609e0fba4486bc7733c62212869b237bb9708f89 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.Status;
 
 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.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
@@ -27,6 +28,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -40,6 +42,8 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
        DeleteOperation {
 
        private final TaxonNode newAcceptedTaxonNode;
+       private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
 
        //private TaxonNode oldTaxonNode;
 
@@ -54,10 +58,15 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public ChangeAcceptedTaxonToSynonymOperation(String label,
-                       IUndoContext undoContext, ITaxonTreeNode oldTaxonNode, TaxonNode newAcceptedTaxonNode,
-                       IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
-               super(label, undoContext, oldTaxonNode, new TaxonDeletionConfigurator(),postOperationEnabled, conversationEnabled);
+                       IUndoContext undoContext,
+                       ITaxonTreeNode oldTaxonNode,
+                       TaxonNode newAcceptedTaxonNode,
+                       IPostOperationEnabled postOperationEnabled,
+                       IConversationEnabled conversationEnabled,
+            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               super(label, undoContext, oldTaxonNode, new TaxonDeletionConfigurator(),postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
                this.newAcceptedTaxonNode = newAcceptedTaxonNode;
+               this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
        }
 
 
@@ -71,9 +80,10 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
 
                monitor.worked(20);
                bind();
+
        Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
                try {
-                   CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode((TaxonNode) taxonNode, newAcceptedTaxonNode, null, null, null);
+                   UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
         } catch (IllegalArgumentException e) {
             MessagingUtils.errorDialog("Operation failed", this, e.getMessage(), TaxeditorNavigationPlugin.PLUGIN_ID, e, false);
             return Status.CANCEL_STATUS;