execContext.rootExecutionContext.addListener(new DynamicVariable.ChangeListener<TaskExecutionContext>() {
@Override
public void changedValue(DynamicVariable<TaskExecutionContext> var, TaskExecutionContext oldValue, TaskExecutionContext newValue) {
if (newValue.isFinished()) {
ui.info(new CellFinishedEventToUI(newValue.taskResult, newValue.getDuration(), $.getName()));
}
}
});
}