GoJS 中的拖动与 link 模式

Drag vs link modes in GoJS

是否可以在 GoJS 中显式地在拖动和链接模式之间切换?我正在尝试实现与其他图表编辑器类似的行为:

  1. 在图表外的工具栏中有 2 个按钮:一个 Link 和一个手。
  2. 单击 Link 按钮将图表切换到链接模式。单击任何节点的任何部分都会在该节点上启动 LinkingTool,以便它可以链接到另一个节点。节点拖动已禁用。
  3. 单击“手形”按钮会将图表切换到拖动模式。现在鼠标点击任何节点都会启动 DraggingTool、ResizingTool 等,除了 LinkingTool.

我相信我见过这样的例子,但经过几个小时的搜索现在找不到它。在 JavaScript 中将 diagram.toolManager.xxxTool.enabled 设置为“false”的尝试似乎对工具激活行为没有任何影响。

我怀疑你的问题只是一个打字错误,属性 是 isEnabled,而不是 enabled

为了完整起见:首先您必须在您的节点或端口上设置 fromLinkable: true, toLinkable:true(或至少一个)以启用链接工具。然后您可以通过您的按钮有条件地禁用该工具:

myDiagram.toolManager.linkingTool.isEnabled = false; // false to drag, true to link

您实际上可以在控制台中编写该行,并在 Basic

这样的示例中实时查看它