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());
}