package com.intellij.codeInsight.daemon.impl;
+import com.intellij.openapi.Disposable;
+import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.AbstractProjectComponent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.editor.event.EditorFactoryEvent;
import com.intellij.openapi.editor.event.EditorFactoryListener;
-import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.fileEditor.FileEditorManagerAdapter;
import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
+import com.intellij.openapi.fileEditor.FileEditorManagerListener;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.openapi.wm.ex.WindowManagerEx;
import com.intellij.openapi.wm.impl.IdeFrameImpl;
-import com.intellij.openapi.Disposable;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.util.EventDispatcher;
private final WindowManager myWindowManager;
private final EditorFactory myEditorFactory;
- private final FileEditorManager myFileEditorManager;
- @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) private final ToolWindowManager myToolwindowManager;
+
+ @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"})
+ private final ToolWindowManager myToolwindowManager;
private final Map<Window, List<Editor>> myWindowToEditorsMap = new HashMap<Window, List<Editor>>();
private final Map<Window, WindowFocusListener> myWindowToWindowFocusListenerMap = new HashMap<Window, WindowFocusListener>();
//todo:
//toolwindow manager is unfortunately needed since
//it actually initializes frame in WindowManager
- public EditorTracker(Project project, final WindowManager windowManager, final EditorFactory editorFactory,
- final FileEditorManager fileEditorManager, ToolWindowManager toolwindowManager) {
+ public EditorTracker(Project project, final WindowManager windowManager, final EditorFactory editorFactory, ToolWindowManager toolwindowManager) {
super(project);
myWindowManager = windowManager;
myEditorFactory = editorFactory;
- myFileEditorManager = fileEditorManager;
myToolwindowManager = toolwindowManager;
}
public void projectOpened() {
myIdeFrame = ((WindowManagerEx)myWindowManager).getFrame(myProject);
- myFileEditorManager.addFileEditorManagerListener(new FileEditorManagerAdapter() {
+ myProject.getMessageBus().connect(myProject).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerAdapter() {
public void selectionChanged(FileEditorManagerEvent event) {
if (myIdeFrame.getFocusOwner() == null) return;
setActiveWindow(myIdeFrame);
}
- }, myProject);
+ });
myEditorFactoryListener = new MyEditorFactoryListener();
myEditorFactory.addEditorFactoryListener(myEditorFactoryListener);
}
private void editorFocused(Editor editor) {
+ ApplicationManager.getApplication().assertIsDispatchThread();
Window window = myEditorToWindowMap.get(editor);
if (window == null) return;
return window;
}
- @NotNull public List<Editor> getActiveEditors() {
+ @NotNull
+ public List<Editor> getActiveEditors() {
return myActiveEditors;
}