#5301 Fix null session issues, Add remoting session for feature tree editor
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / featuretree / EditFeatureTreeWizardPage.java
index 3c4466647a4ad9405d9fb6d47ed03f01f9f6fe19..a39b9ff525836a4753f2ff3babfe259afd50dfa4 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * 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.
  */
@@ -49,7 +49,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * <p>
  * EditFeatureTreeWizardPage class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Aug 5, 2010
  * @version 1.0
@@ -69,7 +69,7 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
         * <p>
         * Constructor for EditFeatureTreeWizardPage.
         * </p>
-        * 
+        *
         * @param pageName
         *            a {@link java.lang.String} object.
         */
@@ -80,7 +80,7 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
         * .Composite)
@@ -153,7 +153,7 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
         * <p>
         * setSelectedTree
         * </p>
-        * 
+        *
         * @param featureTree
         *            a {@link eu.etaxonomy.cdm.model.description.FeatureTree}
         *            object.
@@ -200,8 +200,11 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
                                                .getAdditionalFeatures();
                                for (Feature feature : additionalFeatures) {
                                        FeatureNode child = FeatureNode.NewInstance(feature);
-                                       CdmStore.getService(IFeatureNodeService.class)
-                                                       .saveOrUpdate(child);
+                                       if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                                           CdmStore.getService(IFeatureNodeService.class).merge(child, true);
+                                       } else {
+                                           CdmStore.getService(IFeatureNodeService.class).saveOrUpdate(child);
+                                       }
                                        parent.addChild(child);
                                }
                                viewer.refresh();
@@ -237,8 +240,9 @@ public class EditFeatureTreeWizardPage extends WizardPage implements
                 */
                @Override
                public void dragFinished(DragSourceEvent event) {
-                       if (!event.doit)
-                               return;
+                       if (!event.doit) {
+                return;
+            }
                        // if the featureNode was moved, remove it from the source viewer
                        if (event.detail == DND.DROP_MOVE) {
                                IStructuredSelection selection = (IStructuredSelection) viewer