我正在试图弄清楚如何实现上述功能?即如果我的图形中已经有一个顶点,并且我从我的调色板中拖动了另一个顶点(我从Java BasicGraphEditor示例中导出了我的应用程序),我想自动创建从放置目标到放置单元格的边缘
当前实现创建了一个我不想要的组。
有什么建议吗?
谢谢!
答案 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);
}