diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java index da2920eee..62073b6ab 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java @@ -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 diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java index 7aadad658..2980a5ffc 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java @@ -76,13 +76,18 @@ public class DependencyRegistry { } public void remove(TaskBean task) { + List 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 outgoing) { + for (RulesEnforcer rulesEnforcer : outgoing) { rulesEnforcer.update(); } }