summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java57
1 files changed, 32 insertions, 25 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java
index b9e38809faab..c380d38a5db9 100644
--- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java
+++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java
@@ -51,6 +51,7 @@ import com.intellij.util.Alarm;
import com.intellij.util.containers.ArrayListSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
+import gnu.trove.THashSet;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -76,7 +77,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
private static final Key<Object> DUMMY_KEY = Key.create("EditorsSplitters.dummy.key");
- private final static EditorEmptyTextPainter ourPainter = ServiceManager.getService(EditorEmptyTextPainter.class);
+ private static final EditorEmptyTextPainter ourPainter = ServiceManager.getService(EditorEmptyTextPainter.class);
private EditorWindow myCurrentWindow;
final Set<EditorWindow> myWindows = new CopyOnWriteArraySet<EditorWindow>();
@@ -346,22 +347,18 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
return virtualFiles;
}
- @NotNull public FileEditor[] getSelectedEditors() {
- final List<FileEditor> editors = new ArrayList<FileEditor>();
+ @NotNull
+ public FileEditor[] getSelectedEditors() {
+ List<FileEditor> editors = new ArrayList<FileEditor>();
+ Set<EditorWindow> windows = new THashSet<EditorWindow>(myWindows);
final EditorWindow currentWindow = getCurrentWindow();
if (currentWindow != null) {
- final EditorWithProviderComposite composite = currentWindow.getSelectedEditor();
- if (composite != null) {
- editors.add (composite.getSelectedEditor());
- }
+ windows.add(currentWindow);
}
-
- for (final EditorWindow window : myWindows) {
- if (!window.equals(currentWindow)) {
- final EditorWithProviderComposite composite = window.getSelectedEditor();
- if (composite != null) {
- editors.add(composite.getSelectedEditor());
- }
+ for (final EditorWindow window : windows) {
+ final EditorWithProviderComposite composite = window.getSelectedEditor();
+ if (composite != null) {
+ editors.add(composite.getSelectedEditor());
}
}
return editors.toArray(new FileEditor[editors.size()]);
@@ -463,7 +460,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
myCurrentWindow = currentWindow;
}
- public void updateFileBackgroundColor(final VirtualFile file) {
+ public void updateFileBackgroundColor(@NotNull VirtualFile file) {
final EditorWindow[] windows = getWindows();
for (int i = 0; i != windows.length; ++ i) {
windows [i].updateFileBackgroundColor(file);
@@ -614,10 +611,14 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
public void createCurrentWindow() {
LOG.assertTrue(myCurrentWindow == null);
- setCurrentWindow(new EditorWindow(this));
+ setCurrentWindow(createEditorWindow());
add(myCurrentWindow.myPanel, BorderLayout.CENTER);
}
+ protected EditorWindow createEditorWindow() {
+ return new EditorWindow(this);
+ }
+
/**
* sets the window passed as a current ('focused') window among all splitters. All file openings will be done inside this
* current window
@@ -625,7 +626,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
* @param requestFocus whether to request focus to the editor currently selected in this window
*/
public void setCurrentWindow(@Nullable final EditorWindow window, final boolean requestFocus) {
- final EditorWithProviderComposite newEditor = window != null? window.getSelectedEditor() : null;
+ final EditorWithProviderComposite newEditor = window == null ? null : window.getSelectedEditor();
Runnable fireRunnable = new Runnable() {
@Override
@@ -655,7 +656,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
//---------------------------------------------------------
public EditorWithProviderComposite[] getEditorsComposites() {
- final ArrayList<EditorWithProviderComposite> res = new ArrayList<EditorWithProviderComposite>();
+ List<EditorWithProviderComposite> res = new ArrayList<EditorWithProviderComposite>();
for (final EditorWindow myWindow : myWindows) {
final EditorWithProviderComposite[] editors = myWindow.getEditors();
@@ -667,8 +668,8 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
//---------------------------------------------------------
@NotNull
- public List<EditorWithProviderComposite> findEditorComposites(final VirtualFile file) {
- final ArrayList<EditorWithProviderComposite> res = new ArrayList<EditorWithProviderComposite>();
+ public List<EditorWithProviderComposite> findEditorComposites(@NotNull VirtualFile file) {
+ List<EditorWithProviderComposite> res = new ArrayList<EditorWithProviderComposite>();
for (final EditorWindow window : myWindows) {
final EditorWithProviderComposite fileComposite = window.findFileComposite(file);
if (fileComposite != null) {
@@ -680,7 +681,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
@NotNull
public List<EditorWindow> findWindows(final VirtualFile file) {
- final ArrayList<EditorWindow> res = new ArrayList<EditorWindow>();
+ List<EditorWindow> res = new ArrayList<EditorWindow>();
for (final EditorWindow window : myWindows) {
if (window.findFileComposite(file) != null) {
res.add(window);
@@ -694,7 +695,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
}
@NotNull public EditorWindow[] getOrderedWindows() {
- final ArrayList<EditorWindow> res = new ArrayList<EditorWindow>();
+ final List<EditorWindow> res = new ArrayList<EditorWindow>();
// Collector for windows in tree ordering:
class Inner{
@@ -744,6 +745,10 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
return false;
}
+ public boolean isPreview() {
+ return false;
+ }
+
private final class MyFocusWatcher extends FocusWatcher {
@Override
protected void focusedComponentChanged(final Component component, final AWTEvent cause) {
@@ -816,8 +821,10 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
return processFiles(children, context);
}
- protected abstract @Nullable T processFiles(@NotNull List<Element> fileElements, @Nullable T context);
- protected abstract @Nullable T processSplitter(@NotNull Element element, @Nullable Element firstChild, @Nullable Element secondChild, @Nullable T context);
+ @Nullable
+ protected abstract T processFiles(@NotNull List<Element> fileElements, @Nullable T context);
+ @Nullable
+ protected abstract T processSplitter(@NotNull Element element, @Nullable Element firstChild, @Nullable Element secondChild, @Nullable T context);
}
private class UIBuilder extends ConfigTreeReader<JPanel> {
@@ -828,7 +835,7 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
UIUtil.invokeAndWaitIfNeeded(new Runnable() {
@Override
public void run() {
- windowRef.set(context == null ? new EditorWindow(EditorsSplitters.this) : findWindowWith(context));
+ windowRef.set(context == null ? createEditorWindow() : findWindowWith(context));
}
});
final EditorWindow window = windowRef.get();