基本操作
基本操作
  操作模式
    常规模式
      只在该模式允许的操作：节点操作
      该模式下不能点击文本操作的相关按钮
    拖动模式
      只在该模式允许的操作：画布导航
      该模式下不能编辑文本内容
        输入序列
          检查点
        单击节点文本，按字母等键（中/英文输入法）
          没有光标，没有内容输入，无报错
        双击节点文本，按字母等键（中/英文输入法）
          没有光标，没有内容输入，无报错
      该模式下不能点击文本操作的相关按钮
    文本编辑模式
      只在该模式允许的操作：文本操作
    模式切换
      常规模式 <------->文本编辑模式
        常规模式 ---->文本编辑模式
          输入序列
            检查点
          个选中的节点上点击文字区域
            光标定在点击的位置上
          任意节点上双击文字区域
            文本被选中
          创建了新节点
            新节点文本被选中
          有唯一选中的节点，按下字母和数字的按键
            文字变为刚输入的字母或数字，或是弹出输入法框
        文本编辑模式 ---->常规模式
          输入序列
            检查点
          按 Tab 和 Enter
          点击非文本区域的任何位置
      常规模式 <------->拖动模式
        常规模式 ---->拖动模式
          按 Space 或点击 UI 上的拖动图标
        拖动模式 ---->常规模式
          按 Space 或点击 UI 上的拖动图标
  节点操作
    选择
      鼠标选择
        输入序列
          检查点
        击任意未被选中的节点
          选中
        点击空白处
          取消节点的选择
        按着 Shift 键
          点击的节点会切换选择状态
        选框
          框选到的节点全部选中
      方向键选择
        当前没有节点被选中
          选中根节点
        当前有唯一选中的节点
          指定方向区域的最近的节点
        有多个选择的节点
          以选择顺序第一个节点为参照，导航至其指定方向区域的最近的节点
          这个还没做
        指定方向没有节点
          选区保持不变
    新建
      目标节点
        有唯一选中的节点，其为目标节点
        有多个选中的节点，则首个（时间上）被选中的节点为目标节点
      如果存在目标节点
        键盘操作
          支持的按键
            tab/enter
          操作
            输入序列
              检查点
            Tab
              创建一个目标节点的子节点，并且新节点在唯一选中状态，模式变为文本编辑模式
            Enter（目标节点不是根节点）
              创建一个目标节点的兄弟节点（紧邻的位置上），并且新节点在唯一选中，模式变为文本编辑模式
        按钮操作
          创建子节点的 UI 是可用的
          如果目标节点是根节点，则创建兄弟节点的 UI 是不可用的，否则是可用的
          操作结果同键盘操作
    删除
      目标节点
        可以一个或多个
        删除节点对根节点不起作用
        选中一个节点删除时，同时删除子节点
      如果存在目标节点
        键盘操作
          支持的按键
            backspace/delete
          操作
            输入序列
              检查点
            选择多个节点，包括根节点，backspace/delete
              删除除根节点以外的目标。删除后默认选中公共根节点
            选择一个节点backspace/delete
              删除目标。删除后默认选中其根节点
            选择带子节点的节点，backspace/delete
              同时删除子节点
        按钮操作
          有选中删除目标，UI可用，否则不可用
          操作结果同键盘操作
    拖放
      输入序列
        检查点
      点击一个节点，拖动
        拖放对象表示为一个拖放图形：item 1
      移动鼠标，到节点的本身/节点的子节点
        拖放目标显示无变化
      移动鼠标，到非子树的节点
        拖放目标会高亮
      释放鼠标
        拖放对象成为拖放目标的子节点
        保持之前拖放目标的选中状态和顺序
      undo/redo
        能正确撤销和重做
      选中多个节点，拖动
        拖放对象表示为一个拖放图形：item n
      释放到目标
        拖放对象成为拖放目标的子节点
        保持之前拖放目标的选中状态和顺序
      undo/redo
        能正确撤销和重做
    缩放
      输入序列
        检查点
      插入新节点
        没有缩放图标
      建立子节点
        出现缩放图标,显示'-'
      在收缩的状态下,添加子节点
        展开时显示正常
      多次点击缩放图标
        子节点收缩,显示'+',展开显示'-'
      删空子节点
        没有缩放图标
      undo/redo
        能正确撤销和重做
  画布操作
    缩放
      输入序列
        检查点
      使用按钮缩放
        响应正确
      缩/放 后,进行选中、输入、改文本样式等文本操作
        响应正确
      缩/放 后,进行新建、删除、拖动、缩放等节点操作
        响应正确
      undo/redo
        能正确撤销和重做
    拖动浏览器窗口
      输入序列
        检查点
      拖动浏览器窗口
        内容布局合理
      点击'缩小'/'放大'按钮,再拖动浏览器窗口
        内容不会随窗口缩放
    导航
      鼠标拖动
      方向键
      滚轮上下移动
  整体操作
    undo/redo
    主题
      切换主题
        内容不变，层级不变，只是展现方式改变
      undo/redo
        能正确撤销和重做
    快捷键
      ctrl + s
        右上角云盘保存按钮依次显示: 正在保存 ->已保存
      ctrl + n
        新建脑图(chrome,ff浏览器会拦截这个事件,不用管了)
      ctrl + shfit +s
        右上角分享按钮显示 '正在分享 ',并弹出分享地址
  文本操作
    内容操作
      输入序列
        检查点
      闭合光标插入/ 框选插入
        定位正确
      输入中英文，删除回退，空格
        输入正确
      回车
        节点编辑完成
      undo/redo
        能正确撤销和重做
    框选操作
      框选选取正确,能删除更改框选范围的内容
    文本样式
      输入序列
        检查点
      闭合/框选节点，
更改加粗/加斜/字体/字号/颜色
        以节点为单位更改
        按钮上反映当前样式
      选中多个节点，更改样式
        所有节点都改变样式
      选中另外一种样式的节点
        按钮上反映当前样式
    插入操作
      标签
        一个节点
          输入序列
            检查点
          选中一个节点，点击标签按钮
            弹出标签选框
          选择一个优先级
            标签插入节点头部
            标签选框里对应的标签背景高亮
          选择另一种优先级
            节点原有优先级更新成新选的，
不会显示两个优先级（完成度同理）
            标签选框里对应的标签背景高亮
          选择一个完成度
            完成度标签排在原有的优先级标签后面
            标签选框里对应的标签背景高亮
          点击现有的高亮的优先级
            优先级标签删除
        多个节点
          输入序列
            检查点
          选中多个节点，插入标签/删除标签
            标签插入节点头部
            标签选框里对应的标签背景高亮
          同时选中没有标签的节点、有不同标签的节点
            标签选框里对应的显示所有包含的标签
          更改标签
            对所有节点生效