删除顶点上的顶点,在它们之间创建边

时间:2018-03-19 13:53:23

标签: jgraphx

我正在试图弄清楚如何实现上述功能?即如果我的图形中已经有一个顶点,并且我从我的调色板中拖动了另一个顶点(我从Java BasicGraphEditor示例中导出了我的应用程序),我想自动创建从放置目标到放置单元格的边缘

当前实现创建了一个我不想要的组。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,这似乎是上述问题的解决方案。

扩展mxGraphComponent,并实现以下方法:

        public Object[] importCells(Object[] cells, double dx, double dy, Object target, Point location) {
        if (target == null && cells.length == 1 && location != null) {
            target = getCellAt(location.x, location.y);

            if (target instanceof mxICell && cells[0] instanceof mxICell) {
                mxICell targetCell = (mxICell) target;
                mxICell dropCell = (mxICell) cells[0];

                if (targetCell.isVertex() == dropCell.isVertex()) {
                    // make target null, otherwise we create a group
                    cells = super.importCells(cells, dx, dy, null, location);

                    Object parent = graph.getModel().getParent(target);
                    // we cloned it, so update the reference
                    dropCell = (mxICell) cells[0];
                    graph.insertEdge(parent, null, "", target, dropCell);

                    graph.setSelectionCell(dropCell);

                    return null;
                }
            }
        }

        return super.importCells(cells, dx, dy, target, location);
    }