Fixing bug: When a task is removed, it kept enforcing the dependecies that came from it.

This commit is contained in:
Óscar González Fernández 2009-04-29 14:02:32 +02:00 committed by Javier Moran Rua
parent 1370ffcd98
commit 0e418ad9ae
2 changed files with 12 additions and 4 deletions

View file

@ -20,6 +20,8 @@ public class Planner extends XulElement implements AfterCompose {
private DependencyRemovedListener dependencyRemovedListener; private DependencyRemovedListener dependencyRemovedListener;
private TaskRemovedListener taskRemovedListener;
public Planner() { public Planner() {
} }
@ -85,12 +87,13 @@ public class Planner extends XulElement implements AfterCompose {
} }
}; };
taskList.addDependencyListener(dependencyAddedListener); taskList.addDependencyListener(dependencyAddedListener);
taskList.addTaskRemovedListener(new TaskRemovedListener() { taskRemovedListener = new TaskRemovedListener() {
@Override @Override
public void taskRemoved(Task taskRemoved) { public void taskRemoved(Task taskRemoved) {
dependencyRegistry.remove(taskRemoved.getTaskBean()); dependencyRegistry.remove(taskRemoved.getTaskBean());
} }
}); };
taskList.addTaskRemovedListener(taskRemovedListener);
dependencyRemovedListener = new DependencyRemovedListener() { dependencyRemovedListener = new DependencyRemovedListener() {
@Override @Override

View file

@ -76,13 +76,18 @@ public class DependencyRegistry {
} }
public void remove(TaskBean task) { public void remove(TaskBean task) {
List<RulesEnforcer> outgoing = getOutgoing(task);
graph.removeVertex(task); graph.removeVertex(task);
rulesEnforcersByTask.remove(task); rulesEnforcersByTask.remove(task);
updateOutgoing(task); update(outgoing);
} }
private void updateOutgoing(TaskBean task) { private void updateOutgoing(TaskBean task) {
for (RulesEnforcer rulesEnforcer : getOutgoing(task)) { update(getOutgoing(task));
}
private void update(List<RulesEnforcer> outgoing) {
for (RulesEnforcer rulesEnforcer : outgoing) {
rulesEnforcer.update(); rulesEnforcer.update();
} }
} }