Cleanup code
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / newWizard / NewTaxonNodeWizard.java
index 9023597bac7016c5fbb051a93904bb2ac0947944..bd2588b773c6d2e396a40e2b1144122f46198369 100644 (file)
@@ -53,14 +53,29 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
             Taxon taxon = taxonNodePage.getTaxon();
             try{
                 TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
-                taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
+
+                if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                    taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
+                } else {
+                    taxonNode = CdmStore.getService(ITaxonNodeService.class).save(taxonNode);
+                }
                 generatedTaxonNodeUuid = taxonNode.getUuid();
+
                 Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
-                affectedObjects.add((TaxonNode)parent);
 
-                CdmApplicationState.getCurrentDataChangeService()
-                .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+                TaxonNode parentNode = taxonNode.getParent();
+                if(parentNode.getParent() == null) {
+                    affectedObjects.add(taxonNode.getClassification());
+                }
 
+                if(parentNode instanceof TaxonNode) {
+                    affectedObjects.add(parentNode);
+                }
+
+                if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                    CdmApplicationState.getCurrentDataChangeService()
+                        .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+                }
             }catch(IllegalArgumentException e){
                 MessagingUtils.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
             }