import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
ITaxonTreeNode parent = getParentTreeNode();
Taxon taxon = taxonNodePage.getTaxon();
try{
- TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
+ UpdateResult result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(), taxon, parent.getReference(), parent.getMicroReference());
+
+ //TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ /* if(CdmStore.getCurrentSessionManager().isRemoting()) {
taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
} else {
taxonNode = CdmStore.getService(ITaxonNodeService.class).save(taxonNode);
- }
- generatedTaxonNodeUuid = taxonNode.getUuid();
+ }*/
+ generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
+ TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
-
- TaxonNode parentNode = taxonNode.getParent();
- if(parentNode.getParent() == null) {
- affectedObjects.add(taxonNode.getClassification());
+ if (result.getUpdatedObjects().iterator().hasNext()){
+ TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
+ if(parentNode.getParent() == null) {
+ affectedObjects.add(taxonNode.getClassification());
+ }
+ if(parentNode instanceof TaxonNode) {
+ affectedObjects.add(parentNode);
+ }
}
+
- if(parentNode instanceof TaxonNode) {
- affectedObjects.add(parentNode);
- }
+
if(CdmStore.getCurrentSessionManager().isRemoting()) {
CdmApplicationState.getCurrentDataChangeService()