-/**\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.model.name.HomotypicalGroup;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-\r
-/**\r
- * @author n.hoffmann\r
- * @created 02.02.2009\r
- * @version 1.0\r
- */\r
-public class CreateSynonymInExistingHomotypicalGroupOperation extends\r
- AbstractPostOperation {\r
-\r
- private HomotypicalGroup group;\r
- private TaxonNameBase newSynonymName;\r
-\r
- private SynonymRelationship synonymRelationship;\r
- \r
- public CreateSynonymInExistingHomotypicalGroupOperation(String label,\r
- IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, TaxonNameBase newSynonymName, IPostOperationEnabled postOperationEnabled) {\r
- super(label, undoContext, taxon, postOperationEnabled);\r
- this.group = group;\r
- this.newSynonymName = newSynonymName;\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
- // Add name to given homotypic group\r
- group.addTypifiedName(newSynonymName);\r
- monitor.worked(20);\r
- \r
- // Create a new synonym for the taxon\r
- // TODO add citations\r
- if(group.equals(taxon.getHomotypicGroup())){\r
- synonymRelationship = taxon.addHomotypicSynonymName(newSynonymName, null, null);\r
- }else{\r
- synonymRelationship = taxon.addHeterotypicSynonymName(newSynonymName);\r
- }\r
- monitor.worked(40);\r
- \r
-// Synonym affectedSynonym = null;\r
-// \r
-// for(Synonym synonym : group.getSynonymsInGroup(taxon.getSec())){\r
-// if(synonym.getName() == synonymName){\r
-// affectedSynonym = synonym;\r
-// break;\r
-// }\r
-// }\r
- \r
- return postExecute(synonymRelationship.getSynonym());\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
- taxon.removeSynonymRelation(synonymRelationship);\r
- \r
- return postExecute(null);\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.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+
+/**
+ * <p>CreateSynonymInExistingHomotypicalGroupOperation class.</p>
+ *
+ * @author n.hoffmann
+ * @created 02.02.2009
+ * @version 1.0
+ */
+public class CreateSynonymInExistingHomotypicalGroupOperation extends
+ AbstractPostOperation {
+
+ private HomotypicalGroup group;
+ private TaxonNameBase newSynonymName;
+
+ private SynonymRelationship synonymRelationship;
+
+ /**
+ * <p>Constructor for CreateSynonymInExistingHomotypicalGroupOperation.</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 group a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
+ * @param newSynonymName a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+ */
+ public CreateSynonymInExistingHomotypicalGroupOperation(String label,
+ IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, TaxonNameBase newSynonymName, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, taxon, postOperationEnabled);
+ this.group = group;
+ this.newSynonymName = newSynonymName;
+ }
+
+ /* (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 {
+
+ // Add name to given homotypic group
+ group.addTypifiedName(newSynonymName);
+ monitor.worked(20);
+
+ // Create a new synonym for the taxon
+ // TODO add citations
+ if(group.equals(taxon.getHomotypicGroup())){
+ synonymRelationship = taxon.addHomotypicSynonymName(newSynonymName, null, null);
+ }else{
+ synonymRelationship = taxon.addHeterotypicSynonymName(newSynonymName);
+ }
+ monitor.worked(40);
+
+// Synonym affectedSynonym = null;
+//
+// for(Synonym synonym : group.getSynonymsInGroup(taxon.getSec())){
+// if(synonym.getName() == synonymName){
+// affectedSynonym = synonym;
+// break;
+// }
+// }
+
+ return postExecute(synonymRelationship.getSynonym());
+ }
+
+ /* (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 {
+
+ taxon.removeSynonymRelation(synonymRelationship);
+
+ return postExecute(null);
+ }
+}