mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
XDebugger: close evaluate dialog when session stops
(cherry-picked from f39d90e)
This commit is contained in:
+21
@@ -23,6 +23,7 @@ import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XDebugSessionAdapter;
|
||||
import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.evaluation.EvaluationMode;
|
||||
@@ -54,6 +55,7 @@ public class XDebuggerEvaluationDialog extends DialogWrapper {
|
||||
private EvaluationMode myMode;
|
||||
private final XSourcePosition mySourcePosition;
|
||||
private final SwitchModeAction mySwitchModeAction;
|
||||
private final XDebugSessionAdapter mySessionListener;
|
||||
|
||||
public XDebuggerEvaluationDialog(@NotNull XDebugSession session,
|
||||
final @NotNull XDebuggerEditorsProvider editorsProvider,
|
||||
@@ -68,6 +70,19 @@ public class XDebuggerEvaluationDialog extends DialogWrapper {
|
||||
setOKButtonText(XDebuggerBundle.message("xdebugger.button.evaluate"));
|
||||
setCancelButtonText(XDebuggerBundle.message("xdebugger.evaluate.dialog.close"));
|
||||
|
||||
mySessionListener = new XDebugSessionAdapter() {
|
||||
@Override
|
||||
public void sessionStopped() {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
close(CANCEL_EXIT_CODE);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
mySession.addSessionListener(mySessionListener);
|
||||
|
||||
myTreePanel = new XDebuggerTreePanel(session, editorsProvider, myDisposable, sourcePosition, XDebuggerActions.EVALUATE_DIALOG_TREE_POPUP_GROUP);
|
||||
myResultPanel = new JPanel(new BorderLayout());
|
||||
myResultPanel.add(new JLabel(XDebuggerBundle.message("xdebugger.evaluate.label.result")), BorderLayout.NORTH);
|
||||
@@ -101,6 +116,12 @@ public class XDebuggerEvaluationDialog extends DialogWrapper {
|
||||
init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispose() {
|
||||
mySession.removeSessionListener(mySessionListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
protected void doOKAction() {
|
||||
evaluate();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user