ref #8088: fix TOE in edit taxon node wizard when changing taxon
authorKatja Luther <k.luther@bgbm.org>
Wed, 20 Feb 2019 08:55:31 +0000 (09:55 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 20 Feb 2019 08:55:31 +0000 (09:55 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/EditTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java

index da6902b6f7b3585149812263d987a5b0fe0ab1d8..02e302c019aa431d4b530360b3f2f0e681420aa7 100644 (file)
@@ -8,10 +8,17 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.classification;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -19,10 +26,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 23.03.2016
  *
  */
-public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> {
+public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> implements ICdmEntitySessionEnabled{
 
     private TaxonNodeWizardPage taxonNodePage;
     private IWizardPageListener wizardPageListener;
+    private ICdmEntitySession cdmEntitySession;
+
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.ui.section.classification.AbstractEditWizard#getEntityName()
@@ -60,10 +69,41 @@ public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> {
     @Override
     public void setEntity(TaxonNode entity) {
         setWindowTitle(String.format("Edit %s", getEntityName()));
+        if (CdmStore.isActive() && cdmEntitySession == null) {
+
+            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+            cdmEntitySession.bind();
+        }
         entity = CdmStore.getService(ITaxonNodeService.class).load(entity.getUuid());
         super.setEntity(entity);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public ICdmEntitySession getCdmEntitySession() {
+
+        return cdmEntitySession;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Collection<TaxonNode> getRootEntities() {
+        return Collections.singleton(this.getEntity());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 
 
 }
index c7bec26b3b51038e99a4abc1b9757d82aae73baf..529f0f9fcac508fd5761dbe216d00780fd2541f5 100644 (file)
@@ -265,6 +265,12 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                } else if (eventSource == selection_reuseExistingTaxon) {
                    if (selection_reuseExistingTaxon.getEntity() != null){
                        setTaxon(selection_reuseExistingTaxon.getEntity());
+                       if (getTaxon().getSec()!= null){
+                           textTaxonSec.setText((getTaxon().getSec().getTitleCache()));
+                       }else{
+                           textTaxonSec.setText("");
+                       }
+                       checkbox_publish.setSelected(getTaxon().isPublish());
             }
                        complete = true;
                } else if (eventSource == selection_reuseExistingName) {