From f444c2f457d7bf03c6b6f0461133c9df0d27971a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sat, 7 Nov 2009 17:03:17 +0100 Subject: [PATCH] ItEr33S14CUCreacionUnidadesPlanificacion: Using constraints to calculate end date --- .../org/zkoss/ganttz/data/GanttDiagramGraph.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 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 0c4fc4b94..726aaf335 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -136,10 +136,18 @@ public class GanttDiagramGraph { enforceEndDate(incoming); } + @SuppressWarnings("unchecked") private void enforceEndDate(Set incoming) { - Date endDate = task.getEndDate(); - Date newEnd = Dependency.calculateEnd(task, endDate, incoming); - if (!endDate.equals(newEnd)) { + Constraint currentLength = task.getCurrentLengthConstraint(); + Constraint respectStartDate = task + .getEndDateBiggerThanStartDate(); + Date newEnd = Constraint. initialValue(null) + .withConstraints(currentLength) + .withConstraints(Dependency + .getEndConstraints(incoming)) + .withConstraints(respectStartDate) + .apply(); + if (!task.getEndDate().equals(newEnd)) { task.setEndDate(newEnd); } }