功能

节点树

当节点(可连接实体 ConnectableEntity)和连线组织起来形成一个庞大的网络时,有一些快捷操作

快速创建树结构

(Xmind 式的操作方式)

  1. 广度生长(创建同级节点):选中节点树上的一个节点,按 \ 反斜杠键,会在该节点下创建新的节点,并自动连接当前父节点

    这里没有使用Xmind习惯的Enter键,是因为 project-graph 最早Enter键是用来进入和退出编辑状态的,为了延续这种习惯避免冲突, 广度生长采用了Enter键上方的反斜杠键

    当选中一个孤立的节点时,只能进行深度生长,不能进行广度生长,因为没有父节点

  2. 深度生长(创建子级节点):选中节点树上的一个节点,按 Tab 键,会在该节点右侧创建新的节点,并自动连接当前父节点

    2.2 版本特性:在节点的编辑状态下,按Tab键时,不会输入制表符,而是将输入光标后的所有字符推出,形成新的子级节点的内容。

这两个按键可在设置中自定义修改

在2.2版本之前,连续创建多个子节点,需要不停的交替按 \(广度生长), Enter(退出编辑状态)。不断的退出编辑状态。

在 2.2 版本以后,节点在输入状态也可以进行 \Tab 键的生长,但输入状态下的快捷键是暂时无法自定义更改的。

这导致一个一个问题:如何在编辑时输入制表符和顿号、英文反斜杠?

如果要刻意输入此符号,有三种方法:

  1. 可以先把节点从树形结构中摘出来,再输入,输入好了之后再接入到树中。
  2. 可以把制表符、顿号、英文反斜杠先复制到粘贴板中,然后在输入状态下直接粘贴字符。
  3. 可以创建一个节点连向当前要输入这些符号的节点,使得当前节点有两个父节点,破坏了树形结构,进而广度生长和深度生长的树形操作特性失效, 等输入好之后再右键滑动砍掉刚才创建的连向它的节点即可。

移动树

左键拖拽一个节点,但按住 Ctrl 键可以带动所有子节点拖动整个树(注意只选中根节点)

可以拖动多个子树同时移动:

  1. 先选中多个树的根节点
  2. 按住 Ctrl 键不松手
  3. 左键拖拽任意一个选中的根节点进行移动

特性:如果同时移动多个节点,若选中的节点中存在一个节点时另一个节点的子级节点,那么此节点的移动速度会增加一倍。

利用此特性,我们可以整个选中一个链条结构,然后按 Ctrl 键不松手拖拽根节点,就可以整体伸缩整个链条的长度。

此特性本质是移动速度叠加的 bug。不确定以后是否有机会修复。

实际上直接框选,直接拖拽移动整个树形结构就能完成树的移动。这种移动树主要用于两个场景:

  1. 整个树是自定义布局,使用此方法可以移动树的一部分子树。
  2. 我想移动整个树在舞台上的位置,但树的周围有各种各样的障碍物、遮挡、影响框选效率。

格式化树形结构

在 2.0 之后,出现了连线的端点位置代表生长方向的含义。

如何判断一个节点的生长方向?就看这个节点的父节点连向它的连线的端点位置。

  1. 如果这个连线是右侧发出左侧接收,那么此节点的生长方向向右
  2. 如果这个连线是左侧发出右侧接收,那么此节点的生长方向向左
  3. 如果这个连线是上侧发出下侧接收,那么此节点的生长方向向上
  4. 如果这个连线是下侧发出上侧接收,那么此节点的生长方向向下
  5. 如果连线的端点位置不符合上述四种情况,那么此节点的生长方向默认向右。
  6. 如果此节点就是根节点,没有指向它的父级连线,那么此节点的生长方向默认向右。

可以选中树形结构的任意一个节点,按 Alt+Shift+F 来进行格式化。

交换子节点之间的排列顺序

假设存在一个向右的树,可以拖拽一个子树的根节点,拖拽到同级节点的下方空隙位置中,然后按 Alt+Shift+F 来进行格式化。

格式化会自动调换两个子树的位置。

改变朝向

两种旋转方式

  1. 对准一个节点按住 Ctrl + 鼠标滚轮,会带动整个“子树”转动
  2. 用鼠标拖拽连线,可以转动整个“子树”

翻转方向

  1. 选中根节点
  2. 在工具栏中点击对齐,打开对齐面板
  3. 点击“水平翻转”/“垂直翻转”按钮

2.0+没有工具栏了,需要选中跟节点然后右键菜单中找到“横向反转树形结构”、“纵向反转树形结构”

注意:在 2.0 之后,出现了端点位置代表生长方向的含义,因此可能还需要调整连线的端点位置。

转变成框嵌套结构

框的嵌套形式也可以看成一种树形结构,甚至比树形结构还更加直观,还包含了上下左右等位置信息。

因此当树过于庞大和复杂时,建议使用框的嵌套关系+树形结构结合的方式来整理内容。

  1. 选中根节点
  2. 在工具栏中点击对齐,打开对齐面板
  3. 点击“回”形图标的按钮(2.0+版本需要在右键菜单中点击“品”形图标按钮)

2.1.1特性:当对一个纯文本树结构整体进行 Ctrl+G 打包时,框会自动取标题为当前树形结构的根节点

将树结构导出为 markdown

详见“导出”章节