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 2e59da184..44fbf343d 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -1029,18 +1029,17 @@ public class GanttDiagramGraph> implements @SuppressWarnings("unchecked") private List> getConstraintsToApply() { - List> result = new ArrayList>(); - if (!scheduleBackwards) { - result.addAll(asList(new WeakBackwardsForces(), - new DominatingForwardForces())); + Constraint weakForces = scheduleBackwards ? new WeakForwardForces() + : new WeakBackwardsForces(); + Constraint dominatingForces = scheduleBackwards ? new DominatingBackwardForces() + : new DominatingForwardForces(); + if (dependenciesConstraintsHavePriority) { + return asList(weakForces, dominatingForces); } else { - result.addAll(asList(new WeakForwardForces(), - new DominatingBackwardForces())); + return asList(weakForces, dominatingForces, weakForces); } - return result; } - abstract class PositionRestrictions { abstract List> getStartConstraints();