Я пытаюсь переопределить меню мыши по умолчанию, добавляя вершины и ребра к графику. Я следовал этому примеру, так как он отлично работает, но я хочу знать, что (интерфейсы мне нужно реализовать, если они есть) или изменения, которые я должен внести, чтобы изменить курсор мыши, а также иметь возможность добавлять вершины/ребра, используя право щелчок вместо левого щелчка:
public class PopupVertexEdgeMenuMousePlugin<V, E> extends AbstractPopupGraphMousePlugin {
private JPopupMenu edgePopup, vertexPopup;
public PopupVertexEdgeMenuMousePlugin() {
this(MouseEvent.BUTTON3);
}
public PopupVertexEdgeMenuMousePlugin(int modifiers) {
super(modifiers);
}
protected void handlePopup(MouseEvent e) {
final VisualizationViewer<V,E> vv =
(VisualizationViewer<V,E>)e.getSource();
Point2D p = e.getPoint();
GraphElementAccessor<V,E> pickSupport = vv.getPickSupport();
if(pickSupport != null) {
final V v = pickSupport.getVertex(vv.getGraphLayout(), p.getX(), p.getY());
if(v != null) {
System.out.println("Vertex " + v + " was right clicked");
updateVertexMenu(v, vv, p);
vertexPopup.show(vv, e.getX(), e.getY());
} else {
final E edge = pickSupport.getEdge(vv.getGraphLayout(), p.getX(), p.getY());
if(edge != null) {
System.out.println("Edge " + edge + " was right clicked");
updateEdgeMenu(edge, vv, p);
edgePopup.show(vv, e.getX(), e.getY());
}
}
}
}
private void updateVertexMenu(V v, VisualizationViewer vv, Point2D point) {
if (vertexPopup == null) return;
Component[] menuComps = vertexPopup.getComponents();
for (Component comp: menuComps) {
if (comp instanceof VertexMenuListener) {
((VertexMenuListener)comp).setVertexAndView(v, vv);
}
if (comp instanceof MenuPointListener) {
((MenuPointListener)comp).setPoint(point);
}
}
}
}
Здесь он добавляет вершину к графу, используя левый щелчок, я хочу добавить эту опцию при щелчке правой кнопкой мыши. А также он добавляет вершину/ребро только в режиме редактирования, как я могу сделать то же самое и в режиме выбора? или можно изменить курсор, сохраняя режим редактирования, чтобы он выглядел как режим выбора?