mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-19020
This commit is contained in:
@@ -123,7 +123,8 @@ public class SliceManager implements PersistentStateComponent<SliceManager.Store
|
||||
final SliceToolwindowSettings sliceToolwindowSettings = SliceToolwindowSettings.getInstance(myProject);
|
||||
final ContentManager contentManager = dataFlowToThis ? myBackContentManager : myForthContentManager;
|
||||
final Content[] myContent = new Content[1];
|
||||
final SlicePanel slicePanel = new SlicePanel(myProject, dataFlowToThis, rootNode, splitByLeafExpressions) {
|
||||
ToolWindow toolWindow = ToolWindowManager.getInstance(myProject).getToolWindow(dataFlowToThis ? BACK_TOOLWINDOW_ID : FORTH_TOOLWINDOW_ID);
|
||||
final SlicePanel slicePanel = new SlicePanel(myProject, dataFlowToThis, rootNode, splitByLeafExpressions, toolWindow) {
|
||||
protected void close() {
|
||||
contentManager.removeContent(myContent[0], true);
|
||||
}
|
||||
@@ -149,7 +150,7 @@ public class SliceManager implements PersistentStateComponent<SliceManager.Store
|
||||
contentManager.addContent(myContent[0]);
|
||||
contentManager.setSelectedContent(myContent[0]);
|
||||
|
||||
ToolWindowManager.getInstance(myProject).getToolWindow(dataFlowToThis ? BACK_TOOLWINDOW_ID : FORTH_TOOLWINDOW_ID).activate(null);
|
||||
toolWindow.activate(null);
|
||||
}
|
||||
|
||||
public static String getElementDescription(String prefix, PsiElement element, String suffix) {
|
||||
|
||||
@@ -26,6 +26,10 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Splitter;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.openapi.wm.ToolWindowAnchor;
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerEx;
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerListener;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.ui.treeStructure.Tree;
|
||||
@@ -75,9 +79,30 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider,
|
||||
private UsagePreviewPanel myUsagePreviewPanel;
|
||||
private final Project myProject;
|
||||
private boolean isDisposed;
|
||||
private final ToolWindow myToolWindow;
|
||||
|
||||
public SlicePanel(Project project, boolean dataFlowToThis, SliceNode rootNode, boolean splitByLeafExpressions) {
|
||||
public SlicePanel(final Project project, boolean dataFlowToThis, SliceNode rootNode, boolean splitByLeafExpressions, final ToolWindow toolWindow) {
|
||||
super(new BorderLayout());
|
||||
myToolWindow = toolWindow;
|
||||
final ToolWindowManagerListener listener = new ToolWindowManagerListener() {
|
||||
ToolWindowAnchor myAnchor = toolWindow.getAnchor();
|
||||
public void toolWindowRegistered(@NotNull String id) {
|
||||
}
|
||||
|
||||
public void stateChanged() {
|
||||
if (toolWindow.getAnchor() != myAnchor) {
|
||||
myAnchor = myToolWindow.getAnchor();
|
||||
layoutPanel();
|
||||
}
|
||||
}
|
||||
};
|
||||
ToolWindowManagerEx.getInstanceEx(project).addToolWindowManagerListener(listener);
|
||||
Disposer.register(this, new Disposable() {
|
||||
public void dispose() {
|
||||
ToolWindowManagerEx.getInstanceEx(project).removeToolWindowManagerListener(listener);
|
||||
}
|
||||
});
|
||||
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
myProject = project;
|
||||
myTree = createTree();
|
||||
@@ -110,7 +135,8 @@ public abstract class SlicePanel extends JPanel implements TypeSafeDataProvider,
|
||||
}
|
||||
removeAll();
|
||||
if (isPreview()) {
|
||||
Splitter splitter = new Splitter(false, UsageViewSettings.getInstance().PREVIEW_USAGES_SPLITTER_PROPORTIONS);
|
||||
boolean vertical = myToolWindow.getAnchor() == ToolWindowAnchor.LEFT || myToolWindow.getAnchor() == ToolWindowAnchor.RIGHT;
|
||||
Splitter splitter = new Splitter(vertical, UsageViewSettings.getInstance().PREVIEW_USAGES_SPLITTER_PROPORTIONS);
|
||||
splitter.setFirstComponent(ScrollPaneFactory.createScrollPane(myTree));
|
||||
myUsagePreviewPanel = new UsagePreviewPanel(myProject);
|
||||
Disposer.register(this, myUsagePreviewPanel);
|
||||
|
||||
+6
-6
@@ -56,7 +56,7 @@ public class ToolWindowHeadlessManagerImpl extends ToolWindowManagerEx {
|
||||
public void notifyByBalloon(@NotNull final String toolWindowId, @NotNull final MessageType type, @NotNull final String htmlBody) {
|
||||
}
|
||||
|
||||
private static final ToolWindow HEADLESS_WINDOW = new ToolWindow(){
|
||||
public static final ToolWindow HEADLESS_WINDOW = new ToolWindow(){
|
||||
public boolean isActive() {
|
||||
return false;
|
||||
}
|
||||
@@ -308,11 +308,11 @@ public class ToolWindowHeadlessManagerImpl extends ToolWindowManagerEx {
|
||||
@Nullable final HyperlinkListener listener) {
|
||||
}
|
||||
|
||||
public void addToolWindowManagerListener(ToolWindowManagerListener l) {
|
||||
public void addToolWindowManagerListener(@NotNull ToolWindowManagerListener l) {
|
||||
|
||||
}
|
||||
|
||||
public void removeToolWindowManagerListener(ToolWindowManagerListener l) {
|
||||
public void removeToolWindowManagerListener(@NotNull ToolWindowManagerListener l) {
|
||||
}
|
||||
|
||||
public String getLastActiveToolWindowId() {
|
||||
@@ -334,16 +334,16 @@ public class ToolWindowHeadlessManagerImpl extends ToolWindowManagerEx {
|
||||
return new DesktopLayout();
|
||||
}
|
||||
|
||||
public void setLayout(DesktopLayout layout) {
|
||||
public void setLayout(@NotNull DesktopLayout layout) {
|
||||
}
|
||||
|
||||
public void clearSideStack() {
|
||||
}
|
||||
|
||||
public void hideToolWindow(final String id, final boolean hideSide) {
|
||||
public void hideToolWindow(@NotNull final String id, final boolean hideSide) {
|
||||
}
|
||||
|
||||
public List<String> getIdsOn(final ToolWindowAnchor anchor) {
|
||||
public List<String> getIdsOn(@NotNull final ToolWindowAnchor anchor) {
|
||||
return new ArrayList<String>();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user