mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
xdebugger: allow to show additional actions in debug tool window
This commit is contained in:
@@ -21,6 +21,7 @@ import com.intellij.execution.filters.TextConsoleBuilderFactory;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.ui.RunnerLayoutUi;
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpointHandler;
|
||||
import com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider;
|
||||
import com.intellij.xdebugger.stepping.XSmartStepIntoHandler;
|
||||
@@ -158,6 +159,12 @@ public abstract class XDebugProcess {
|
||||
public void registerAdditionalContent(@NotNull RunnerLayoutUi ui) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method to provide additional actions in 'Debug' tool window
|
||||
*/
|
||||
public void registerAdditionalActions(@NotNull DefaultActionGroup leftToolbar, @NotNull DefaultActionGroup topToolbar) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return message to show in Variables View when debugger isn't paused
|
||||
*/
|
||||
|
||||
@@ -71,9 +71,6 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
|
||||
myUi = RunnerLayoutUi.Factory.getInstance(project).create("Debug", "unknown!", sessionName, this);
|
||||
myUi.getDefaults().initTabDefaults(0, "Debug", null);
|
||||
|
||||
ActionGroup topToolbar = getActionGroup(XDebuggerActions.TOOL_WINDOW_TOP_TOOLBAR_GROUP);
|
||||
myUi.getOptions().setTopToolbar(topToolbar, ActionPlaces.DEBUGGER_TOOLBAR);
|
||||
}
|
||||
|
||||
private static ActionGroup getActionGroup(final String id) {
|
||||
@@ -181,31 +178,35 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
return myRunContentDescriptor;
|
||||
}
|
||||
|
||||
DefaultActionGroup group = new DefaultActionGroup();
|
||||
DefaultActionGroup leftToolbar = new DefaultActionGroup();
|
||||
final Executor executor = DefaultDebugExecutor.getDebugExecutorInstance();
|
||||
if (runner != null && environment != null) {
|
||||
RestartAction restartAction = new RestartAction(executor, runner, myRunContentDescriptor.getProcessHandler(), XDebuggerUIConstants.DEBUG_AGAIN_ICON,
|
||||
myRunContentDescriptor, environment);
|
||||
group.add(restartAction);
|
||||
leftToolbar.add(restartAction);
|
||||
restartAction.registerShortcut(myUi.getComponent());
|
||||
}
|
||||
|
||||
final ActionGroup leftToolbar = getActionGroup(XDebuggerActions.TOOL_WINDOW_LEFT_TOOLBAR_GROUP);
|
||||
group.add(leftToolbar);
|
||||
leftToolbar.addAll(getActionGroup(XDebuggerActions.TOOL_WINDOW_LEFT_TOOLBAR_GROUP));
|
||||
|
||||
//group.addSeparator();
|
||||
//addAction(group, DebuggerActions.EXPORT_THREADS);
|
||||
group.addSeparator();
|
||||
leftToolbar.addSeparator();
|
||||
|
||||
group.add(myUi.getOptions().getLayoutActions());
|
||||
leftToolbar.add(myUi.getOptions().getLayoutActions());
|
||||
|
||||
group.addSeparator();
|
||||
leftToolbar.addSeparator();
|
||||
|
||||
group.add(PinToolwindowTabAction.getPinAction());
|
||||
group.add(new CloseAction(executor, myRunContentDescriptor, getProject()));
|
||||
group.add(new ContextHelpAction(executor.getHelpId()));
|
||||
leftToolbar.add(PinToolwindowTabAction.getPinAction());
|
||||
leftToolbar.add(new CloseAction(executor, myRunContentDescriptor, getProject()));
|
||||
leftToolbar.add(new ContextHelpAction(executor.getHelpId()));
|
||||
|
||||
myUi.getOptions().setLeftToolbar(group, ActionPlaces.DEBUGGER_TOOLBAR);
|
||||
DefaultActionGroup topToolbar = new DefaultActionGroup();
|
||||
topToolbar.addAll(getActionGroup(XDebuggerActions.TOOL_WINDOW_TOP_TOOLBAR_GROUP));
|
||||
|
||||
session.getDebugProcess().registerAdditionalActions(leftToolbar, topToolbar);
|
||||
myUi.getOptions().setLeftToolbar(leftToolbar, ActionPlaces.DEBUGGER_TOOLBAR);
|
||||
myUi.getOptions().setTopToolbar(topToolbar, ActionPlaces.DEBUGGER_TOOLBAR);
|
||||
|
||||
if (environment != null) {
|
||||
final RunProfile runConfiguration = environment.getRunProfile();
|
||||
@@ -218,11 +219,6 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
return myRunContentDescriptor;
|
||||
}
|
||||
|
||||
private static void addActionToGroup(final DefaultActionGroup group, final String actionId) {
|
||||
AnAction action = ActionManager.getInstance().getAction(actionId);
|
||||
if (action != null) group.add(action);
|
||||
}
|
||||
|
||||
public RunnerLayoutUi getUi() {
|
||||
return myUi;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user