fixed a bug that occurred when executing operations on taxon nodes on root level
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / operations / ChangeSynonymToAcceptedTaxonOperation.java
index 407d0cc546fd884aaa9273da5f9993b4cc8883fa..b7c8ee030eebdcc8ab7566f6f22a69514ada36c9 100644 (file)
@@ -16,9 +16,11 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.runtime.IStatus;\r
 \r
+import eu.etaxonomy.cdm.model.taxon.ITreeNode;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * Change the taxonomic parent of a given taxon.\r
@@ -34,12 +36,12 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPostOperation
 \r
        private Taxon newTaxon;\r
        private Synonym synonym;\r
-       private TaxonNode parentNode;\r
+       private ITreeNode parentNode;\r
 \r
        private TaxonNode newNode;\r
        \r
        public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,\r
-                       Taxon taxon, TaxonNode parentNode, Synonym synonym, IPostOperationEnabled postOperationEnabled) {\r
+                       Taxon taxon, ITreeNode parentNode, Synonym synonym, IPostOperationEnabled postOperationEnabled) {\r
                super(label, undoContext, taxon, postOperationEnabled);\r
 \r
                this.parentNode = parentNode;\r
@@ -53,13 +55,11 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPostOperation
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                \r
-               newTaxon = Taxon.NewInstance(synonym.getName(), taxon.getSec());\r
+               newTaxon = CdmStore.getTaxonService().makeSynonymAcceptedTaxon(synonym, taxon);\r
                \r
                // TODO let user choose parent\r
-               newNode = parentNode.addChild(newTaxon);\r
-               \r
-               taxon.removeSynonym(synonym);\r
-               \r
+               newNode = parentNode.addChildTaxon(newTaxon, null, null, null);\r
+                               \r
                return postExecute(newNode);\r
        }\r
 \r