From e2df00309a35efa94a6a10d891f702e8300927e3 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 4 Apr 2012 16:51:15 +0200 Subject: [PATCH] Bug #1406: Add validation in the UI and also a try catch for possible ValidationExceptions FEA: ItEr76S04BugFixing --- .../templates/OrderTemplatesController.java | 33 +++++++++++++++---- .../templates/TemplatesTreeController.java | 2 ++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java index 9076fb58a..926ce5ce3 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/OrderTemplatesController.java @@ -28,8 +28,11 @@ import java.util.List; import javax.annotation.Resource; import org.apache.commons.logging.LogFactory; +import org.hibernate.validator.InvalidValue; +import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.templates.entities.OrderElementTemplate; +import org.libreplan.web.common.ConstraintChecker; import org.libreplan.web.common.IMessagesForUser; import org.libreplan.web.common.Level; import org.libreplan.web.common.MessagesForUser; @@ -215,9 +218,16 @@ public class OrderTemplatesController extends GenericForwardComposer implements public void saveAndExit() { if (isAllValid()) { - model.confirmSave(); - messagesForUser.showMessage(Level.INFO, _("Template saved")); - show(listWindow); + try { + model.confirmSave(); + messagesForUser.showMessage(Level.INFO, _("Template saved")); + show(listWindow); + } catch (ValidationException e) { + for (InvalidValue invalidValue : e.getInvalidValues()) { + messagesForUser.showMessage(Level.ERROR, + invalidValue.getMessage()); + } + } } } @@ -227,15 +237,24 @@ public class OrderTemplatesController extends GenericForwardComposer implements public void saveAndContinue() { if (isAllValid()) { - model.confirmSave(); - model.initEdit(getTemplate()); - bindTemplatesTreeWithModel(); - messagesForUser.showMessage(Level.INFO, _("Template saved")); + try { + model.confirmSave(); + model.initEdit(getTemplate()); + bindTemplatesTreeWithModel(); + messagesForUser.showMessage(Level.INFO, _("Template saved")); + } catch (ValidationException e) { + for (InvalidValue invalidValue : e.getInvalidValues()) { + messagesForUser.showMessage(Level.ERROR, + invalidValue.getMessage()); + } + } + } } private boolean isAllValid() { // validate template name + ConstraintChecker.isValid(editWindow); name = (Textbox) editWindow.getFellowIfAny("name"); if ((name != null) && (!name.isValid())) { selectTab("tabGeneralData"); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java index 5cfba6f0c..6a0ee85ca 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java @@ -127,6 +127,8 @@ public class TemplatesTreeController extends element.setCode(value); } }); + textBoxCode.setConstraint("no empty:" + + _("cannot be null or empty")); addCell(textBoxCode); }