From 725757f94417b7a74dcf92f1d53fa2d601b8c8e8 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 9 Dec 2009 07:50:30 +0100 Subject: [PATCH] ItEr38S13CUCalculoCaminhoCriticoItEr37S18: [Bug #143] Fixed bug in dependencies calculation. --- .../zkoss/ganttz/data/GanttDiagramGraph.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 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 66794ecc5..7751240ac 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/GanttDiagramGraph.java @@ -392,8 +392,8 @@ public class GanttDiagramGraph implements ICriticalPathCalculable { for (Task task : graph.vertexSet()) { int dependencies = graph.inDegreeOf(task); if ((dependencies == 0) - || (dependencies == getNumberOfDependenciesByType(task, - DependencyType.END_END))) { + || (dependencies == getNumberOfIncomingDependenciesByType( + task, DependencyType.END_END))) { tasks.add(task); } } @@ -435,8 +435,8 @@ public class GanttDiagramGraph implements ICriticalPathCalculable { for (Task task : graph.vertexSet()) { int dependencies = graph.outDegreeOf(task); if ((dependencies == 0) - || (dependencies == getNumberOfDependenciesByType(task, - DependencyType.START_START))) { + || (dependencies == getNumberOfOutgoingDependenciesByType( + task, DependencyType.START_START))) { tasks.add(task); } } @@ -444,7 +444,18 @@ public class GanttDiagramGraph implements ICriticalPathCalculable { return tasks; } - private int getNumberOfDependenciesByType(Task task, + private int getNumberOfIncomingDependenciesByType(Task task, + DependencyType dependencyType) { + int count = 0; + for (Dependency dependency : graph.incomingEdgesOf(task)) { + if (dependency.getType().equals(dependencyType)) { + count++; + } + } + return count; + } + + private int getNumberOfOutgoingDependenciesByType(Task task, DependencyType dependencyType) { int count = 0; for (Dependency dependency : graph.outgoingEdgesOf(task)) {