fix #5604
authorKatja Luther <k.luther@bgbm.org>
Mon, 21 Mar 2016 13:16:54 +0000 (14:16 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 23 Mar 2016 12:52:11 +0000 (13:52 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java

index 5c0fb97a5aa694ffdc97da19130f842174313456..b1da433c4d95823569267382ba4cace84a2bde7b 100644 (file)
@@ -42,6 +42,7 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
     @Override
     public void addPages() {
         taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener);
+
         addPage(taxonNodePage);
     }
 
@@ -72,22 +73,31 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard<ITaxonTreeNode>{
                 } else {
                     taxonNode = CdmStore.getService(ITaxonNodeService.class).save(taxonNode);
                 }*/
-               generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
-               TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
-               taxonNode.getTaxon().setSec(sec);
-               CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
-                Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
-                if (result.getUpdatedObjects().iterator().hasNext()){
-                       TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
-                       if(parentNode.getParent() == null) {
-                        affectedObjects.add(taxonNode.getClassification());
+                if (result.isOk()){
+                       generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
+                       TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
+                       taxonNode.getTaxon().setSec(sec);
+                       CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+                    Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+                    if (result.getUpdatedObjects().iterator().hasNext()){
+                       TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
+                       if(parentNode.getParent() == null) {
+                            affectedObjects.add(taxonNode.getClassification());
+                        }
+                       affectedObjects.add(parentNode);
+                    }
+                    if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                        CdmApplicationState.getCurrentDataChangeService()
+                            .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+                    }
+                }else{
+                    if (!result.isOk()){
+                        if (!result.getExceptions().isEmpty()){
+                            MessagingUtils.error(getClass(), "Taxon could not be created", result.getExceptions().iterator().next());
+                        }else{
+                            MessagingUtils.warn(getClass(), "Taxon could not be created");
+                        }
                     }
-                       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());