performed javacscript:fix and worked on documentation
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / operations / ChangeConceptToSynonymOperation.java
index 17f4045211189692f878d104f6e099476b221015..fae1d6f91229623e5bb29a60a3705954711aac93 100644 (file)
-/**\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 java.util.Set;\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
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.store.StoreUtil;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 15.01.2009\r
- * @version 1.0\r
- * @author n.hoffmann\r
- */\r
-public class ChangeConceptToSynonymOperation extends\r
-               AbstractPostOperation {\r
-       \r
-       private Taxon concept;\r
-\r
-       private HomotypicalGroup homotypicalGroup;\r
-\r
-       private TaxonRelationship taxonRelationship;\r
-       private TaxonRelationshipType oldRelationshipType;\r
-       \r
-       private SynonymRelationship newSynonymRelationship;\r
-\r
-       public ChangeConceptToSynonymOperation(String label,\r
-                       IUndoContext undoContext, Taxon taxon, Taxon concept, HomotypicalGroup homotypicalGroup,\r
-                       IPostOperationEnabled editor) {\r
-               super(label, undoContext, taxon, editor);\r
-               \r
-               Set<TaxonRelationship> taxonRelationships = taxon.getTaxonRelations(concept);\r
-               \r
-               if(taxonRelationships.size() > 1){\r
-                       StoreUtil.warningDialog("Multiple relations between taxa", this, "There are multiple relations between the " +\r
-                                       "accepted and the related taxon. This case is not handled by the software yet");\r
-                       return;\r
-               }\r
-               \r
-               this.taxonRelationship = taxonRelationships.iterator().next();\r
-               this.oldRelationshipType = taxonRelationship.getType();\r
-               \r
-               this.concept = concept;\r
-               this.homotypicalGroup = homotypicalGroup != null ? homotypicalGroup : HomotypicalGroup.NewInstance();\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
-               // Create new synonym using concept name\r
-               TaxonNameBase<?, ?> synonymName = concept.getName();\r
-               \r
-               // Remove concept relation from taxon\r
-               taxon.removeTaxon(concept, oldRelationshipType);\r
-               monitor.worked(20);\r
-        \r
-               // Add name to new homotypic group\r
-               homotypicalGroup.addTypifiedName(synonymName);\r
-               monitor.worked(40);\r
-               \r
-        // Create a new synonym for the taxon\r
-               newSynonymRelationship = taxon.addHeterotypicSynonymName(synonymName);\r
-                       \r
-               return postExecute(newSynonymRelationship.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
-               // TODO redo for change misapplied name ...\r
-               return null;\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 undo for change misapplied name ...\r
-               return 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 java.util.Set;
+
+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;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+
+/**
+ * <p>ChangeConceptToSynonymOperation class.</p>
+ *
+ * @author p.ciardelli
+ * @author n.hoffmann
+ * @created 15.01.2009
+ * @version 1.0
+ */
+public class ChangeConceptToSynonymOperation extends
+               AbstractPostOperation {
+       
+       private Taxon concept;
+
+       private HomotypicalGroup homotypicalGroup;
+
+       private TaxonRelationship taxonRelationship;
+       private TaxonRelationshipType oldRelationshipType;
+       
+       private SynonymRelationship newSynonymRelationship;
+
+       /**
+        * <p>Constructor for ChangeConceptToSynonymOperation.</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 concept a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+        * @param homotypicalGroup a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
+        * @param editor a {@link eu.etaxonomy.taxeditor.operations.IPostOperationEnabled} object.
+        */
+       public ChangeConceptToSynonymOperation(String label,
+                       IUndoContext undoContext, Taxon taxon, Taxon concept, HomotypicalGroup homotypicalGroup,
+                       IPostOperationEnabled editor) {
+               super(label, undoContext, taxon, editor);
+               
+               Set<TaxonRelationship> taxonRelationships = taxon.getTaxonRelations(concept);
+               
+               if(taxonRelationships.size() > 1){
+                       StoreUtil.warningDialog("Multiple relations between taxa", this, "There are multiple relations between the " +
+                                       "accepted and the related taxon. This case is not handled by the software yet");
+                       return;
+               }
+               
+               this.taxonRelationship = taxonRelationships.iterator().next();
+               this.oldRelationshipType = taxonRelationship.getType();
+               
+               this.concept = concept;
+               this.homotypicalGroup = homotypicalGroup != null ? homotypicalGroup : HomotypicalGroup.NewInstance();
+       }
+
+       /* (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 {
+               
+               // Create new synonym using concept name
+               TaxonNameBase<?, ?> synonymName = concept.getName();
+               
+               // Remove concept relation from taxon
+               taxon.removeTaxon(concept, oldRelationshipType);
+               monitor.worked(20);
+        
+               // Add name to new homotypic group
+               homotypicalGroup.addTypifiedName(synonymName);
+               monitor.worked(40);
+               
+        // Create a new synonym for the taxon
+               newSynonymRelationship = taxon.addHeterotypicSynonymName(synonymName);
+                       
+               return postExecute(newSynonymRelationship.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 {
+               // TODO redo for change misapplied name ...
+               return null;
+       }
+
+       /* (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 undo for change misapplied name ...
+               return null;
+       }
+}