ItEr15S12RFComportamentoGraficoPlanificadorItEr14S13: Instead of returning all tasks, DependencyRegistry returns only the top level tasks.
It's pending to show subtasks in the right pane.
This commit is contained in:
parent
6e01a038fa
commit
eb09ba3d89
5 changed files with 26 additions and 21 deletions
|
|
@ -18,7 +18,7 @@ public class GanttPanel extends XulElement implements AfterCompose {
|
|||
this.dependencyRegistry = dependencyRegistry;
|
||||
timeTracker = new TimeTracker();
|
||||
appendChild(timeTracker);
|
||||
tasksLists = TaskList.createFor(dependencyRegistry.getTasks());
|
||||
tasksLists = TaskList.createFor(dependencyRegistry.getTopLevelTasks());
|
||||
dependencyList = new DependencyList();
|
||||
appendChild(tasksLists);
|
||||
appendChild(dependencyList);
|
||||
|
|
|
|||
|
|
@ -4,10 +4,8 @@ import java.util.ArrayList;
|
|||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
|
@ -123,25 +121,16 @@ public class ListDetails extends HtmlMacroComponent {
|
|||
|
||||
private static List<SimpleTreeNode> asSimpleTreeNodes(
|
||||
List<TaskBean> taskBeans2) {
|
||||
return asSimpleTreeNodes(taskBeans2, new HashSet<TaskBean>());
|
||||
}
|
||||
|
||||
private static List<SimpleTreeNode> asSimpleTreeNodes(
|
||||
List<TaskBean> taskBeans2, Set<TaskBean> alreadyIncluded) {
|
||||
ArrayList<SimpleTreeNode> result = new ArrayList<SimpleTreeNode>();
|
||||
for (TaskBean taskBean : taskBeans2) {
|
||||
if (alreadyIncluded.contains(taskBean))
|
||||
continue;
|
||||
SimpleTreeNode node = asSimpleTreeNode(taskBean);
|
||||
if (taskBean instanceof TaskContainerBean) {
|
||||
TaskContainerBean container = (TaskContainerBean) taskBean;
|
||||
node.getChildren()
|
||||
.addAll(
|
||||
asSimpleTreeNodes(container.getTasks(),
|
||||
alreadyIncluded));
|
||||
.addAll(
|
||||
asSimpleTreeNodes(container.getTasks()));
|
||||
}
|
||||
result.add(node);
|
||||
alreadyIncluded.add(taskBean);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ package org.zkoss.ganttz;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.zkoss.ganttz.util.DependencyRegistry;
|
||||
import org.zkoss.ganttz.util.TaskBean;
|
||||
import org.zkoss.ganttz.util.TaskContainerBean;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.ext.AfterCompose;
|
||||
|
|
@ -13,6 +14,8 @@ import org.zkoss.zul.impl.XulElement;
|
|||
|
||||
public class Planner extends XulElement implements AfterCompose {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(Planner.class);
|
||||
|
||||
private DependencyAddedListener dependencyAddedListener;
|
||||
private DependencyRegistry dependencyRegistry = new DependencyRegistry();
|
||||
private DependencyRemovedListener dependencyRemovedListener;
|
||||
|
|
@ -124,7 +127,7 @@ public class Planner extends XulElement implements AfterCompose {
|
|||
|
||||
public void addTask(TaskBean newTask) {
|
||||
getTaskList().addTask(newTask);
|
||||
dependencyRegistry.add(newTask);
|
||||
dependencyRegistry.addTopLevel(newTask);
|
||||
}
|
||||
|
||||
private void publishDependency(Dependency dependency) {
|
||||
|
|
@ -138,7 +141,8 @@ public class Planner extends XulElement implements AfterCompose {
|
|||
public void setDependencyRegistry(DependencyRegistry dependencyRegistry) {
|
||||
this.dependencyRegistry = dependencyRegistry;
|
||||
removePreviousDetails();
|
||||
this.listDetails = new ListDetails(dependencyRegistry.getTasks());
|
||||
this.listDetails = new ListDetails(dependencyRegistry
|
||||
.getTopLevelTasks());
|
||||
insertBefore(this.listDetails,
|
||||
(Component) (getChildren().isEmpty() ? null : getChildren()
|
||||
.get(0)));
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.zkoss.ganttz.util;
|
|||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -27,6 +28,8 @@ public class DependencyRegistry {
|
|||
|
||||
private Map<TaskBean, DependencyRulesEnforcer> rulesEnforcersByTask = new HashMap<TaskBean, DependencyRulesEnforcer>();
|
||||
|
||||
private List<TaskBean> topLevelTasks = new ArrayList<TaskBean>();
|
||||
|
||||
private List<DependencyRulesEnforcer> getOutgoing(TaskBean task) {
|
||||
ArrayList<DependencyRulesEnforcer> result = new ArrayList<DependencyRulesEnforcer>();
|
||||
for (DependencyBean dependencyBean : graph.outgoingEdgesOf(task)) {
|
||||
|
|
@ -101,14 +104,19 @@ public class DependencyRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
public void add(TaskBean task) {
|
||||
public void addTopLevel(TaskBean task) {
|
||||
topLevelTasks.add(task);
|
||||
addTask(task);
|
||||
}
|
||||
|
||||
private void addTask(TaskBean task) {
|
||||
graph.addVertex(task);
|
||||
rulesEnforcersByTask.put(task, new DependencyRulesEnforcer(task));
|
||||
if (task instanceof TaskContainerBean) {
|
||||
TaskContainerBean container = (TaskContainerBean) task;
|
||||
new ParentShrinkingEnforcer(container);
|
||||
for (TaskBean child : container.getTasks()) {
|
||||
add(child);
|
||||
addTask(child);
|
||||
add(new DependencyBean(child, container,
|
||||
DependencyType.END_END, false));
|
||||
add(new DependencyBean(container, child,
|
||||
|
|
@ -166,4 +174,8 @@ public class DependencyRegistry {
|
|||
return result;
|
||||
}
|
||||
|
||||
public List<TaskBean> getTopLevelTasks() {
|
||||
return Collections.unmodifiableList(topLevelTasks);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class DataForPlanner {
|
|||
first = taskBean;
|
||||
if (i == 1)
|
||||
second = taskBean;
|
||||
dependencyRegistry.add(taskBean);
|
||||
dependencyRegistry.addTopLevel(taskBean);
|
||||
}
|
||||
TaskContainerBean container = new TaskContainerBean();
|
||||
container.setBeginDate(now);
|
||||
|
|
@ -57,7 +57,7 @@ public class DataForPlanner {
|
|||
container.add(child1);
|
||||
TaskBean child2 = createTaskBean("child 2", now, end);
|
||||
container.add(child2);
|
||||
dependencyRegistry.add(container);
|
||||
dependencyRegistry.addTopLevel(container);
|
||||
dependencyRegistry.add(new DependencyBean(child1, child2,
|
||||
DependencyType.END_START));
|
||||
dependencyRegistry.add(new DependencyBean(first, second,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue