Fixing bug: When a task is removed, it kept enforcing the dependecies that came from it.
This commit is contained in:
parent
1370ffcd98
commit
0e418ad9ae
2 changed files with 12 additions and 4 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue