summaryrefslogtreecommitdiff
path: root/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java')
-rw-r--r--platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java62
1 files changed, 24 insertions, 38 deletions
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
index 1a4505f6d85b..881ed56bad3d 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
@@ -20,8 +20,8 @@ import com.intellij.execution.Executor;
import com.intellij.execution.executors.DefaultDebugExecutor;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.runners.RunContentBuilder;
-import com.intellij.execution.ui.ExecutionConsole;
import com.intellij.execution.ui.RunContentDescriptor;
+import com.intellij.execution.ui.RunnerLayoutUi;
import com.intellij.execution.ui.actions.CloseAction;
import com.intellij.execution.ui.layout.PlaceInGrid;
import com.intellij.execution.ui.layout.impl.ViewImpl;
@@ -83,6 +83,11 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
return new XDebugSessionTab(session, icon, environment);
}
+ @NotNull
+ public RunnerLayoutUi getUi() {
+ return myUi;
+ }
+
private XDebugSessionTab(@NotNull XDebugSessionImpl session,
@Nullable Icon icon,
@Nullable ExecutionEnvironment environment) {
@@ -95,7 +100,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
myUi.addContent(createWatchesContent(session), 0, PlaceInGrid.right, false);
for (XDebugView view : myViews) {
- Disposer.register(this, view);
+ Disposer.register(myRunContentDescriptor, view);
}
attachToSession(session);
@@ -115,20 +120,19 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
}
}
}
- }, this);
+ }, myRunContentDescriptor);
rebuildViews();
}
private void setSession(@NotNull XDebugSessionImpl session, @Nullable ExecutionEnvironment environment, @Nullable Icon icon) {
- if (environment != null) {
- setEnvironment(environment);
- }
-
+ myEnvironment = environment;
mySession = session;
mySessionData = session.getSessionData();
myConsole = session.getConsoleView();
myRunContentDescriptor = new RunContentDescriptor(myConsole, session.getDebugProcess().getProcessHandler(), myUi.getComponent(), session.getSessionName(), icon);
+ Disposer.register(myRunContentDescriptor, this);
+ Disposer.register(myProject, myRunContentDescriptor);
}
@Nullable
@@ -180,7 +184,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
@NotNull
private Content createFramesContent() {
- XFramesView framesView = new XFramesView(getProject());
+ XFramesView framesView = new XFramesView(myProject);
myViews.add(framesView);
Content framesContent = myUi.createContent(DebuggerContentInfo.FRAME_CONTENT, framesView.getMainPanel(),
XDebuggerBundle.message("debugger.session.tab.frames.title"), AllIcons.Debugger.Frame, null);
@@ -188,12 +192,8 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
return framesContent;
}
- public ExecutionConsole getConsole() {
- return myConsole;
- }
-
public void rebuildViews() {
- AppUIUtil.invokeLaterIfProjectAlive(getProject(), new Runnable() {
+ AppUIUtil.invokeLaterIfProjectAlive(myProject, new Runnable() {
@Override
public void run() {
for (XDebugView view : myViews) {
@@ -209,7 +209,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
private void attachToSession(@NotNull XDebugSessionImpl session) {
for (XDebugView view : myViews) {
- session.addSessionListener(new XDebugViewSessionListener(view, session), this);
+ session.addSessionListener(new XDebugViewSessionListener(view), myRunContentDescriptor);
}
XDebugTabLayouter layouter = session.getDebugProcess().createTabLayouter();
@@ -225,8 +225,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
DefaultActionGroup leftToolbar = new DefaultActionGroup();
final Executor debugExecutor = DefaultDebugExecutor.getDebugExecutorInstance();
- ExecutionEnvironment environment = getEnvironment();
- if (environment != null) {
+ if (myEnvironment != null) {
leftToolbar.add(ActionManager.getInstance().getAction(IdeActions.ACTION_RERUN));
List<AnAction> additionalRestartActions = session.getRestartActions();
if (!additionalRestartActions.isEmpty()) {
@@ -247,24 +246,12 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
leftToolbar.add(myUi.getOptions().getLayoutActions());
final AnAction[] commonSettings = myUi.getOptions().getSettingsActionsList();
- final AnAction commonSettingsList = myUi.getOptions().getSettingsActions();
-
- final DefaultActionGroup settings = new DefaultActionGroup("DebuggerSettings", commonSettings.length > 0) {
- @Override
- public void update(AnActionEvent e) {
- e.getPresentation().setText(ActionsBundle.message("group.XDebugger.settings.text"));
- e.getPresentation().setIcon(commonSettingsList.getTemplatePresentation().getIcon());
- }
-
- @Override
- public boolean isDumbAware() {
- return true;
- }
- };
- for (AnAction each : commonSettings) {
- settings.add(each);
- }
+ DefaultActionGroup settings = new DefaultActionGroup(ActionsBundle.message("group.XDebugger.settings.text"), true);
+ settings.getTemplatePresentation().setIcon(myUi.getOptions().getSettingsActions().getTemplatePresentation().getIcon());
if (commonSettings.length > 0) {
+ for (AnAction each : commonSettings) {
+ settings.add(each);
+ }
settings.addSeparator();
}
if (!session.getDebugProcess().isValuesCustomSorted()) {
@@ -276,18 +263,18 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
leftToolbar.addSeparator();
leftToolbar.add(PinToolwindowTabAction.getPinAction());
- leftToolbar.add(new CloseAction(environment != null ? environment.getExecutor() : debugExecutor, myRunContentDescriptor, getProject()));
+ leftToolbar.add(new CloseAction(myEnvironment != null ? myEnvironment.getExecutor() : debugExecutor, myRunContentDescriptor, myProject));
leftToolbar.add(new ContextHelpAction(debugExecutor.getHelpId()));
DefaultActionGroup topToolbar = new DefaultActionGroup();
topToolbar.addAll(getCustomizedActionGroup(XDebuggerActions.TOOL_WINDOW_TOP_TOOLBAR_GROUP));
- session.getDebugProcess().registerAdditionalActions(leftToolbar, topToolbar);
+ session.getDebugProcess().registerAdditionalActions(leftToolbar, topToolbar, settings);
myUi.getOptions().setLeftToolbar(leftToolbar, ActionPlaces.DEBUGGER_TOOLBAR);
myUi.getOptions().setTopToolbar(topToolbar, ActionPlaces.DEBUGGER_TOOLBAR);
- if (environment != null) {
- initLogConsoles(environment.getRunProfile(), myRunContentDescriptor.getProcessHandler(), myConsole);
+ if (myEnvironment != null) {
+ initLogConsoles(myEnvironment.getRunProfile(), myRunContentDescriptor, myConsole);
}
}
@@ -296,7 +283,6 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
mySession = null;
}
- @Override
@Nullable
public RunContentDescriptor getRunContentDescriptor() {
return myRunContentDescriptor;