制作确定性图表

时间:2013-07-03 07:52:56

标签: jgraphx

是否可以使图表具有确定性?我的意思是,例如:

如果我添加A顶点然后添加B,图形看起来就像我先添加B然后再添加A.一样。

我目前正在使用mxCompactTreeLayout,但它并不像我想的那样有用。

1 个答案:

答案 0 :(得分:1)

是的,但是,您需要自己创建规则,因为它们可能非常特定于您的用例。我通过继承mxGraphComponent并覆盖mxGraphComponent.ImportCell - 方法从ImportCell调用此逻辑来注入关系,并在必要时重新组织图形。

@Override
public Object[] importCells(Object[] cells, double dx, double dy, Object target, Point location) {
    Object[] importedCells = super.importCells(cells, dx, dy, target, location);

    for (Object cell : importedCells) {
        updateGraphRelationsFor(cell);
    }

    return importedCells;
}

请注意,我使用updateGraphRelationsFor()方法返回的importedCells来调用super.importCells,因为它们将被克隆到此方法中。