/** * Hook method which can be overriden by subclasses to provide * specialised behaviour in the event of a popup trigger. */ protected void handlePopupMenu(MouseEvent evt) { Point p = new Point(evt.getX(), evt.getY()); Figure figure = getView().findFigure(p); if (figure != null || drawingActions.size() > 0) { showPopupMenu(figure, p, evt.getComponent()); } else { popupMenu = null; } }
/** * Hook method which can be overriden by subclasses to provide * specialised behaviour in the event of a multi-click. */ protected void handleMultiClick(MouseEvent evt) { if (DEBUG) { System.out.println("DelegationSelectionTool.handleMultiClick " + evt); } DrawingView v = getView(); Point pos = new Point(evt.getX(), evt.getY()); Handle handle = v.findHandle(pos); if (handle == null) { v.setHandleDetailLevel(v.getHandleDetailLevel() + 1); } }
/** * MouseListener method for mousePressed events. If the popup trigger has * been activated, then the appropriate hook method is called. */ @Override public void mousePressed(final MouseEvent evt) { if (popupTimer != null) { popupTimer.stop(); popupTimer = null; } // XXX - When we want to support multiple views, we have to // implement this: //setView((DrawingView)e.getSource()); isMousePressedPopupTrigger = evt.isPopupTrigger(); if (isMousePressedPopupTrigger) { getView().requestFocus(); handlePopupMenu(evt); } else { super.mousePressed(evt); popupTimer = new javax.swing.Timer(1000, new ActionListener() { @Override public void actionPerformed(ActionEvent aevt) { handlePopupMenu(evt); popupTimer = null; } }); popupTimer.setRepeats(false); popupTimer.start(); } }
System.out.println("DelegationSelectionTool.handleDoubleClick " + evt); DrawingView v = getView(); Point pos = new Point(evt.getX(), evt.getY()); Handle handle = v.findHandle(pos); figureTool.mousePressed(evt); } else { if (outerFigure.handleMouseClick(p, evt, getView())) { v.clearSelection(); v.addToSelection(outerFigure);