From 0d8ea666ed98cd1268b087c761fc2c7efb2824e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sun, 6 Dec 2009 19:43:33 +0100 Subject: [PATCH] ItEr37S06ValidacionEProbasFuncionaisItEr36S07: all resources per day is showed always. When disabled keeps track of the sum of all resources per day --- .../web/planner/allocation/AllocationRow.java | 6 ++++ .../web/planner/allocation/FormBinder.java | 29 +++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) 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 355f6790a..aee670fdd 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 @@ -314,4 +314,10 @@ public abstract class AllocationRow { hoursInput.setValue(hours); } + public void addListenerForResourcesPerDayInputChange( + EventListener resourcesPerDayRowInputChange) { + resourcesPerDayInput.addEventListener(Events.ON_CHANGE, + resourcesPerDayRowInputChange); + } + } 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 d3aa4ea02..08b256dce 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 @@ -125,6 +125,16 @@ class FormBinder { } }; + private EventListener resourcesPerDayRowInputChange = new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + if (allResourcesPerDay.isDisabled()) { + sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay(); + } + } + }; + private EventListener allHoursInputChange = new EventListener() { @Override @@ -139,7 +149,7 @@ class FormBinder { @Override public void onEvent(Event event) throws Exception { - if (allResourcesPerDay.isVisible()) { + if (!allResourcesPerDay.isDisabled()) { distributeResourcesPerDayToRows(); } } @@ -293,15 +303,15 @@ class FormBinder { } private void allResourcesPerDayVisibilityRule() { - this.allResourcesPerDay.setVisible(recommendedAllocation); this.allResourcesPerDay.setDisabled(allocationRowsHandler - .getCalculatedValue() == CalculatedValue.RESOURCES_PER_DAY); + .getCalculatedValue() == CalculatedValue.RESOURCES_PER_DAY + || !recommendedAllocation); this.allResourcesPerDay .setConstraint(constraintForAllResourcesPerDay()); } private Constraint constraintForAllResourcesPerDay() { - if (!allResourcesPerDay.isVisible() || allResourcesPerDay.isDisabled()) { + if (allResourcesPerDay.isDisabled()) { return null; } return AllocationRow.CONSTRAINT_FOR_RESOURCES_PER_DAY; @@ -313,10 +323,19 @@ class FormBinder { rows = result; applyDisabledRulesOnRows(); bindTotalHoursToHoursInputs(); + bindAllResourcesPerDayToRows(); return result; } + private void bindAllResourcesPerDayToRows() { + sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay(); + for (AllocationRow each : rows) { + each + .addListenerForResourcesPerDayInputChange(resourcesPerDayRowInputChange); + } + } + private List addListeners(List list) { for (AllocationRow each : list) { each.addListenerForInputChange(onChangeEnableApply); @@ -542,7 +561,7 @@ class FormBinder { } private void sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay() { - if (allResourcesPerDay.isDisabled() && allResourcesPerDay.isVisible()) { + if (allResourcesPerDay.isDisabled()) { allResourcesPerDay.setValue(sumResourcesPerDayFromInputs()); } }