MultiPageTaxonEditor : added cdm entity session capabilities to update and register...
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / handler / MoveFactualDataHandler.java
index 18c3a68b659873a261891274f8e804b131fe0a3b..f29211d55beff57be12f0eae7ad9d088c89c384b 100644 (file)
@@ -4,7 +4,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -21,10 +20,6 @@ import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.AnnotationType;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -81,25 +76,9 @@ public class MoveFactualDataHandler extends AbstractHandler {
                                 "changes in the target taxon. Please save first.");
                         return null;
                     }
-                    for(TaxonDescription description : taxon.getDescriptions()){
-                        //reload to avoid session conflicts
-                        description = HibernateProxyHelper.deproxy(CdmStore.getService(IDescriptionService.class).load(description.getUuid()), TaxonDescription.class);
+                    CdmStore.getService(IDescriptionService.class).moveTaxonDescriptions(taxon.getUuid(),
+                            targetTaxonNode.getTaxon().getUuid());
 
-                        String moveMessage = String.format("Description moved from %s", taxon);
-                        if(description.isProtectedTitleCache()){
-                            String separator = "";
-                            if(!StringUtils.isBlank(description.getTitleCache())){
-                                separator = " - ";
-                            }
-                            description.setTitleCache(description.getTitleCache() + separator + moveMessage, true);
-                        }
-                        Annotation annotation = Annotation.NewInstance(moveMessage, Language.getDefaultLanguage());
-                        annotation.setAnnotationType(AnnotationType.TECHNICAL());
-                        description.addAnnotation(annotation);
-                        targetTaxonNode.getTaxon().addDescription(description);
-
-                    }
-                    CdmStore.getService(ITaxonNodeService.class).merge(targetTaxonNode);
                     navigator.getConversationHolder().bind();
                     navigator.getConversationHolder().commit();