From 008f581d2fd7cc3e671c5d65df188531cfe03ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 18 May 2010 20:51:41 +0200 Subject: [PATCH] ItEr58S14RecalculosConexionEscenariosItEr57S15: Allow to reuse DependencyType with another types of tasks --- .../org/zkoss/ganttz/data/DependencyType.java | 81 +++++++++++-------- .../zkoss/ganttz/data/GanttDiagramGraph.java | 11 ++- 2 files changed, 58 insertions(+), 34 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/DependencyType.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/DependencyType.java index 8d6846643..2af0fd53d 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DependencyType.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DependencyType.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import org.zkoss.ganttz.data.GanttDiagramGraph.IAdapter; import org.zkoss.ganttz.data.GanttDiagramGraph.PointType; import org.zkoss.ganttz.data.constraint.Constraint; import org.zkoss.ganttz.data.constraint.DateConstraint; @@ -47,13 +48,13 @@ public enum DependencyType { return current; } - @Override - public List> getEndConstraints(Task source) { + public List> getStartConstraints(V source, + IAdapter adapter) { return Collections.emptyList(); } - @Override - public List> getStartConstraints(Task source) { + public List> getEndConstraints(V source, + IAdapter adapter) { return Collections.emptyList(); } @@ -75,13 +76,14 @@ public enum DependencyType { return getBigger(originalTask.getEndDate(), current); } - @Override - public List> getStartConstraints(Task source) { - return Collections.singletonList(biggerThanTaskEndDate(source)); + public List> getStartConstraints(V source, + IAdapter adapter) { + return Collections.singletonList(biggerThanTaskEndDate(adapter, + source)); } - @Override - public List> getEndConstraints(Task source) { + public List> getEndConstraints(V source, + GanttDiagramGraph.IAdapter adapter) { return Collections.emptyList(); } @@ -103,14 +105,15 @@ public enum DependencyType { return getBigger(originTask.getBeginDate(), current); } - @Override - public List> getEndConstraints(Task source) { - return Collections.emptyList(); + public List> getStartConstraints(V source, + GanttDiagramGraph.IAdapter adapter) { + return Collections.singletonList(biggerThanTaskStartDate(adapter, + source)); } - @Override - public List> getStartConstraints(Task source) { - return Collections.singletonList(biggerThanTaskStartDate(source)); + public List> getEndConstraints(V source, + GanttDiagramGraph.IAdapter adapter) { + return Collections.emptyList(); } @Override @@ -130,29 +133,33 @@ public enum DependencyType { return current; } - @Override - public List> getEndConstraints(Task source) { - return Collections.singletonList(biggerThanTaskEndDate(source)); - } - - @Override - public List> getStartConstraints(Task source) { - return Collections.emptyList(); - } - @Override public PointType getPointModified() { return PointType.END; } + + @Override + public List> getEndConstraints(V source, + IAdapter adapter) { + return Collections.singletonList(biggerThanTaskEndDate(adapter, + source)); + } + + @Override + public List> getStartConstraints(V source, + IAdapter adapter) { + return Collections.emptyList(); + } }; - protected Constraint biggerThanTaskEndDate(Task source) { - return DateConstraint.biggerOrEqualThan(source.getEndDate()); + protected Constraint biggerThanTaskEndDate( + IAdapter adapter, V source) { + return DateConstraint.biggerOrEqualThan(adapter.getEndDateFor(source)); } - protected Constraint biggerThanTaskStartDate(Task source) { - return DateConstraint - .biggerOrEqualThan(source.getBeginDate()); + protected Constraint biggerThanTaskStartDate( + IAdapter adapter, V source) { + return DateConstraint.biggerOrEqualThan(adapter.getStartDate(source)); } private static Date getBigger(Date date1, Date date2) { @@ -168,9 +175,19 @@ public enum DependencyType { public abstract Date calculateStartDestinyTask(Task originTask, Date current); - public abstract List> getStartConstraints(Task source); + public final List> getStartConstraints(Task source) { + return getStartConstraints(source, GanttDiagramGraph.taskAdapter()); + } - public abstract List> getEndConstraints(Task source); + public abstract List> getStartConstraints(V source, + IAdapter adapter); + + public final List> getEndConstraints(Task source) { + return getEndConstraints(source, GanttDiagramGraph.taskAdapter()); + } + + public abstract List> getEndConstraints(V source, + IAdapter adapter); abstract PointType getPointModified(); } 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 570067792..bf479723f 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -72,6 +72,12 @@ public class GanttDiagramGraph { }; } + private static final GanttZKAdapter GANTTZK_ADAPTER = new GanttZKAdapter(); + + public static IAdapter taskAdapter() { + return GANTTZK_ADAPTER; + } + public interface IAdapter { List getChildren(V task); @@ -234,7 +240,7 @@ public class GanttDiagramGraph { List> globalStartConstraints, List> globalEndConstraints, boolean dependenciesConstraintsHavePriority) { - super(new GanttZKAdapter(), globalStartConstraints, + super(GANTTZK_ADAPTER, globalStartConstraints, globalEndConstraints, dependenciesConstraintsHavePriority); } @@ -1278,7 +1284,7 @@ public class GanttDiagramGraph { } } - static class TaskPoint { + public static class TaskPoint { public static TaskPoint both(IAdapter adapter, T task) { return new TaskPoint(adapter, task, PointType.BOTH); @@ -1367,6 +1373,7 @@ public class GanttDiagramGraph { } return result; } + } interface IReentranceCases {