diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursCRUDController.java index deb556c47..da5ec12b5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursCRUDController.java @@ -33,7 +33,10 @@ import org.navalplanner.web.common.MessagesForUser; import org.navalplanner.web.common.OnlyOneVisible; import org.navalplanner.web.common.Util; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.api.Checkbox; +import org.zkoss.zul.api.Textbox; import org.zkoss.zul.api.Window; /** @@ -56,11 +59,20 @@ public class TypeOfWorkHoursCRUDController extends GenericForwardComposer implem private Component messagesContainer; + private Textbox code; + private Textbox name; + private Textbox defaultPrice; + private Checkbox enabled; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); comp.setVariable("controller", this, true); messagesForUser = new MessagesForUser(messagesContainer); + code = (Textbox) createWindow.getFellowIfAny("code"); + name = (Textbox) createWindow.getFellowIfAny("name"); + defaultPrice = (Textbox) createWindow.getFellowIfAny("defaultPrice"); + enabled = (Checkbox) createWindow.getFellowIfAny("enabled"); getVisibility().showOnly(listWindow); } @@ -100,17 +112,37 @@ public class TypeOfWorkHoursCRUDController extends GenericForwardComposer implem } public boolean save() { + if(!validate()) { + return false; + } try { typeOfWorkHoursModel.confirmSave(); messagesForUser.showMessage(Level.INFO, _("Type of work hours saved")); return true; } catch (ValidationException e) { - //TODO: implement validation errors + messagesForUser.showMessage(Level.ERROR, e.getMessage()); } return false; } + /* validates the constraints of the elements in ZK */ + private boolean validate() { + try { + //we 'touch' the attributes in the interface + //if any of their constraints is active, they + //will throw an exception + code.getValue(); + name.getValue(); + defaultPrice.getValue(); + enabled.isChecked(); + return true; + } + catch (WrongValueException e) { + return false; + } + } + public List getTypesOfWorkHours() { return typeOfWorkHoursModel.getTypesOfWorkHours(); } diff --git a/navalplanner-webapp/src/main/webapp/costcategories/_editTypeOfWorkHours.zul b/navalplanner-webapp/src/main/webapp/costcategories/_editTypeOfWorkHours.zul index 78d2ab506..7b3d30d06 100644 --- a/navalplanner-webapp/src/main/webapp/costcategories/_editTypeOfWorkHours.zul +++ b/navalplanner-webapp/src/main/webapp/costcategories/_editTypeOfWorkHours.zul @@ -39,21 +39,23 @@