Change merge to standard call for new taxon node
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / newWizard / NewPolytomousKeyWizard.java
index 7b7624a7361c96aecc332e82442da9812f959df3..daade68014f9bb41c4229a9533f89d58c70cf284 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
@@ -13,18 +13,30 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class NewPolytomousKeyWizard extends AbstractNewEntityWizard<PolytomousKey> {
 
+    private PolytomousKeyWizardPage polytomousKeyPage;
+
        @Override
        public void addPages() {
-               PolytomousKeyWizardPage page = new PolytomousKeyWizardPage(formFactory, getConversationHolder(), getEntity());
-               super.addPage(page);
+               polytomousKeyPage = new PolytomousKeyWizardPage(formFactory, getConversationHolder(), getEntity());
+               super.addPage(polytomousKeyPage);
        }
-       
+
+       public String getPolytomousKeyName() {
+           return polytomousKeyPage.getPolytomousKeyName();
+       }
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
         */
        @Override
        protected void saveEntity() {
-               CdmStore.getService(IPolytomousKeyService.class).saveOrUpdate(getEntity());
+           if(!polytomousKeyPage.getPolytomousKeyName().equals("")) {
+               if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                   CdmStore.getService(IPolytomousKeyService.class).merge(getEntity(), true);
+               } else {
+                   CdmStore.getService(IPolytomousKeyService.class).save(getEntity());
+               }
+           }
        }
 
        /* (non-Javadoc)
@@ -32,7 +44,9 @@ public class NewPolytomousKeyWizard extends AbstractNewEntityWizard<PolytomousKe
         */
        @Override
        protected PolytomousKey createNewEntity() {
-               return PolytomousKey.NewInstance();
+           PolytomousKey pkey = PolytomousKey.NewInstance();
+           pkey.setTitleCache("");
+               return pkey;
        }
 
        @Override