From 4c384cdbfb3781869a94be1dc2c7879802ad0c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Fri, 10 Dec 2010 18:47:45 +0100 Subject: [PATCH] Let provide a not after than constraint This constraint comes from the deadline of the order. FEA: ItEr64OTS03PlanificacionHaciaAtras --- .../ganttz/adapters/PlannerConfiguration.java | 33 +++++++++++++------ .../web/common/TemplateModel.java | 7 ++-- .../web/planner/order/OrderPlanningModel.java | 1 + .../planner/tabs/MonteCarloTabCreator.java | 9 ++--- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java index e42cb1290..bd50f254f 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java @@ -21,6 +21,7 @@ package org.zkoss.ganttz.adapters; import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan; +import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.lessOrEqualThan; import java.util.ArrayList; import java.util.Collections; @@ -127,7 +128,9 @@ public class PlannerConfiguration implements IDisabilityConfiguration { private boolean editingDatesEnabled = true; - private Date notBeforeThan = null; + private GanttDate notBeforeThan = null; + + private GanttDate notAfterThan = null; private boolean dependenciesConstraintsHavePriority = false; @@ -209,7 +212,11 @@ public class PlannerConfiguration implements IDisabilityConfiguration { } public void setNotBeforeThan(Date notBeforeThan) { - this.notBeforeThan = new Date(notBeforeThan.getTime()); + this.notBeforeThan = GanttDate.createFrom(notBeforeThan); + } + + public void setNotAfterThan(Date notAfterThan) { + this.notAfterThan = GanttDate.createFrom(notAfterThan); } public void setGoingDownInLastArrowCommand( @@ -271,22 +278,28 @@ public class PlannerConfiguration implements IDisabilityConfiguration { this.editingDatesEnabled = editingDatesEnabled; } - public List> getStartConstraints() { - return getStartConstraintsGiven(GanttDate - .createFrom(this.notBeforeThan)); - } - public static List> getStartConstraintsGiven( GanttDate notBeforeThan) { if (notBeforeThan != null) { return Collections.singletonList(biggerOrEqualThan(notBeforeThan)); - } else { - return Collections.emptyList(); } + return Collections.emptyList(); + } + + public List> getStartConstraints() { + return getStartConstraintsGiven(notBeforeThan); + } + + public static List> getEndConstraintsGiven( + GanttDate notAfterThan) { + if (notAfterThan != null) { + return Collections.singletonList(lessOrEqualThan(notAfterThan)); + } + return Collections.emptyList(); } public List> getEndConstraints() { - return Collections.emptyList(); + return getEndConstraintsGiven(notAfterThan); } public boolean isDependenciesConstraintsHavePriority() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java index 7626079d5..b5d75c5ce 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModel.java @@ -23,7 +23,6 @@ package org.navalplanner.web.common; import static org.navalplanner.business.i18n.I18nHelper._; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -407,9 +406,9 @@ public class TemplateModel implements ITemplateModel { private GanttDiagramGraph createFor( Order order, IAdapter adapter) { List> startConstraints = PlannerConfiguration - .getStartConstraintsGiven(GanttDate.createFrom(order - .getInitDate())); - List> endConstraints = Collections.emptyList(); + .getStartConstraintsGiven((GanttDate) GanttDate.createFrom(order.getInitDate())); + List> endConstraints = PlannerConfiguration + .getEndConstraintsGiven((GanttDate) GanttDate.createFrom(order.getDeadline())); GanttDiagramGraph result = GanttDiagramGraph .create(order.isScheduleBackwards(), adapter, startConstraints, endConstraints, diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index 5e021b46f..72105e35b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -1009,6 +1009,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { taskElementAdapter, new TaskElementNavigator(), planningState.getInitial()); result.setNotBeforeThan(orderReloaded.getInitDate()); + result.setNotAfterThan(orderReloaded.getDeadline()); result.setDependenciesConstraintsHavePriority(orderReloaded .getDependenciesConstraintsHavePriority()); result.setScheduleBackwards(orderReloaded.isScheduleBackwards()); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java index 4dfeb6ee9..65ed77dd9 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/tabs/MonteCarloTabCreator.java @@ -24,7 +24,6 @@ import static org.navalplanner.web.planner.tabs.MultipleTabsPlannerController.BR import static org.navalplanner.web.planner.tabs.MultipleTabsPlannerController.PLANNIFICATION; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -218,10 +217,12 @@ public class MonteCarloTabCreator { private GanttDiagramGraph createFor( Order order, IAdapter adapter) { + GanttDate orderStart = GanttDate.createFrom(order.getInitDate()); List> startConstraints = PlannerConfiguration - .getStartConstraintsGiven(GanttDate.createFrom(order - .getInitDate())); - List> endConstraints = Collections.emptyList(); + .getStartConstraintsGiven(orderStart); + GanttDate deadline = GanttDate.createFrom(order.getDeadline()); + List> endConstraints = PlannerConfiguration + .getEndConstraintsGiven(deadline); GanttDiagramGraph result = GanttDiagramGraph.create( order.isScheduleBackwards(), adapter, startConstraints, endConstraints,