Я пытаюсь переместить график в JGraphX. Моя первая попытка заключалась в использовании setGeometry, но это также перемещает всю систему координат и ее происхождение. Таким образом, это не вариант для меня, потому что это немного сложно при перемещении нескольких графиков.JGraphX Перемещение ячеек и сохранение границ
Моя вторая попытка с
Object[] ver = graph.getChildVertices(graph.getDefaultParent());
graph.moveCells(ver, 100, 100, false);
движется все клетки. Пока что так хорошо, но края начала и конечные точки меняют свои позиции.
После перемещения клеток:
Перед перемещением клетки, ребра имеют правильное положение.
Так как я могу установить положение краев обратно к нормальному началу и конечным точкам? В качестве альтернативы, я ценю любой другой подход к перемещению ячеек в заданную позицию.
РЕДАКТИРОВАТЬ: Кажется, что это происходит только в случае добавления макета. Без макета движущиеся ячейки работают так, как ожидалось.
mxGraph graph = new mxGraph();
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
try
{
Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
30);
Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
80, 30);
graph.insertEdge(parent, null, "Edge", v1, v2);
}
finally
{
graph.getModel().endUpdate();
}
new mxHierarchicalLayout(graph).execute(graph.getDefaultParent());
graph.getModel().beginUpdate();
try
{
Object[] ver = graph.getChildVertices(graph.getDefaultParent());
graph.moveCells(ver, 100, 100, false);
}
finally
{
graph.getModel().endUpdate();
}
mxGraphComponent graphComponent = new mxGraphComponent(graph);
getContentPane().add(graphComponent);
Из быстрого теста, начиная с примера «HelloWorld», я не смог воспроизвести эту проблему. Не могли бы вы предоставить [MCVE] (http://stackoverflow.com/help/mcve), который показывает, как вы строите график и вызываете функцию 'moveCells', чтобы проблема могла быть воспроизведена? – Marco13
См. Мой обновленный вопрос. Вы правы, если макет не добавлен до того, как это будет хорошо. При добавлении макета перед перемещением ячеек края не располагаются так, как ожидалось. – Marco