Example usage for com.intellij.openapi.editor.event EditorMouseAdapter EditorMouseAdapter

List of usage examples for com.intellij.openapi.editor.event EditorMouseAdapter EditorMouseAdapter

Introduction

In this page you can find the example usage for com.intellij.openapi.editor.event EditorMouseAdapter EditorMouseAdapter.

Prototype

EditorMouseAdapter

Source Link

Usage

From source file:com.intellij.codeInsight.hint.HintManagerImpl.java

License:Apache License

public HintManagerImpl(ActionManagerEx actionManagerEx, ProjectManager projectManager) {
    myEditorManagerListener = new MyEditorManagerListener();

    myAnActionListener = new MyAnActionListener();
    actionManagerEx.addAnActionListener(myAnActionListener);

    myCaretMoveListener = new CaretAdapter() {
        @Override/*from w w  w. ja  v  a  2 s  .co m*/
        public void caretPositionChanged(CaretEvent e) {
            hideHints(HIDE_BY_ANY_KEY, false, false);
        }
    };

    projectManager.addProjectManagerListener(new MyProjectManagerListener());

    myEditorMouseListener = new EditorMouseAdapter() {
        @Override
        public void mousePressed(EditorMouseEvent event) {
            hideAllHints();
        }
    };

    myVisibleAreaListener = new VisibleAreaListener() {
        @Override
        public void visibleAreaChanged(VisibleAreaEvent e) {
            updateScrollableHints(e);
            hideHints(HIDE_BY_SCROLLING, false, false);
        }
    };

    myEditorFocusListener = new FocusAdapter() {
        @Override
        public void focusLost(final FocusEvent e) {
            myHideAlarm.addRequest(new Runnable() {
                @Override
                public void run() {
                    if (!JBPopupFactory.getInstance().isChildPopupFocused(e.getComponent())) {
                        hideAllHints();
                    }
                }
            }, 200);
        }

        @Override
        public void focusGained(FocusEvent e) {
            myHideAlarm.cancelAllRequests();
        }
    };

    myEditorDocumentListener = new DocumentAdapter() {
        @Override
        public void documentChanged(DocumentEvent event) {
            LOG.assertTrue(SwingUtilities.isEventDispatchThread());
            HintInfo[] infos = getHintsStackArray();
            for (HintInfo info : infos) {
                if ((info.flags & HIDE_BY_TEXT_CHANGE) != 0) {
                    if (info.hint.isVisible()) {
                        info.hint.hide();
                    }
                    myHintsStack.remove(info);
                }
            }

            if (myHintsStack.isEmpty()) {
                updateLastEditor(null);
            }
        }
    };
}

From source file:com.intellij.codeInsight.lookup.impl.LookupImpl.java

License:Apache License

private void addListeners() {
    myEditor.getDocument().addDocumentListener(new DocumentAdapter() {
        @Override/*from ww  w.j  a  v  a 2  s  .co m*/
        public void documentChanged(DocumentEvent e) {
            if (!myChangeGuard && !myFinishing) {
                hide();
            }
        }
    }, this);

    final CaretListener caretListener = new CaretAdapter() {
        @Override
        public void caretPositionChanged(CaretEvent e) {
            if (!myChangeGuard && !myFinishing) {
                hide();
            }
        }
    };
    final SelectionListener selectionListener = new SelectionListener() {
        @Override
        public void selectionChanged(final SelectionEvent e) {
            if (!myChangeGuard && !myFinishing) {
                hide();
            }
        }
    };
    final EditorMouseListener mouseListener = new EditorMouseAdapter() {
        @Override
        public void mouseClicked(EditorMouseEvent e) {
            e.consume();
            hide();
        }
    };

    myEditor.getCaretModel().addCaretListener(caretListener);
    myEditor.getSelectionModel().addSelectionListener(selectionListener);
    myEditor.addEditorMouseListener(mouseListener);
    Disposer.register(this, new Disposable() {
        @Override
        public void dispose() {
            myEditor.getCaretModel().removeCaretListener(caretListener);
            myEditor.getSelectionModel().removeSelectionListener(selectionListener);
            myEditor.removeEditorMouseListener(mouseListener);
        }
    });

    JComponent editorComponent = myEditor.getContentComponent();
    if (editorComponent.isShowing()) {
        Disposer.register(this, new UiNotifyConnector(editorComponent, new Activatable() {
            @Override
            public void showNotify() {
            }

            @Override
            public void hideNotify() {
                hideLookup(false);
            }
        }));
    }

    myList.addListSelectionListener(new ListSelectionListener() {
        private LookupElement oldItem = null;

        @Override
        public void valueChanged(@NotNull ListSelectionEvent e) {
            final LookupElement item = getCurrentItem();
            if (oldItem != item && !myList.isEmpty()) { // do not update on temporary model wipe
                fireCurrentItemChanged(item);
                if (myDisposed) { //a listener may have decided to close us, what can we do?
                    return;
                }
                oldItem = item;
            }
        }
    });

    new ClickListener() {
        @Override
        public boolean onClick(@NotNull MouseEvent e, int clickCount) {
            setFocusDegree(FocusDegree.FOCUSED);
            markSelectionTouched();

            if (clickCount == 2) {
                CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
                    @Override
                    public void run() {
                        finishLookup(NORMAL_SELECT_CHAR);
                    }
                }, "", null);
            }
            return true;
        }
    }.installOn(myList);
}

From source file:com.intellij.execution.impl.EditorHyperlinkSupport.java

License:Apache License

public EditorHyperlinkSupport(@NotNull final Editor editor, @NotNull final Project project) {
    myEditor = editor;/*from www  .  jav  a2s .c  om*/
    myProject = project;

    editor.addEditorMouseListener(new EditorMouseAdapter() {
        @Override
        public void mouseClicked(EditorMouseEvent e) {
            final MouseEvent mouseEvent = e.getMouseEvent();
            if (mouseEvent.getButton() == MouseEvent.BUTTON1 && !mouseEvent.isPopupTrigger()) {
                Runnable runnable = getLinkNavigationRunnable(
                        myEditor.xyToLogicalPosition(e.getMouseEvent().getPoint()));
                if (runnable != null) {
                    runnable.run();
                }
            }
        }
    });

    editor.getContentComponent().addMouseMotionListener(new MouseMotionAdapter() {
        public void mouseMoved(final MouseEvent e) {
            final HyperlinkInfo info = getHyperlinkInfoByPoint(e.getPoint());
            if (info != null) {
                myEditor.getContentComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            } else {
                final Cursor cursor = editor instanceof EditorEx
                        ? UIUtil.getTextCursor(((EditorEx) editor).getBackgroundColor())
                        : Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR);
                myEditor.getContentComponent().setCursor(cursor);
            }
        }
    });
}

From source file:com.maddyhome.idea.vim.group.ChangeGroup.java

License:Open Source License

/**
 * Creates the group/*from   ww w. j  ava 2 s  .com*/
 */
public ChangeGroup() {
    // We want to know when a user clicks the mouse somewhere in the editor so we can clear any
    // saved text for the current insert mode.
    final EventFacade eventFacade = EventFacade.getInstance();

    eventFacade.addEditorFactoryListener(new EditorFactoryAdapter() {
        public void editorCreated(@NotNull EditorFactoryEvent event) {
            final Editor editor = event.getEditor();
            eventFacade.addEditorMouseListener(editor, listener);
            EditorData.setChangeGroup(editor, true);
        }

        public void editorReleased(@NotNull EditorFactoryEvent event) {
            final Editor editor = event.getEditor();
            if (EditorData.getChangeGroup(editor)) {
                eventFacade.removeEditorMouseListener(editor, listener);
                EditorData.setChangeGroup(editor, false);
            }
        }

        @NotNull
        private final EditorMouseAdapter listener = new EditorMouseAdapter() {
            public void mouseClicked(@NotNull EditorMouseEvent event) {
                Editor editor = event.getEditor();
                if (!VimPlugin.isEnabled()) {
                    return;
                }

                if (CommandState.inInsertMode(editor)) {
                    clearStrokes(editor);
                }
            }
        };
    }, ApplicationManager.getApplication());
}

From source file:com.ritesh.idea.plugin.ui.diff.CommentsDiffTool.java

License:Apache License

@Override
public void show(DiffRequest request) {
    final FrameWrapper frameWrapper = new FrameWrapper(request.getProject(), request.getGroupKey());
    final DiffPanelImpl diffPanel = createDiffPanelImpl(request, frameWrapper.getFrame(), frameWrapper);
    final Editor editor = diffPanel.getEditor2();
    updateHighLights(editor);/*from   w ww.  ja va  2  s .co m*/

    editor.addEditorMouseListener(new EditorMouseAdapter() {
        @Override
        public void mouseClicked(EditorMouseEvent e) {
            if (e.getArea() != null && e.getArea().equals(EditorMouseEventArea.LINE_MARKERS_AREA)) {
                final Point locationOnScreen = e.getMouseEvent().getLocationOnScreen();
                final int lineNumber = EditorUtil.yPositionToLogicalLine(editor, e.getMouseEvent()) + 1;
                showCommentsView(locationOnScreen, lineNumber, editor);
            }
        }
    });

    DiffUtil.initDiffFrame(request.getProject(), frameWrapper, diffPanel, diffPanel.getComponent());
    frameWrapper.setTitle(request.getWindowTitle());
    frameWrapper.show();
}