From 6fccde1f2f112beaa8d710177d3ccd9358af8b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Fri, 4 Dec 2009 14:33:05 +0100 Subject: [PATCH] ItEr37S08CUCreacionUnidadesPlanificacionItEr36S11: When doing recommended allocation resources per day are always shown --- .../web/planner/allocation/AllocationRow.java | 6 +++++ .../web/planner/allocation/FormBinder.java | 25 ++++++++++++++++--- 2 files changed, 28 insertions(+), 3 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 45af6a712..69b228c97 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 @@ -213,6 +213,12 @@ public abstract class AllocationRow { return this.resourcesPerDay; } + public ResourcesPerDay getResourcesPerDayFromInput() { + BigDecimal value = resourcesPerDayInput.getValue(); + value = value != null ? value : BigDecimal.ZERO; + return ResourcesPerDay.amount(value); + } + public void setResourcesPerDay(ResourcesPerDay resourcesPerDay) { this.resourcesPerDay = resourcesPerDay; resourcesPerDayInput.setValue(this.resourcesPerDay.getAmount()); 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 7c0c387db..7c0365ab9 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 @@ -194,6 +194,7 @@ class FormBinder { allocationRowsHandler.setCalculatedValue(calculatedValue); applyDisabledRules(); loadValueForEndDate(); + sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay(); applyButton.setDisabled(false); } @@ -291,9 +292,9 @@ class FormBinder { } private void allResourcesPerDayVisibilityRule() { - this.allResourcesPerDay.setVisible(allocationRowsHandler - .getCalculatedValue() != CalculatedValue.RESOURCES_PER_DAY - && recommendedAllocation); + this.allResourcesPerDay.setVisible(recommendedAllocation); + this.allResourcesPerDay.setDisabled(allocationRowsHandler + .getCalculatedValue() == CalculatedValue.RESOURCES_PER_DAY); } public List getCurrentRows() { @@ -305,6 +306,7 @@ class FormBinder { return result; } + private List addListeners(List list) { for (AllocationRow each : list) { each.addListenerForInputChange(onChangeEnableApply); @@ -322,6 +324,8 @@ class FormBinder { } }); aggregate = lastAllocation.getAggregate(); + allResourcesPerDayVisibilityRule(); + sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay(); reloadValues(); } @@ -478,6 +482,7 @@ class FormBinder { allHoursInputChange); allResourcesPerDay.addEventListener(Events.ON_CHANGE, allResourcesPerDayChange); + sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay(); Util.reloadBindings(allocationsList); } @@ -514,4 +519,18 @@ class FormBinder { this.workerSearchTab = workerSearchTab; } + private void sumResourcesPerDayFromRowsAndAssignToAllResourcesPerDay() { + if (allResourcesPerDay.isDisabled() && allResourcesPerDay.isVisible()) { + allResourcesPerDay.setValue(sumResourcesPerDayFromInputs()); + } + } + + private BigDecimal sumResourcesPerDayFromInputs() { + BigDecimal sum = BigDecimal.ZERO; + for (AllocationRow each : rows) { + sum = sum.add(each.getResourcesPerDayFromInput().getAmount()); + } + return sum; + } + }