Moving editor sources back into trunk
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / store / operations / ChangeHomotypicalGroupBasionymOperation.java
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicalGroupBasionymOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/operations/ChangeHomotypicalGroupBasionymOperation.java
new file mode 100644 (file)
index 0000000..6dece0d
--- /dev/null
@@ -0,0 +1,77 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.store.operations;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.store.model.SynonymUtil;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 15.01.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeHomotypicalGroupBasionymOperation extends\r
+               AbstractPostOperation {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(ChangeHomotypicalGroupBasionymOperation.class);\r
+       private Synonym synonym;\r
+\r
+       public ChangeHomotypicalGroupBasionymOperation(String text,\r
+                       IUndoContext undoContext, Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled) {\r
+               super(text, undoContext, taxon, postOperationEnabled);\r
+               \r
+               this.synonym = synonym;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               \r
+               TaxonNameBase oldSynonymName = synonym.getName();\r
+               // TODO replace w method from cdmlib\r
+               SynonymUtil.setGroupBasionym(oldSynonymName);\r
+                               \r
+               return postExecute(synonym);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               return execute(monitor, info);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+        */\r
+       @Override\r
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+                       throws ExecutionException {\r
+               // TODO replace w method from cdmlib\r
+               // FIXME this is also old code: reimplement\r
+//             CdmUtil.setGroupBasionym(synonym.getName());\r
+                               \r
+               return postExecute(synonym);\r
+       }\r
+}\r