void (final MouseEvent e) { myLastMousePosition = e.getPoint(); if (myCurrentProcessor != null && myCurrentProcessor.isDragActive()) { return; } // Here is a good place to handle right and wheel mouse clicking. All mouse // motion events should go further if (e.isPopupTrigger()) { RadComponent component = FormEditingUtil.getRadComponentAt(myEditor.getRootContainer(), e.getX(), e.getY()); if (component != null && !component.isSelected()) { FormEditingUtil.selectSingleComponent(myEditor, component); } final ActionManager actionManager = ActionManager.getInstance(); final ActionPopupMenu popupMenu = actionManager.createActionPopupMenu( ActionPlaces.GUI_DESIGNER_EDITOR_POPUP, (ActionGroup)actionManager.getAction(IdeActions.GROUP_GUI_DESIGNER_EDITOR_POPUP) ); popupMenu.getComponent().show(e.getComponent(), e.getX(), e.getY()); return; } final int id = e.getID(); if( (MouseEvent.BUTTON2 == e.getButton() || MouseEvent.BUTTON3 == e.getButton()) && ( MouseEvent.MOUSE_PRESSED == id || MouseEvent.MOUSE_RELEASED == id || MouseEvent.MOUSE_CLICKED == id ) ){ return; } // Handle all left mouse events and all motion events final RadComponent componentAt = FormEditingUtil.getRadComponentAt(myEditor.getRootContainer(), e.getX(), e.getY()); if (componentAt != null) { final Point p1 = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), componentAt.getDelegee()); final Component deepestComponentAt = SwingUtilities.getDeepestComponentAt(componentAt.getDelegee(), p1.x, p1.y); final Point p2 = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), deepestComponentAt); EventProcessor processor = componentAt.getEventProcessor(e); if (processor != null) { myCurrentProcessor = processor; } else { final Component source = deepestComponentAt != null ? deepestComponentAt : componentAt.getDelegee(); componentAt.processMouseEvent(new MouseEvent(source, id, e.getWhen(), e.getModifiers(), p2.x, p2.y, e.getClickCount(), e.isPopupTrigger(), e.getButton() )); } } Cursor cursor = Cursor.getDefaultCursor(); if(id==MouseEvent.MOUSE_MOVED){ if (PaletteToolWindowManager.getInstance(myEditor).getActiveItem(ComponentItem.class) != null) { if (myInsertFeedbackEnabled) { cursor = myInsertComponentProcessor.processMouseMoveEvent(e); } } else if (myCurrentProcessor != null) { myCurrentProcessor.processMouseEvent(e); } else { final RadComponent component = FormEditingUtil.getRadComponentAt(myEditor.getRootContainer(), e.getX(), e.getY()); if (component != null) { final Point point = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), component.getDelegee()); final int resizeMask = Painter.getResizeMask(component, point.x, point.y); if (resizeMask != 0) { cursor = Cursor.getPredefinedCursor(Painter.getResizeCursor(resizeMask)); } updateDragger(e); } } } else if (id == MouseEvent.MOUSE_PRESSED) { processMousePressed(e); } else if (id == MouseEvent.MOUSE_RELEASED) { // not every press sets processor so its not a redundant 'if' if (myCurrentProcessor != null) { myCurrentProcessor.processMouseEvent(e); myCurrentProcessor = null; } } else if(id == MouseEvent.MOUSE_CLICKED){ processMouseClicked(e); } else if (id == MouseEvent.MOUSE_EXITED) { myEditor.getActiveDecorationLayer().removeFeedback(); } if (!e.isConsumed() && myCurrentProcessor != null) { myCurrentProcessor.processMouseEvent(e); } if (myCurrentProcessor != null && myCurrentProcessor.isDragActive()) { myEditor.getLayeredPane().setCursor(null); } else { if(myCurrentProcessor!=null && myCurrentProcessor.getCursor()!=null){ cursor=myCurrentProcessor.getCursor(); } myEditor.getLayeredPane().setCursor(cursor); } }