From 9daf7e6d3445729b038fc5aecef3dcf5758e55ee Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 15 Nov 2010 21:06:26 +0100 Subject: [PATCH] [Bug #712] Printed container as in critical path when it is collapsed and some of its children are in critical path. FEA: ItEr63S03BugFixing --- ganttzk/pom.xml | 5 +++++ .../FunctionalityExposedForExtensions.java | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ganttzk/pom.xml b/ganttzk/pom.xml index 5221c2c5a..ffb1d8fd9 100644 --- a/ganttzk/pom.xml +++ b/ganttzk/pom.xml @@ -58,6 +58,11 @@ commons-lang commons-lang + + + commons-collections + commons-collections + org.zkoss.zk diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/FunctionalityExposedForExtensions.java b/ganttzk/src/main/java/org/zkoss/ganttz/FunctionalityExposedForExtensions.java index aa8cd5a16..84b0c4212 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/FunctionalityExposedForExtensions.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/FunctionalityExposedForExtensions.java @@ -30,6 +30,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.apache.commons.collections.CollectionUtils; import org.joda.time.LocalDate; import org.zkoss.ganttz.adapters.DomainDependency; import org.zkoss.ganttz.adapters.IAdapterToTaskFundamentalProperties; @@ -39,13 +40,13 @@ import org.zkoss.ganttz.adapters.PlannerConfiguration; import org.zkoss.ganttz.data.Dependency; import org.zkoss.ganttz.data.DependencyType; import org.zkoss.ganttz.data.GanttDiagramGraph; -import org.zkoss.ganttz.data.GanttDiagramGraph.GanttZKDiagramGraph; import org.zkoss.ganttz.data.ITaskFundamentalProperties; import org.zkoss.ganttz.data.Milestone; import org.zkoss.ganttz.data.Position; import org.zkoss.ganttz.data.Task; import org.zkoss.ganttz.data.TaskContainer; import org.zkoss.ganttz.data.TaskLeaf; +import org.zkoss.ganttz.data.GanttDiagramGraph.GanttZKDiagramGraph; import org.zkoss.ganttz.data.criticalpath.CriticalPathCalculator; import org.zkoss.ganttz.extensions.IContext; import org.zkoss.ganttz.timetracker.TimeTracker; @@ -386,11 +387,16 @@ public class FunctionalityExposedForExtensions implements IContext { List criticalPath = criticalPathCalculator .calculateCriticalPath(diagramGraph); for (Task task : diagramGraph.getTasks()) { - if (criticalPath.contains(task)) { - task.setInCriticalPath(true); - } else { - task.setInCriticalPath(false); - } + task.setInCriticalPath(isInCriticalPath(criticalPath, task)); + } + } + + private boolean isInCriticalPath(List criticalPath, Task task) { + if (task.isContainer() && !task.isExpanded()) { + List allTaskLeafs = ((TaskContainer) task).getAllTaskLeafs(); + return CollectionUtils.containsAny(criticalPath, allTaskLeafs); + } else { + return criticalPath.contains(task); } }