From 893a5deebce128c5ba72667bdf4ebd9a2415a698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 23 Sep 2009 00:31:34 +0200 Subject: [PATCH] ItEr27S06CUAsignacionGrupoRecursosAPlanificacionItEr26S07: Adding apply button. It is enabled and disabled when required. --- .../web/planner/allocation/FormBinder.java | 50 +++++++++++++++++++ .../ResourceAllocationController.java | 3 ++ .../src/main/webapp/planner/order.zul | 1 + 3 files changed, 54 insertions(+) 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 310475799..ab7634ce8 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 @@ -2,8 +2,14 @@ package org.navalplanner.web.planner.allocation; import org.navalplanner.business.planner.entities.AggregateOfResourceAllocations; import org.navalplanner.business.planner.entities.CalculatedValue; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Button; import org.zkoss.zul.Datebox; import org.zkoss.zul.Intbox; +import org.zkoss.zul.impl.api.InputElement; class FormBinder { @@ -16,6 +22,23 @@ class FormBinder { private Intbox taskElapsedDays; + private Button applyButton; + + private EventListener onChangeEnableApply = new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + Component target = event.getTarget(); + if (target instanceof InputElement) { + InputElement inputElement = (InputElement) target; + if (inputElement.isDisabled()) { + return; + } + } + applyButton.setDisabled(false); + } + }; + public FormBinder( ResourceAllocationsBeingEdited resourceAllocationsBeingEdited) { this.resourceAllocationsBeingEdited = resourceAllocationsBeingEdited; @@ -27,6 +50,7 @@ class FormBinder { this.assignedHoursComponent = assignedHoursComponent; assignedHoursComponentDisabilityRule(); this.assignedHoursComponent.setValue(aggregate.getTotalHours()); + onChangeEnableApply(assignedHoursComponent); } private void assignedHoursComponentDisabilityRule() { @@ -45,6 +69,7 @@ class FormBinder { } resourceAllocationsBeingEdited.setCalculatedValue(calculatedValue); applyDisabledRules(); + applyButton.setDisabled(false); } private void applyDisabledRules() { @@ -61,6 +86,11 @@ class FormBinder { this.taskStartDateBox.setDisabled(true); this.taskStartDateBox.setValue(resourceAllocationsBeingEdited.getTask() .getStartDate()); + onChangeEnableApply(taskStartDateBox); + } + + private void onChangeEnableApply(InputElement inputElement) { + inputElement.addEventListener(Events.ON_CHANGE, onChangeEnableApply); } public void setTaskElapsedDays(Intbox taskElapsedDays) { @@ -68,10 +98,30 @@ class FormBinder { taskElapsedDaysDisabilityRule(); this.taskElapsedDays.setValue(resourceAllocationsBeingEdited.getTask() .getDaysDuration()); + onChangeEnableApply(taskElapsedDays); } private void taskElapsedDaysDisabilityRule() { this.taskElapsedDays.setDisabled(true); } + private void doApply() { + // TODO implement + } + + + public void setApplyButton(Button applyButton) { + this.applyButton = applyButton; + this.applyButton.setDisabled(true); + this.applyButton.addEventListener(Events.ON_CLICK, new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + doApply(); + FormBinder.this.applyButton.setDisabled(true); + } + }); + } + + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java index 4bdd00ddb..e7825b128 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java @@ -79,6 +79,8 @@ public class ResourceAllocationController extends GenericForwardComposer { private Intbox taskElapsedDays; + private Button applyButton; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -101,6 +103,7 @@ public class ResourceAllocationController extends GenericForwardComposer { formBinder.setAssignedHoursComponent(assignedHoursComponent); formBinder.setTaskStartDateBox(taskStartDateBox); formBinder.setTaskElapsedDays(taskElapsedDays); + formBinder.setApplyButton(applyButton); CalculationTypeRadio calculationTypeRadio = CalculationTypeRadio .from(formBinder.getCalculatedValue()); calculationTypeRadio.doTheSelectionOn(calculationTypeSelector); diff --git a/navalplanner-webapp/src/main/webapp/planner/order.zul b/navalplanner-webapp/src/main/webapp/planner/order.zul index c6f828446..904f07a3c 100644 --- a/navalplanner-webapp/src/main/webapp/planner/order.zul +++ b/navalplanner-webapp/src/main/webapp/planner/order.zul @@ -128,6 +128,7 @@