fix problem with changeSynonymToAcceptedTaxon of a synonym being part of an homotypic...
authorKatja Luther <k.luther@bgbm.org>
Thu, 27 Feb 2014 08:42:33 +0000 (08:42 +0000)
committerKatja Luther <k.luther@bgbm.org>
Thu, 27 Feb 2014 08:42:33 +0000 (08:42 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java

index b710737bcbfb40eff19c51dcf02f5d14e7ff0c80..72a08ae9f9f9b8f4cef118c0eb6d4e9e581312ea 100644 (file)
@@ -11,6 +11,7 @@
 package eu.etaxonomy.taxeditor.editor.name.handler;
 
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.apache.log4j.Logger;
@@ -25,6 +26,8 @@ import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -89,10 +92,11 @@ public class ChangeSynonymToAcceptedTaxonHandler extends AbstractHandler impleme
                        
                        // TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
                        // apply confirmation dialog
-                       
+                       HomotypicalGroup group = synonym.getHomotypicGroup();
+                       Set<TaxonNameBase> namesInGroup = group.getTypifiedNames();
                        // FIXME with this implementation we can not create a taxonNode that is a direct child of the classification node
                        AbstractPostOperation operation = new ChangeSynonymToAcceptedTaxonOperation("Change synonym to accepted taxon", EditorUtil.getUndoContext(), 
-                                       taxon, newParentNode, synonym, null, this, editor); //$NON-NLS-1$
+                                       taxon, newParentNode, synonym, namesInGroup, this, editor); //$NON-NLS-1$
                        EditorUtil.executeOperation(operation);
                }
                
index 2c7f81315dbe265876a131b48dfa4249ac4b294f..38a318d6f6745f34e3d35e290096a396e2331bbb 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
+import java.util.Set;
+
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
@@ -18,6 +20,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -42,7 +45,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
 
        private TaxonNode newNode;
 
-       private final Synonym[] synonymsInHomotypicalGroup;
+       private final Set<TaxonNameBase> namesInHomotypicGroup;
 
        /**
         * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
@@ -57,13 +60,13 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
         * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public ChangeSynonymToAcceptedTaxonOperation(String label, IUndoContext undoContext,
-                       Taxon taxon, ITaxonTreeNode parentNode, Synonym synonym, Synonym[] synonymsInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+                       Taxon taxon, ITaxonTreeNode parentNode, Synonym synonym, Set<TaxonNameBase> namesInHomotypicalGroup, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled);
 
                this.element = taxon;
                this.parentNode = parentNode;
                this.synonym = synonym;
-               this.synonymsInHomotypicalGroup = synonymsInHomotypicalGroup;
+               this.namesInHomotypicGroup = namesInHomotypicalGroup;
        }
 
        /* (non-Javadoc)
@@ -85,12 +88,13 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                synonym.setSec(null);
                newNode = parentNode.addChildTaxon(newTaxon, null, null);
 
-               if(synonymsInHomotypicalGroup != null){
+               /*if(namesInHomotypicGroup != null){
                        Taxon taxon = newNode.getTaxon();
-                       for (Synonym synonym : synonymsInHomotypicalGroup){
-                               taxon.addHomotypicSynonym(synonym, null, null);
+                       for (TaxonNameBase synonymName : namesInHomotypicGroup){
+                               taxon.addHomotypicSynonymName(synonymName, null, null);
+                               
                        }
-               }
+               }*/
 
                monitor.worked(40);