Я пытаюсь выделить фиксированные координаты для вершин, используя статическую разметку. Обычно мы можем получить координату вершины как объект Point2D, используя layout.transform(Vertex);
Теперь я хотел инициализировать макет и установить вершины в указанных местах, но я как-то застрял. Я читаю здесь, на StackOverflow, если я реализую Transformer<Vertex, Point2D>
интерфейс:
Transformer<Vertex, Point2D> locationTransformer =
new Transformer<Vertex, Point2D>() {
@Override
public Point2D transform(Vertex) {
Point2D p2d = //here i calculate the position
return p2D;
}
};
Я пробовал это. На фиксированном графике это работает, но у меня есть редактируемый график, и на нем ничего не происходит. Я ожидал, что если я зафиксировал положение выше, то какой бы узел я ни добавил щелчком мыши, он должен перейти в фиксированное положение независимо от того, где я его положил?
Подскажите, пожалуйста, в чем причина?
Или с редактируемым графиком, он снова где-то переопределяет позицию?
UPDATE:
Если я удалю, например, эти реализации из средства визуализации:
vv.getRenderContext().setVertexFontTransformer(fontTransfoer);
vv.getRenderContext().setVertexFillPaintTransformer(colorTransformer);
vv.getRenderContext().setVertexShapeTransformer(shapeTransformer);
Он начинает работать, но тогда узлы по умолчанию имеют круглую красную форму. Я хочу полностью перерисовать структуру, которую я нарисовал в прошлый раз. Так можно ли что-то сделать с этой проблемой?