@startuml
!include style.puml

actor Actor as user
participant UI as UI UI_COLOR

box "Logic" LOGIC_COLOR_T1
participant ":LogicManager" as lm LOGIC_COLOR
end box

box "Model" MODEL_COLOR_T1
participant ":ModelManager" as mm MODEL_COLOR
participant "filteredTasks:FilteredList<Task>" as ft MODEL_COLOR
end box

autoactivate on
user -> UI: add task filter
UI -> lm: addTaskFilter(taskFilter)
lm -> mm: addTaskFilter(taskFilter)
mm -> mm: recalculateFilteredTaskList()
mm -> mm: updateFilteredTaskList(effectivePredicate)
mm -> ft: setPredicate(predicate)
UI <- ft: update gui
return
return
return
return
lm <-- mm
GUI <-- lm
user <-- GUI
@enduml
