From 16a5e323965562769e6fc35e94472e6157dc1abe Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 23 Aug 2013 19:44:26 +0400 Subject: [PATCH] EditorEx: permanent header API --- .../intellij/injected/editor/EditorWindow.java | 10 ++++++++++ .../com/intellij/openapi/editor/ex/EditorEx.java | 4 ++++ .../intellij/openapi/editor/impl/EditorImpl.java | 16 +++++++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java index c993b8569fbc..a2ec3ae48238 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java @@ -298,6 +298,16 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return highlighter; } + @Override + public JComponent getPermanentHeaderComponent() { + return myDelegate.getPermanentHeaderComponent(); + } + + @Override + public void setPermanentHeaderComponent(JComponent component) { + myDelegate.setPermanentHeaderComponent(component); + } + @Override @NotNull public JComponent getContentComponent() { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java index 87c4b7fe2875..81f7870073ae 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java @@ -57,6 +57,10 @@ public interface EditorEx extends Editor { EditorHighlighter getHighlighter(); + JComponent getPermanentHeaderComponent(); + + void setPermanentHeaderComponent(JComponent component); + void setHighlighter(@NotNull EditorHighlighter highlighter); void setColorsScheme(@NotNull EditorColorsScheme scheme); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 840fbde65485..1b4d3e7b778b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -1930,7 +1930,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public void setHeaderComponent(JComponent header) { myHeaderPanel.removeAll(); - header = header == null ? getUserData(PERMANENT_HEADER) : header; + header = header == null ? getPermanentHeaderComponent() : header; if (header != null) { myHeaderPanel.add(header); } @@ -1940,13 +1940,23 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public boolean hasHeaderComponent() { - return myHeaderPanel.getComponentCount() > 0; + JComponent header = getHeaderComponent(); + return header != null && header != getPermanentHeaderComponent(); + } + + @Nullable + public JComponent getPermanentHeaderComponent() { + return getUserData(PERMANENT_HEADER); + } + + public void setPermanentHeaderComponent(@Nullable JComponent component) { + putUserData(PERMANENT_HEADER, component); } @Override @Nullable public JComponent getHeaderComponent() { - if (hasHeaderComponent()) { + if (myHeaderPanel.getComponentCount() > 0) { return (JComponent)myHeaderPanel.getComponent(0); } return null;