Example usage for com.intellij.openapi.fileEditor FileEditorManager addFileEditorManagerListener

List of usage examples for com.intellij.openapi.fileEditor FileEditorManager addFileEditorManagerListener

Introduction

In this page you can find the example usage for com.intellij.openapi.fileEditor FileEditorManager addFileEditorManagerListener.

Prototype

@Deprecated
public abstract void addFileEditorManagerListener(@NotNull FileEditorManagerListener listener,
        @NotNull Disposable parentDisposable);

Source Link

Usage

From source file:com.intellij.codeInsight.highlighting.BraceHighlighter.java

License:Apache License

@Override
public void runActivity(final Project project) {
    final EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster();

    CaretListener myCaretListener = new CaretAdapter() {
        @Override/*from w w  w  . j a va  2 s.  c  om*/
        public void caretPositionChanged(CaretEvent e) {
            myAlarm.cancelAllRequests();
            Editor editor = e.getEditor();
            final SelectionModel selectionModel = editor.getSelectionModel();
            // Don't update braces in case of the active selection.
            if (editor.getProject() != project || selectionModel.hasSelection()
                    || selectionModel.hasBlockSelection()) {
                return;
            }

            final Document document = editor.getDocument();
            int line = e.getNewPosition().line;
            if (line < 0 || line >= document.getLineCount()) {
                return;
            }
            updateBraces(editor, myAlarm);
        }
    };
    eventMulticaster.addCaretListener(myCaretListener, project);

    final SelectionListener mySelectionListener = new SelectionListener() {
        @Override
        public void selectionChanged(SelectionEvent e) {
            myAlarm.cancelAllRequests();
            Editor editor = e.getEditor();
            if (editor.getProject() != project) {
                return;
            }

            final TextRange oldRange = e.getOldRange();
            final TextRange newRange = e.getNewRange();
            if (oldRange != null && newRange != null && !(oldRange.isEmpty() ^ newRange.isEmpty())) {
                // Don't perform braces update in case of active/absent selection.
                return;
            }
            updateBraces(editor, myAlarm);
        }
    };
    eventMulticaster.addSelectionListener(mySelectionListener, project);

    DocumentListener documentListener = new DocumentAdapter() {
        @Override
        public void documentChanged(DocumentEvent e) {
            myAlarm.cancelAllRequests();
            Editor[] editors = EditorFactory.getInstance().getEditors(e.getDocument(), project);
            for (Editor editor : editors) {
                updateBraces(editor, myAlarm);
            }
        }
    };
    eventMulticaster.addDocumentListener(documentListener, project);

    final FocusChangeListener myFocusChangeListener = new FocusChangeListener() {
        @Override
        public void focusLost(Editor editor) {
            clearBraces(editor);
        }

        @Override
        public void focusGained(Editor editor) {
            updateBraces(editor, myAlarm);
        }
    };
    ((EditorEventMulticasterEx) eventMulticaster).addFocusChangeListner(myFocusChangeListener, project);

    final FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);

    fileEditorManager.addFileEditorManagerListener(new FileEditorManagerAdapter() {
        @Override
        public void selectionChanged(@NotNull FileEditorManagerEvent e) {
            myAlarm.cancelAllRequests();
        }
    }, project);
}

From source file:com.intellij.ide.todo.CurrentFileTodosPanel.java

License:Apache License

CurrentFileTodosPanel(Project project, TodoPanelSettings settings, Content content) {
    super(project, settings, true, content);
    FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
    VirtualFile[] files = fileEditorManager.getSelectedFiles();
    PsiFile psiFile = files.length == 0 ? null : PsiManager.getInstance(myProject).findFile(files[0]);
    setFile(psiFile);/*from  ww  w  .j av a2 s.com*/
    MyFileEditorManagerListener fileEditorManagerListener = new MyFileEditorManagerListener();
    // It's important to remove this listener. It prevents invocation of setFile method after the tree builder
    // is disposed.
    fileEditorManager.addFileEditorManagerListener(fileEditorManagerListener, this);
}