From a9e5ae5cbeefce9fbe30891dc9ea791727951d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 1 Mar 2012 12:10:17 +0100 Subject: [PATCH] Bug #1354: Fix bug Although the constraint is not applied it must be provided. Otherwise the dominating forces would not take it into account. Normally this wasn't a problem since if the secondary point date changes it was provided. But it can happen that the secondary point doesn't change, in that case the constraint must still be taken into account. --- .../zkoss/ganttz/data/GanttDiagramGraph.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 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 674c0f48a..271d83471 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -1730,15 +1730,17 @@ public class GanttDiagramGraph> implements .withConstraints(restrictions.getStartConstraints()) .withConstraints(getStartConstraints()) .applyWithoutFinalCheck(); - if (result != null && !result.equals(getStartDate(task))) { - return enforceRestrictions(result); + if (result != null) { + enforceRestrictions(result); + return biggerThan(result, adapter.getEndDateFor(task)); } return restrictions; } - private PositionRestrictions enforceRestrictions(GanttDate result) { - adapter.setStartDateFor(task, result); - return biggerThan(result, adapter.getEndDateFor(task)); + private void enforceRestrictions(GanttDate result) { + if (!result.equals(getStartDate(task))) { + adapter.setStartDateFor(task, result); + } } } @@ -1752,8 +1754,9 @@ public class GanttDiagramGraph> implements .withConstraints(restrictions.getEndConstraints()) .withConstraints(getEndConstraints()) .applyWithoutFinalCheck(); - if (result != null && !result.equals(getEndDateFor(task))) { - return enforceRestrictions(result); + if (result != null) { + enforceRestrictions(result); + return lessThan(adapter.getStartDate(task), result); } return restrictions; } @@ -1768,11 +1771,11 @@ public class GanttDiagramGraph> implements return adapter.getEndConstraintsFor(task); } - private PositionRestrictions enforceRestrictions(GanttDate newEnd) { - adapter.setEndDateFor(task, newEnd); - return lessThan(adapter.getStartDate(task), newEnd); + private void enforceRestrictions(GanttDate newEnd) { + if (!newEnd.equals(getEndDateFor(task))) { + adapter.setEndDateFor(task, newEnd); + } } - } @Override