JGraphX - 仅自动布局边缘

4

有没有办法仅对图边运行自动布局?我有很多固定的顶点不想移动/重新排列,但我希望固定与我的单元格/顶点重叠的边。有没有办法实现这一点?

1个回答

0

布局,即mxIGraphLayout实现,只涉及可见单元格,并通过mxGraph对象API访问这些单元格。因此,正确的解决方案是子类化mxGraph并根据您的需求覆盖isCellVisible(Object cell)方法。这样,您将创建一个图形的备选视图。

当然,您也可以在模型中更改实际单元格的可见性(graph.getModel().setVisible(cell, false)),并在布局执行后恢复它。但那似乎像是一个hack。

或者,您可以子类化布局类本身并覆盖这些方法:

public boolean isVertexMovable(Object vertex)
{
    return graph.isCellMovable(vertex);
}

public boolean isVertexIgnored(Object vertex)
{
    return !graph.getModel().isVertex(vertex)
            || !graph.isCellVisible(vertex);
}

public boolean isEdgeIgnored(Object edge)
{
    mxIGraphModel model = graph.getModel();

    return !model.isEdge(edge) || !graph.isCellVisible(edge)
            || model.getTerminal(edge, true) == null
            || model.getTerminal(edge, false) == null;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接