mxgraph中有swimlane example,但它不是自动的。因此,我以graphlayout示例作为基础,并进行了一些更改:

  • 始终使用mxSwimlaneLayout
  • 从泳道示例
  • 中获取了泳道单元格样式
  • 创建了两个泳道
  • 将它们用作顶点
  • 的父代

    这是我创建泳道的方法:
    var lane1 = graph.insertVertex(parent, null, 'Lane 1', 0, 0, 1000, 100, 'swimlane');
    var lane2 = graph.insertVertex(parent, null, 'Lane 2', 0, 100, 1000, 100, 'swimlane');
    // use as parent...
    var v1 = graph.insertVertex(lane1, null, 'A', 0, 0, w, h);
    

    并执行布局:
    layout.orientation = mxConstants.DIRECTION_WEST;
    layout.resizeParent = true;
    layout.execute(parent, [lane1, lane2]);
    

    这是test page

    现在,这里有两个问题:
  • 节点未放置在通道内;似乎根本不尊重车道。如何进行布局以将节点放置在适当的车道内?仅仅以 parent 身份行事似乎还不够。
  • 我以为WEST会在左侧建立图表,但事实恰恰相反... NORTH也会下降...为什么?
  • 最佳答案

    远非完美,但有所改进:
    Demo
    我已经添加:

    layout.execute(lane1, [v1,v2,v3,v4]);
    layout.execute(lane2, [v5,v6,v7,v8]);
    
    并将resizeParent更改为false,看起来像尊重车道,但看起来并不令人愉快。
    javascript - MXGraph中的自动泳道布局-LMLPHP

    关于javascript - MXGraph中的自动泳道布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44330233/

    10-13 09:40