解析第一个子页签的相关逻辑,对应表现

对应逻辑; 其中TodoListInputView是,新增待办事项的输入框; 构造函数中,设定输入框的,设定完成回调OnTodoCreate的具体逻辑,调用数据模型类,对应方法,添加待办事项,保存; 打印对应的Json结构;

输入框对应的逻辑,使用PopupView控件,设定一个分类的,标签枚举; 再设置一个TextAreaView输入框;

添加按钮,创建一个Todo待办事项,设定对应的标签属性,调用OnTodoCreate回调,在上述的TodoListView中,会完善它的具体创建逻辑

单个待办事项,对应表现,是这个

这是它,对应的逻辑; 其中包含,开始和完成的按钮空间,还有CategoryComponent标签分类组件; 构造函数中,完成V1.Todo的数据类赋值,点击开始任务、完成任务 按钮的构建; 其中包含各个对应的时间戳:开始时间、结束时间; 调用数据模型的保存逻辑,刷新页面;

CategoryComponent分类组件,对应逻辑,是一个boxView的显示控件,Data数据类,设定一下颜色就好

继续构建,布局显示控件

使用TreeNode树节点,串联起来,各个UI控件,然后再通过Add2FirstLine方法,加上”process“和”add“两个按钮控件,对应触发的逻辑,分别是 OpenProcessWindow 和 OpenTodoEditor

表现

前者逻辑,是使用 问题&选择 系统,拆分逻辑,跟之前提及的,笔记转待办事项,拆分逻辑,基本一致

点击后的表现

除了添加,待办事项,编辑当前待办事项,也是用 OpenTodoEditor这个接口

表现

点击,包含Category分类,优先级选项,是否修改成 隐藏 待办事项,保存修改

如果隐藏,就会加到这个子页签

显隐,对应按钮的显示样式,触发函数

是否可显现的参数,是hide的布尔取反

这是整体的 待办事项 编辑器 逻辑; 使用PopupView控件,配合数据模型,整体的Model.Categories标签组,新增标签的分类枚举;

总的标签分类汇总,在这个子页签,后面会解析

复习,优先级是Todo数据类里面,这个序列化的枚举

回到Todo界面类,Todo编辑器的优先级调用,和标签分类,使用PopupView控件,同理

保存修改,是根据传参todo是否为空,判断是,编辑已有待办事项,还是新增子待办事项; 如果只是编辑已有的,就修改对应的参数,save就好,如果是添加子待办事项,就需要加到Todo的Children列表;

表现:

子控件的逻辑,包含缩进相关,是在OnRefresh刷新函数实现

刷新函数还会根据,事项状态,控制对应按钮的显隐

还有优先级的文本和颜色,也是在刷新函数,有相关逻辑处理