EditorEx: permanent header API

This commit is contained in:
Gregory.Shrago
2013-08-23 19:56:42 +04:00
parent 311dce86b8
commit 16a5e32396
3 changed files with 27 additions and 3 deletions
@@ -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() {
@@ -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);
@@ -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;