-/**\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.operations;\r
-\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.api.conversation.IConversationEnabled;\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
-import eu.etaxonomy.taxeditor.store.StoreUtil;\r
-\r
-/**\r
- * Change the taxonomic parent of a given taxon.\r
- * \r
- * @author n.hoffmann\r
- * @created 16.01.2009\r
- * @version 1.0\r
- */\r
-public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {\r
- \r
- private Taxon newTaxon;\r
- private Synonym synonym;\r
- private ITreeNode parentNode;\r
-\r
- private TaxonNode newNode;\r
-\r
- private Synonym[] synonymsInHomotypicalGroup;\r
- \r
- public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,\r
- Taxon taxon, ITreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {\r
- super(label, undoContext, postOperationEnabled, conversationEnabled);\r
-\r
- this.taxon = taxon;\r
- this.parentNode = parentNode;\r
- this.synonym = synonym; \r
- this.synonymsInHomotypicalGroup = synonymsInHomotypicalGroup;\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
- newTaxon = CdmStore.getTaxonService().changeSynonymToAcceptedTaxon(synonym, taxon);\r
- monitor.worked(20);\r
- \r
-// synonym.setSec(null);\r
- \r
- // TODO let user choose parent\r
- newNode = parentNode.addChildTaxon(newTaxon, null, null, null);\r
- \r
- if(synonymsInHomotypicalGroup != null){\r
- Taxon taxon = newNode.getTaxon();\r
- for (Synonym synonym : synonymsInHomotypicalGroup){\r
- taxon.addHomotypicSynonym(synonym, null, null);\r
- }\r
- }\r
- \r
- monitor.worked(40);\r
-\r
- return postExecute(newNode);\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
- \r
- // TODO implement - biggest problem is that any window open for new taxon must be closed first\r
- StoreUtil.warn(this.getClass(), "Not yet implemented");\r
- \r
- return postExecute(taxon);\r
- }\r
-\r
-}\r
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operations;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+
+/**
+ * Change the taxonomic parent of a given taxon.
+ *
+ * @author n.hoffmann
+ * @created 16.01.2009
+ * @version 1.0
+ */
+public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPostOperation {
+
+ private Taxon newTaxon;
+ private Synonym synonym;
+ private ITreeNode parentNode;
+
+ private TaxonNode newNode;
+
+ private Synonym[] synonymsInHomotypicalGroup;
+
+ /**
+ * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+ * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITreeNode} object.
+ * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
+ * @param synonymsInHomotypicalGroup an array of {@link eu.etaxonomy.cdm.model.taxon.Synonym} objects.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+ * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
+ */
+ public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,
+ Taxon taxon, ITreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+ super(label, undoContext, postOperationEnabled, conversationEnabled);
+
+ this.taxon = taxon;
+ this.parentNode = parentNode;
+ this.synonym = synonym;
+ this.synonymsInHomotypicalGroup = synonymsInHomotypicalGroup;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ newTaxon = CdmStore.getTaxonService().changeSynonymToAcceptedTaxon(synonym, taxon);
+ monitor.worked(20);
+
+// synonym.setSec(null);
+
+ // TODO let user choose parent
+ newNode = parentNode.addChildTaxon(newTaxon, null, null, null);
+
+ if(synonymsInHomotypicalGroup != null){
+ Taxon taxon = newNode.getTaxon();
+ for (Synonym synonym : synonymsInHomotypicalGroup){
+ taxon.addHomotypicSynonym(synonym, null, null);
+ }
+ }
+
+ monitor.worked(40);
+
+ return postExecute(newNode);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ return execute(monitor, info);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ // TODO implement - biggest problem is that any window open for new taxon must be closed first
+ StoreUtil.warn(this.getClass(), "Not yet implemented");
+
+ return postExecute(taxon);
+ }
+
+}