module sharedlist import iTasks import iTasks.Extensions.DateTime :: ToDo = {description :: String, date :: Date}/*\label{lst:todo_dt}*/ derive class iTask ToDo/*\label{lst:todo_derive}*/ todos :: SimpleSDSLens [ToDo] todos = sharedStore "todos" []/*\label{lst:todo_sds}*/ toDoTask :: Task [ToDo] toDoTask = upToDos/*\label{lst:todo_update}*/ -|| viewSharedInformation [ViewAs length] todos <<@ Label "Length"/*\label{lst:todo_length}*/ upToDos :: Task [ToDo] upToDos = updateSharedInformation [] todos <<@ Title "My todo-list"/*\label{lst:todo_ui}\label{lst:todo_editor}*/ >>* [ OnAction (Action "Sort") (hasValue \_->upd sort todos >-| upToDos)/*\label{lst:todo_contfro}*/ , OnAction (Action "Clear") (always (set [] todos >-| upToDos)) , OnAction (Action "Quit") (always (get todos))/*\label{lst:todo_contto}*/ ] where sort list = sortBy (\x y->x.ToDo.date < y.ToDo.date) list Start w = doTasks toDoTask w