From 93d5667769668ebc7c4ea72f97d4da7b6f2be111 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 822dd56f2..11875f08e 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -1746,15 +1746,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); + } } } @@ -1768,8 +1770,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; } @@ -1784,11 +1787,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