List of usage examples for com.intellij.openapi.fileEditor FileEditorManager addFileEditorManagerListener
@Deprecated public abstract void addFileEditorManagerListener(@NotNull FileEditorManagerListener listener, @NotNull Disposable parentDisposable);
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);
}