From 0d7761ef7ab8948f7a31a87bae17c6a93bbebb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 21 Dec 2010 19:01:44 +0100 Subject: [PATCH] [Bug #763] Fix bug The order of the forces applied varies depending on the constraints having priority or not. This works because the weak forces only use the constraints of the task and if you have constraints for one point you don't have them for the other. FEA: ItEr66S04BugFixing --- .../org/zkoss/ganttz/data/GanttDiagramGraph.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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();