From d082bd91e28030eec360d9e934a346b784ff105b Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Sun, 16 Nov 2014 22:24:55 +0100 Subject: [PATCH] change component in toolwindow tab on selectTab --- .../ui/content/impl/TabbedContentImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java b/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java index 1a49c32d5113..42811a19a097 100644 --- a/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/content/impl/TabbedContentImpl.java @@ -20,6 +20,7 @@ import com.intellij.ui.content.TabbedContent; import org.jetbrains.annotations.NotNull; import javax.swing.*; +import java.awt.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -39,12 +40,24 @@ public class TabbedContentImpl extends ContentImpl implements TabbedContent { @Override public void addContent(@NotNull JComponent content, @NotNull String name, boolean selectTab) { - myTabs.add(Pair.create(name, content)); - if (selectTab) { + Pair tab = Pair.create(name, content); + if (!myTabs.contains(tab)) { + myTabs.add(tab); + } + if (selectTab && getComponent() != content) { setComponent(content); } } + @Override + public void setComponent(JComponent component) { + Container parent = getComponent().getParent(); + parent.remove(getComponent()); + parent.add(component); + + super.setComponent(component); + } + @Override public void removeContent(@NotNull JComponent content) { Pair toRemove = null;