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 TaskRemovedListener taskRemovedListener;
public Planner() {
}
@ -85,12 +87,13 @@ public class Planner extends XulElement implements AfterCompose {
}
};
taskList.addDependencyListener(dependencyAddedListener);
taskList.addTaskRemovedListener(new TaskRemovedListener() {
taskRemovedListener = new TaskRemovedListener() {
@Override
public void taskRemoved(Task taskRemoved) {
dependencyRegistry.remove(taskRemoved.getTaskBean());
}
});
};
taskList.addTaskRemovedListener(taskRemovedListener);
dependencyRemovedListener = new DependencyRemovedListener() {
@Override

View file

@ -76,13 +76,18 @@ public class DependencyRegistry {
}
public void remove(TaskBean task) {
List<RulesEnforcer> outgoing = getOutgoing(task);
graph.removeVertex(task);
rulesEnforcersByTask.remove(task);
updateOutgoing(task);
update(outgoing);
}
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();
}
}