import com.intellij.ide.actions.CloseTabToolbarAction;
import com.intellij.openapi.actionSystem.*;
import com.intellij.ui.content.*;
+import com.intellij.util.ContentsUtil;
import org.jetbrains.annotations.NonNls;
import javax.swing.*;
if (myContentManager != null) {
Content content = myContentManager.getContent(PanelWithActionsAndCloseButton.this);
if (content != null) {
+ ContentsUtil.closeContentTab(myContentManager, content);
if (content instanceof TabbedContent && ((TabbedContent)content).getTabs().size() > 1) {
final TabbedContent tabbedContent = (TabbedContent)content;
final JComponent component = content.getComponent();
*/
package com.intellij.util;
+import com.intellij.openapi.Disposable;
+import com.intellij.openapi.util.Disposer;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
+import com.intellij.ui.content.TabbedContent;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
public class ContentsUtil {
+ protected static final String DISPOSABLE_KEY = "TabContentDisposable";
+
public static void addOrReplaceContent(ContentManager manager, Content content, boolean select) {
final String contentName = content.getDisplayName();
manager.setSelectedContent(content);
}
}
+
+ public static void closeContentTab(@NotNull ContentManager contentManager, @NotNull Content content) {
+ if (content instanceof TabbedContent) {
+ TabbedContent tabbedContent = (TabbedContent)content;
+ if (tabbedContent.getTabs().size() > 1) {
+ JComponent component = tabbedContent.getComponent();
+ tabbedContent.removeContent(component);
+ contentManager.setSelectedContent(tabbedContent, true, true);
+ dispose(component);
+ return;
+ }
+ }
+ contentManager.removeContent(content, true);
+ }
+
+ private static void dispose(@NotNull JComponent component) {
+ Object disposable = component.getClientProperty(DISPOSABLE_KEY);
+ if (disposable instanceof Disposable) {
+ Disposer.dispose((Disposable)disposable);
+ }
+ }
}
* @author Konstantin Bulenkov
*/
public class ContentUtilEx extends ContentsUtil {
- public static final String DISPOSABLE_KEY = "TabContentDisposable";
public static void addTabbedContent(ContentManager manager, JComponent contentComponent, String groupPrefix, String tabName, boolean select) {
addTabbedContent(manager, contentComponent, groupPrefix, tabName, select, null);
groupPrefix.equals(content.getUserData(Content.TAB_GROUP_NAME_KEY));
}
- public static void closeContentTab(@NotNull ContentManager contentManager, @NotNull Content content) {
- if (content instanceof TabbedContent) {
- TabbedContent tabbedContent = (TabbedContent)content;
- if (tabbedContent.getTabs().size() > 1) {
- JComponent component = tabbedContent.getComponent();
- tabbedContent.removeContent(component);
- contentManager.setSelectedContent(tabbedContent, true, true);
- dispose(component);
- return;
- }
- }
- contentManager.removeContent(content, true);
- }
-
- private static void dispose(@NotNull JComponent component) {
- Object disposable = component.getClientProperty(DISPOSABLE_KEY);
- if (disposable != null && disposable instanceof Disposable) {
- Disposer.dispose((Disposable)disposable);
- }
- }
-
@NotNull
public static String getFullName(@NotNull String groupPrefix, @NotNull String tabName) {
return getFullPrefix(groupPrefix) + tabName;
import com.intellij.ui.content.TabbedContent;
import com.intellij.ui.content.impl.ContentManagerImpl;
import com.intellij.util.ContentUtilEx;
+import com.intellij.util.ContentsUtil;
import com.intellij.util.NotNullFunction;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.messages.MessageBusConnection;
for (Content content: toolWindow.getContentManager().getContents()) {
if (ContentUtilEx.isContentTab(content, TAB_NAME)) {
- ContentUtilEx.closeContentTab(toolWindow.getContentManager(), content);
+ ContentsUtil.closeContentTab(toolWindow.getContentManager(), content);
}
}
}
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
import com.intellij.util.ContentUtilEx;
+import com.intellij.util.ContentsUtil;
import com.intellij.vcs.log.impl.VcsLogContentProvider;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
if (contentManager == null) return;
Content selectedContent = getTabbedContent(contentManager);
if (selectedContent != null) {
- ContentUtilEx.closeContentTab(contentManager, selectedContent);
+ ContentsUtil.closeContentTab(contentManager, selectedContent);
}
}