From 22cb875e2e89dd5af150254365f3883cf27290f6 Mon Sep 17 00:00:00 2001 From: Artem Govorov Date: Mon, 5 Jan 2015 17:01:17 +1000 Subject: [PATCH] Made session nullable for "Inspect" action WEB-14691 --- .../impl/ui/tree/XInspectDialog.java | 40 ++++++++++--------- .../impl/ui/tree/actions/XInspectAction.java | 11 ++--- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XInspectDialog.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XInspectDialog.java index 5de988cf3497..96da394f34dc 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XInspectDialog.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/XInspectDialog.java @@ -49,7 +49,7 @@ public class XInspectDialog extends DialogWrapper { @NotNull String name, @NotNull XValue value, XValueMarkers markers, - @NotNull XDebugSession session, + @Nullable XDebugSession session, boolean rebuildOnSessionEvents) { super(project, false); myRebuildOnSessionEvents = rebuildOnSessionEvents; @@ -58,7 +58,7 @@ public class XInspectDialog extends DialogWrapper { setModal(false); XInstanceEvaluator instanceEvaluator = value.getInstanceEvaluator(); - if (instanceEvaluator != null && myRebuildOnSessionEvents) { + if (instanceEvaluator != null && myRebuildOnSessionEvents && session != null) { Pair initialItem = Pair.create(instanceEvaluator, name); XDebuggerInstanceTreeCreator creator = new XDebuggerInstanceTreeCreator(project, editorsProvider, sourcePosition, markers, session); myDebuggerTreePanel = new DebuggerTreeWithHistoryPanel>(initialItem, creator, project, myDisposable); @@ -69,24 +69,26 @@ public class XInspectDialog extends DialogWrapper { myDebuggerTreePanel = new DebuggerTreeWithHistoryPanel>(initialItem, creator, project, myDisposable); } - session.addSessionListener(new XDebugSessionAdapter() { - @Override - public void sessionPaused() { - if (myRebuildOnSessionEvents) { - myDebuggerTreePanel.rebuild(); - } - } - - @Override - public void sessionStopped() { - DebuggerUIUtil.invokeLater(new Runnable() { - @Override - public void run() { - close(OK_EXIT_CODE); + if (session != null) { + session.addSessionListener(new XDebugSessionAdapter() { + @Override + public void sessionPaused() { + if (myRebuildOnSessionEvents) { + myDebuggerTreePanel.rebuild(); } - }); - } - }, myDisposable); + } + + @Override + public void sessionStopped() { + DebuggerUIUtil.invokeLater(new Runnable() { + @Override + public void run() { + close(OK_EXIT_CODE); + } + }); + } + }, myDisposable); + } init(); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/XInspectAction.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/XInspectAction.java index eb82e5e4a75f..5b0db0fd3ab9 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/XInspectAction.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/XInspectAction.java @@ -16,7 +16,6 @@ package com.intellij.xdebugger.impl.ui.tree.actions; import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.xdebugger.XDebugSession; import com.intellij.xdebugger.XDebuggerManager; import com.intellij.xdebugger.frame.XValue; import com.intellij.xdebugger.impl.ui.tree.XDebuggerTree; @@ -32,11 +31,9 @@ public class XInspectAction extends XDebuggerTreeActionBase { protected void perform(XValueNodeImpl node, @NotNull final String nodeName, AnActionEvent e) { XDebuggerTree tree = node.getTree(); XValue value = node.getValueContainer(); - XDebugSession session = XDebuggerManager.getInstance(tree.getProject()).getCurrentSession(); - if (session != null) { - XInspectDialog dialog = new XInspectDialog(tree.getProject(), tree.getEditorsProvider(), tree.getSourcePosition(), nodeName, value, - tree.getValueMarkers(), session, true); - dialog.show(); - } + XInspectDialog dialog = new XInspectDialog(tree.getProject(), tree.getEditorsProvider(), tree.getSourcePosition(), nodeName, value, + tree.getValueMarkers(), + XDebuggerManager.getInstance(tree.getProject()).getCurrentSession(), true); + dialog.show(); } }