2

jgraphX でグラフをコピーする際に問題が発生しています。著者によって与えられた例は、デフォルトの親の子を再帰的に複製するようには見えません:

graph2.addCells(graph1.cloneCells(graph1.getChildCells(graph1.getDefaultParent())));

再帰的に複製すると主張する mxGraphModel.cloneCells(vertexList, true) というメソッドがありますが、私にはうまくいかないようです。予期しない動作を追跡したところ、restoreClone から発生しているようです。クローン セルのエッジが復元されません。次の mxGraphModel.java のコードは、この問題を示しています。

    protected void restoreClone(オブジェクト クローン、オブジェクト セル、マップ マッピング)
    {
        if (mxICell のインスタンスのクローン)
        {
            mxICell mxc = (mxICell) クローン;
            オブジェクト ソース = getTerminal(cell, true);

.getTerminal() はエッジを予期しており、それに応じて動作しますが、restoreClone が「セル」を使用する方法は、このインスタンスでは頂点であることを意味します。したがって、端末は null であるため、「ソース」は null になります。これはバグですか?問題は cloneCell() が再帰的であるのに対し、restoreClone は再帰的ではなく、セルの最初のレベルのみを復元することでしょうか?

グラフ全体を一度にコピーする簡単な方法はありますか?

4

0 に答える 0