Я пытаюсь переопределить меню мыши по умолчанию, добавляя вершины и ребра на график. Я следовал этому примеру, так как он работает нормально, но я хочу знать, что (интерфейсы мне нужно реализовать, если таковые имеются) или изменения, которые я должен сделать, чтобы изменить курсор мыши, а также иметь возможность добавлять вершины / ребра, используя правую щелкните вместо левой кнопки мыши:
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);
}
}
}
}
Здесь, это добавляет вершину к графику, используя левый клик, я хочу добавить эту опцию по правому клику. А также он добавляет vertext / edge только в режиме редактирования, как я могу сделать то же самое в режиме выбора? или, возможно, изменить курсор при сохранении режима редактирования, чтобы он выглядел как режим выбора?