通过DraggingTool复制GoJS Keep Group of Nodes

时间:2017-05-10 07:59:34

标签: javascript gojs

有没有办法复制包含DraggingTool Part.containingGroup的{​​{1}}节点?我知道CommandHandler有一个属性copiesGroupKey,但我在DraggingTool中找不到任何类似的功能。

如果有办法检测复制的节点被丢弃以设置新的containingGroup,可能会更好吗? 是否有要在删除复制节点时订阅的事件?

我也注意到这里的“游泳车道”样本存在同样的问题 http://gojs.net/latest/samples/swimLanes.html 通过CommandHandler复制节点可以正常工作,但是如果您“控制 - 拖动”它们,它们将被放置在任何组之外,根据该示例,我认为这根本不可能吗?!

1 个答案:

答案 0 :(得分:0)

你的意思是你是(CTRL)拖动组内的节点,你想复制组吗?您必须将组添加到被拖动的集合中。您可以通过覆盖DraggingTool.computeEffectiveCollection来完成此操作。也许是这样的:

  myDiagram.toolManager.draggingTool.computeEffectiveCollection = function (parts) {
    var map = go.DraggingTool.prototype.computeEffectiveCollection.call(this, parts);
    // add more stuff to map
    var it = parts.iterator;
    while (it.next()) {
      var p = it.value;
      if (p.containingGroup !== null) {
        var group = p.containingGroup;
        map.add(group, new go.DraggingInfo(group.location));
      }
    }
    return map;
  }