Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JGraphX-仅自动布局边_Jgraphx_Jgraph - Fatal编程技术网

JGraphX-仅自动布局边

JGraphX-仅自动布局边,jgraphx,jgraph,Jgraphx,Jgraph,我是否可以只在图形边上运行自动布局? 我有很多固定的顶点,我不想移动/重新排列,但我想固定重叠单元格/顶点的边。 有什么方法可以做到这一点吗?布局,即mxIGraphLayout实现,只涉及可见单元格,它们通过mxGraph对象API访问这些单元格。因此,正确的解决方案是根据需要将mxGraph子类化,并重写isCellVisible(对象单元格)方法。这样,您就可以创建图形的备用视图 当然,您也可以更改模型中的实际单元格可见性(graph.getModel().setVisible(cell,

我是否可以只在图形边上运行自动布局? 我有很多固定的顶点,我不想移动/重新排列,但我想固定重叠单元格/顶点的边。
有什么方法可以做到这一点吗?

布局,即
mxIGraphLayout
实现,只涉及可见单元格,它们通过
mxGraph
对象API访问这些单元格。因此,正确的解决方案是根据需要将
mxGraph
子类化,并重写
isCellVisible(对象单元格)
方法。这样,您就可以创建图形的备用视图

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

或者,您可以对布局类本身进行子类化,并重写以下方法:

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;
}