diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java index 52aca5828..355f6790a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java @@ -49,6 +49,10 @@ import org.zkoss.zul.SimpleConstraint; */ public abstract class AllocationRow { + public static final SimpleConstraint CONSTRAINT_FOR_RESOURCES_PER_DAY = new SimpleConstraint( + SimpleConstraint.NO_EMPTY + | SimpleConstraint.NO_ZERO | SimpleConstraint.NO_NEGATIVE); + public static void assignHours(List rows, int[] hours) { int i = 0; for (AllocationRow each : rows) { @@ -275,15 +279,26 @@ public abstract class AllocationRow { hoursInput .setDisabled(calculatedValue != CalculatedValue.RESOURCES_PER_DAY || recommendedAllocation); - if (!hoursInput.isDisabled()) { - hoursInput.setConstraint(new SimpleConstraint( - SimpleConstraint.NO_EMPTY | SimpleConstraint.NO_NEGATIVE)); - } else { - hoursInput.setConstraint((Constraint) null); - } + hoursInput.setConstraint(constraintForHoursInput()); resourcesPerDayInput .setDisabled(calculatedValue == CalculatedValue.RESOURCES_PER_DAY || recommendedAllocation); + resourcesPerDayInput.setConstraint(constraintForResourcesPerDayInput()); + } + + private Constraint constraintForHoursInput() { + if (hoursInput.isDisabled()) { + return null; + } + return new SimpleConstraint(SimpleConstraint.NO_EMPTY + | SimpleConstraint.NO_NEGATIVE); + } + + private Constraint constraintForResourcesPerDayInput() { + if (resourcesPerDayInput.isDisabled()) { + return null; + } + return CONSTRAINT_FOR_RESOURCES_PER_DAY; } public void loadDataFromLast() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java index e9dd3d9a5..d3aa4ea02 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/FormBinder.java @@ -296,6 +296,15 @@ class FormBinder { this.allResourcesPerDay.setVisible(recommendedAllocation); this.allResourcesPerDay.setDisabled(allocationRowsHandler .getCalculatedValue() == CalculatedValue.RESOURCES_PER_DAY); + this.allResourcesPerDay + .setConstraint(constraintForAllResourcesPerDay()); + } + + private Constraint constraintForAllResourcesPerDay() { + if (!allResourcesPerDay.isVisible() || allResourcesPerDay.isDisabled()) { + return null; + } + return AllocationRow.CONSTRAINT_FOR_RESOURCES_PER_DAY; } public List getCurrentRows() {