Используя jGraphx, я смог построить простую диаграмму, отражающую архитектуру программы. Этот граф будет доступен только для чтения, т. е. пользователь может изменять положение вершин, но больше ничего (кстати, я установил для редактируемых ячеек и соединяемых ребер значение false, но по-прежнему можно рисовать соединения (?) ).
Вопрос в том, что я хочу иметь возможность отображать контекстное меню, когда пользователь нажимает на вершины. Как я могу это сделать? Мой код более или менее выглядит следующим образом:
mxGraph graph = new mxGraph();
graph.getModel().beginUpdate();
...
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
inheritanceConnections.add( obj );
boxes.put( obj.getPath(), box );
...
// Draw inheritance vertexes
for(ObjectBag obj: inheritanceConnections) {
graph.insertEdge( parent, null, "", boxes.get( obj.getPath() ), boxes.get( obj.getParentObject().getPath() ) );
}
graph.getModel().endUpdate()
По сути, сначала рисуются все объекты, а затем устанавливаются связи между ними (будучи родительским объектом другого объекта).
Я хотел бы иметь возможность сделать что-то вроде:
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
box.addMouseListener( new MouseListener....
Спасибо.