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

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

Introduction

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

Prototype

public abstract FileEditor @NotNull [] getAllEditors(@NotNull VirtualFile file);

Source Link

Usage

From source file:com.android.tools.idea.tests.gui.framework.fixture.EditorFixture.java

License:Apache License

/**
 * Selects the given tab in the current editor. Used to switch between
 * design mode and editor mode for example.
 *
 * @param tab the tab to switch to/*  w  w  w.  ja va2 s .c  o m*/
 */
public EditorFixture selectEditorTab(@NotNull final Tab tab) {
    String tabName = tab.myTabName;
    execute(new GuiTask() {
        @Override
        protected void executeInEDT() throws Throwable {
            VirtualFile currentFile = getCurrentFile();
            assertNotNull("Can't switch to tab " + tabName + " when no file is open in the editor",
                    currentFile);
            FileEditorManager manager = FileEditorManager.getInstance(myFrame.getProject());
            FileEditor[] editors = manager.getAllEditors(currentFile);
            FileEditor target = null;
            for (FileEditor editor : editors) {
                if (tabName == null || tabName.equals(editor.getName())) {
                    target = editor;
                    break;
                }
            }
            if (target != null) {
                // Have to use reflection
                //FileEditorManagerImpl#setSelectedEditor(final FileEditor editor)
                method("setSelectedEditor").withParameterTypes(FileEditor.class).in(manager).invoke(target);
                return;
            }
            List<String> tabNames = Lists.newArrayList();
            for (FileEditor editor : editors) {
                tabNames.add(editor.getName());
            }
            fail("Could not find editor tab \"" + (tabName != null ? tabName : "<default>")
                    + "\": Available tabs = " + tabNames);
        }
    });
    return this;
}

From source file:com.intellij.execution.console.LanguageConsoleImpl.java

License:Apache License

private void installEditorFactoryListener() {
    FileEditorManagerAdapter fileEditorListener = new FileEditorManagerAdapter() {
        @Override/* w w  w .ja  va2s.c o m*/
        public void fileOpened(@NotNull FileEditorManager source, @NotNull VirtualFile file) {
            if (myConsoleEditor == null || !Comparing.equal(file, myVirtualFile)) {
                return;
            }

            Editor selectedTextEditor = source.getSelectedTextEditor();
            for (FileEditor fileEditor : source.getAllEditors(file)) {
                if (!(fileEditor instanceof TextEditor)) {
                    continue;
                }

                final EditorEx editor = (EditorEx) ((TextEditor) fileEditor).getEditor();
                editor.addFocusListener(myFocusListener);
                if (selectedTextEditor == editor) { // already focused
                    myCurrentEditor = editor;
                }
                EmptyAction.registerActionShortcuts(editor.getComponent(), myConsoleEditor.getComponent());
                editor.getCaretModel().addCaretListener(new CaretAdapter() {
                    @Override
                    public void caretPositionChanged(CaretEvent e) {
                        queueUiUpdate(false);
                    }
                });
            }
            queueUiUpdate(false);
        }

        @Override
        public void fileClosed(@NotNull FileEditorManager source, @NotNull VirtualFile file) {
            if (!Comparing.equal(file, myVirtualFile)) {
                return;
            }
            if (myUiUpdateRunnable != null
                    && !Boolean.TRUE.equals(file.getUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN))) {
                if (myCurrentEditor != null && myCurrentEditor.isDisposed()) {
                    myCurrentEditor = null;
                }
                ApplicationManager.getApplication().runReadAction(myUiUpdateRunnable);
            }
        }
    };
    myProject.getMessageBus().connect(this).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER,
            fileEditorListener);
    FileEditorManager editorManager = FileEditorManager.getInstance(getProject());
    if (editorManager.isFileOpen(myVirtualFile)) {
        fileEditorListener.fileOpened(editorManager, myVirtualFile);
    }
}

From source file:javarepl.plugin.JavaREPLLanguageConsole.java

License:Apache License

private void installEditorFactoryListener() {
    final FileEditorManagerAdapter fileEditorListener = new FileEditorManagerAdapter() {
        @Override//  w  w  w . j  av  a2s . co  m
        public void fileOpened(FileEditorManager source, VirtualFile file) {
            if (!Comparing.equal(file, myVirtualFile) || myConsoleEditor == null)
                return;
            Editor selectedTextEditor = source.getSelectedTextEditor();
            for (FileEditor fileEditor : source.getAllEditors(file)) {
                if (!(fileEditor instanceof TextEditor))
                    continue;
                final EditorEx editor = (EditorEx) ((TextEditor) fileEditor).getEditor();
                editor.addFocusListener(myFocusListener);
                if (selectedTextEditor == editor) { // already focused
                    myCurrentEditor = editor;
                }
                EmptyAction.registerActionShortcuts(editor.getComponent(), myConsoleEditor.getComponent());
                editor.getCaretModel().addCaretListener(new CaretListener() {
                    public void caretPositionChanged(CaretEvent e) {
                        queueUiUpdate(false);
                    }
                });
            }
            queueUiUpdate(false);
        }

        @Override
        public void fileClosed(FileEditorManager source, VirtualFile file) {
            if (!Comparing.equal(file, myVirtualFile))
                return;
            if (myUiUpdateRunnable != null
                    && !Boolean.TRUE.equals(file.getUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN))) {
                if (myCurrentEditor != null && myCurrentEditor.isDisposed())
                    myCurrentEditor = null;
                ApplicationManager.getApplication().runReadAction(myUiUpdateRunnable);
            }
        }
    };
    myProject.getMessageBus().connect(this).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER,
            fileEditorListener);
    FileEditorManager editorManager = FileEditorManager.getInstance(getProject());
    if (editorManager.isFileOpen(myVirtualFile)) {
        fileEditorListener.fileOpened(editorManager, myVirtualFile);
    }
}

From source file:org.intellij.grammar.livePreview.LivePreviewLanguage.java

License:Apache License

@NotNull
public List<Editor> getPreviewEditors(@NotNull Project project) {
    FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
    VirtualFile[] files = fileEditorManager.getOpenFiles();
    if (files.length == 0)
        return Collections.emptyList();
    List<Editor> result = ContainerUtil.newArrayList();
    PsiManager psiManager = PsiManager.getInstance(project);
    for (VirtualFile file : files) {
        PsiFile psiFile = psiManager.findFile(file);
        Language language = psiFile == null ? null : psiFile.getLanguage();
        if (language == this) {
            for (FileEditor editor : fileEditorManager.getAllEditors(file)) {
                if (editor instanceof TextEditor)
                    result.add(((TextEditor) editor).getEditor());
            }/*  ww  w . j  av a 2  s.  c  o m*/
        }
    }
    return result;
}