diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java index e31435d52..07f287b63 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java @@ -195,6 +195,7 @@ public class AllocationRowsHandler { if (row.isModifying()) { requestedToRemove.add(row.getOrigin()); } + formBinder.rowRemoved(); } public Set> getAllocationsRequestedToRemove() { 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 026fdc122..77e978693 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 @@ -120,8 +120,6 @@ public class FormBinder { private Button btnRecommendedAllocation; - private boolean recommendedAllocationIsPressed = false; - private ProportionalDistributor hoursDistributorForRecommendedAllocation; private ResourcesPerDay.ResourcesPerDayDistributor resourcesPerDayDistributorForRecommendedAllocation; @@ -231,6 +229,7 @@ public class FormBinder { workableDaysAndDatesBinder.applyDisabledRules(); allResourcesPerDayVisibilityRule(); applyDisabledRulesOnRows(); + this.btnRecommendedAllocation.setDisabled(recommendedAllocation); } private void applyDisabledRulesOnRows() { @@ -658,16 +657,22 @@ public class FormBinder { } } + public void setRecommendedAllocation(Button recommendedAllocation) { + this.btnRecommendedAllocation = recommendedAllocation; + Util.ensureUniqueListener(recommendedAllocation, Events.ON_CLICK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + activatingRecommendedAllocation(); + } + }); + } + public EventListener getRecommendedAllocationListener() { return new EventListener() { @Override public void onEvent(Event event) throws Exception { - recommendedAllocationIsPressed = !recommendedAllocationIsPressed; - if (recommendedAllocationIsPressed) { - activatingRecommendedAllocation(); - } else { - deactivatingRecommendedAllocation(); - } + activatingRecommendedAllocation(); } }; } @@ -713,6 +718,10 @@ public class FormBinder { AllocationRow.assignResourcesPerDay(rows, forRows); } + public void rowRemoved() { + deactivatingRecommendedAllocation(); + } + private void deactivatingRecommendedAllocation() { this.recommendedAllocation = false; allHoursInput @@ -847,4 +856,5 @@ public class FormBinder { this.behaviour = behaviour; } + } 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 abc180580..48c644446 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 @@ -255,8 +255,8 @@ public class ResourceAllocationController extends GenericForwardComposer { private void initializeTaskInformationComponent() { taskInformation.initializeGridTaskRows(resourceAllocationModel .getHoursAggregatedByCriterions()); - taskInformation.onRecomendAllocation(formBinder - .getRecommendedAllocationListener()); + formBinder.setRecommendedAllocation(taskInformation + .getBtnRecommendedAllocation()); taskInformation.onCalculateTotalHours(new ITotalHoursCalculationListener() { @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/TaskInformation.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/TaskInformation.java index f3db8d515..3f0901ce0 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/TaskInformation.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/TaskInformation.java @@ -29,8 +29,6 @@ import org.zkoss.ganttz.timetracker.ICellForDetailItemRenderer; import org.zkoss.ganttz.timetracker.OnColumnsRowRenderer; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.HtmlMacroComponent; -import org.zkoss.zk.ui.event.EventListener; -import org.zkoss.zk.ui.event.Events; import org.zkoss.zul.Button; import org.zkoss.zul.Footer; import org.zkoss.zul.Grid; @@ -75,9 +73,8 @@ public class TaskInformation extends HtmlMacroComponent { gridTaskRows.setRowRenderer(newTaskRowsRenderer()); } - public void onRecomendAllocation(EventListener eventListener) { - Util.ensureUniqueListener(btnRecommendedAllocation, Events.ON_CLICK, - eventListener); + public Button getBtnRecommendedAllocation() { + return btnRecommendedAllocation; } public void showRecomendedAllocationButton() {