diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java index 402630afb..a785834a7 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -132,10 +132,11 @@ public class GanttDiagramGraph { void enforce() { Set incoming = graph.incomingEdgesOf(task); - Date beginDate = task.getBeginDate(); - Date newStart = Dependency - .calculateStart(task, beginDate, incoming); - if (!beginDate.equals(newStart)) { + List> startConstraints = Dependency + .getStartConstraints(incoming); + Date newStart = Constraint.apply(null, + plusGlobalStartConstraints(startConstraints)); + if (!task.getBeginDate().equals(newStart)) { task.setBeginDate(newStart); } Date endDate = task.getEndDate(); @@ -144,6 +145,15 @@ public class GanttDiagramGraph { task.setEndDate(newEnd); } } + + } + + private List> plusGlobalStartConstraints( + List> startConstraints) { + List> result = new ArrayList>(); + result.addAll(startConstraints); + result.addAll(globalStartConstraints); + return result; } public void enforceAllRestrictions() {