mxgraph中的自动泳道布局

que*_*en3 7 mxgraph

在mxgraph中有泳道示例,但它不是自动的.所以我把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);
Run Code Online (Sandbox Code Playgroud)

并执行布局:

layout.orientation = mxConstants.DIRECTION_WEST;
layout.resizeParent = true;
layout.execute(parent, [lane1, lane2]);
Run Code Online (Sandbox Code Playgroud)

这是测试页面.

现在,这里有两个问题:

  • 节点没有放在车道内; 似乎车道根本没有受到尊重.如何使布局将节点放入适当的通道?设置车道作为父母似乎是不够的.
  • 我以为WEST会在左边构建图形,但它却是相反的......还有NORTH下降......为什么?

小智 5

远非完美,但不知何故有所改进:

演示

我已经添加:

layout.execute(lane1, [v1,v2,v3,v4]);
layout.execute(lane2, [v5,v6,v7,v8]);
Run Code Online (Sandbox Code Playgroud)

并更改resizeParentfalse,看起来车道受到尊重,但看起来仍然不愉快。

在此处输入图片说明