mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
variables settings actions reorganized
This commit is contained in:
@@ -137,6 +137,8 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
|
||||
stepping.add(actionManager.getAction(DebuggerActions.POP_FRAME));
|
||||
stepping.addSeparator();
|
||||
stepping.add(actionManager.getAction(DebuggerActions.RUN_TO_CURSOR));
|
||||
stepping.addSeparator();
|
||||
stepping.add(actionManager.getAction(DebuggerActions.EVALUATE_EXPRESSION));
|
||||
myUi.getOptions().setTopToolbar(stepping, ActionPlaces.DEBUGGER_TOOLBAR);
|
||||
|
||||
|
||||
@@ -168,11 +170,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
|
||||
XDebuggerUIConstants.VARIABLES_TAB_ICON, null);
|
||||
vars.setCloseable(false);
|
||||
vars.setAlertIcon(breakpointAlert);
|
||||
final DefaultActionGroup varsGroup = new DefaultActionGroup();
|
||||
addAction(varsGroup, DebuggerActions.EVALUATE_EXPRESSION);
|
||||
varsGroup.add(new WatchLastMethodReturnValueAction());
|
||||
varsGroup.add(new AutoVarsSwitchAction());
|
||||
vars.setActions(varsGroup, ActionPlaces.DEBUGGER_TOOLBAR, myVariablesPanel.getTree());
|
||||
myUi.addContent(vars, 0, PlaceInGrid.center, false);
|
||||
|
||||
// threads
|
||||
@@ -301,14 +298,16 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
|
||||
addAction(group, DebuggerActions.DUMP_THREADS);
|
||||
group.addSeparator();
|
||||
|
||||
final AnAction[] layout = myUi.getOptions().getLayoutActionsList();
|
||||
final AnAction layoutGroup = myUi.getOptions().getLayoutActions();
|
||||
group.add(myUi.getOptions().getLayoutActions());
|
||||
|
||||
final AnAction[] commonSettings = myUi.getOptions().getSettingsActionsList();
|
||||
final AnAction commonSettingsList = myUi.getOptions().getSettingsActions();
|
||||
|
||||
final DefaultActionGroup settings = new DefaultActionGroup("DebuggerSettings", true) {
|
||||
@Override
|
||||
public void update(AnActionEvent e) {
|
||||
e.getPresentation().setText(ActionsBundle.message("group.XDebugger.settings.text"));
|
||||
e.getPresentation().setIcon(layoutGroup.getTemplatePresentation().getIcon());
|
||||
e.getPresentation().setIcon(commonSettingsList.getTemplatePresentation().getIcon());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -316,12 +315,15 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
|
||||
return true;
|
||||
}
|
||||
};
|
||||
for (AnAction each : layout) {
|
||||
for (AnAction each : commonSettings) {
|
||||
settings.add(each);
|
||||
}
|
||||
if (layout.length > 0) {
|
||||
if (commonSettings.length > 0) {
|
||||
settings.addSeparator();
|
||||
}
|
||||
settings.add(new WatchLastMethodReturnValueAction());
|
||||
settings.add(new AutoVarsSwitchAction());
|
||||
settings.addSeparator();
|
||||
addActionToGroup(settings, XDebuggerActions.AUTO_TOOLTIP);
|
||||
|
||||
group.add(settings);
|
||||
@@ -563,7 +565,7 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
|
||||
private final String myMyTextDisable;
|
||||
|
||||
public WatchLastMethodReturnValueAction() {
|
||||
super("", DebuggerBundle.message("action.watch.method.return.value.description"), WATCH_RETURN_VALUES_ICON);
|
||||
super("", DebuggerBundle.message("action.watch.method.return.value.description"), null);
|
||||
myWatchesReturnValues = DebuggerSettings.getInstance().WATCH_RETURN_VALUES;
|
||||
myTextEnable = DebuggerBundle.message("action.watches.method.return.value.enable");
|
||||
myMyTextDisable = DebuggerBundle.message("action.watches.method.return.value.disable");
|
||||
|
||||
@@ -50,4 +50,6 @@ public interface LayoutViewOptions {
|
||||
|
||||
LayoutViewOptions setAdditionalFocusActions(ActionGroup group);
|
||||
|
||||
AnAction getSettingsActions();
|
||||
AnAction[] getSettingsActionsList();
|
||||
}
|
||||
@@ -69,6 +69,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac
|
||||
QuickActionProvider, DockContainer.Dialog {
|
||||
|
||||
@NonNls public static final String LAYOUT = "Runner.Layout";
|
||||
@NonNls public static final String SETTINGS = "XDebugger.Settings";
|
||||
@NonNls public static final String VIEW_POPUP = "Runner.View.Popup";
|
||||
@NonNls public static final String VIEW_TOOLBAR = "Runner.View.Toolbar";
|
||||
|
||||
@@ -690,6 +691,10 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac
|
||||
}
|
||||
}
|
||||
|
||||
public ActionGroup getSettingsActions() {
|
||||
return (ActionGroup)myActionManager.getAction(SETTINGS);
|
||||
}
|
||||
|
||||
private static void moveFollowingTabs(int index, final JBRunnerTabs tabs) {
|
||||
for (TabInfo info : tabs.getTabs()) {
|
||||
final TabImpl tab = getTabFor(info);
|
||||
|
||||
@@ -293,6 +293,16 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnAction getSettingsActions() {
|
||||
return myContentUI.getSettingsActions();
|
||||
}
|
||||
|
||||
public AnAction[] getSettingsActionsList() {
|
||||
final ActionGroup group = (ActionGroup)getSettingsActions();
|
||||
return group.getChildren(null);
|
||||
}
|
||||
|
||||
public Content[] getContents() {
|
||||
Content[] contents = new Content[getContentManager().getContentCount()];
|
||||
for (int i = 0; i < contents.length; i++) {
|
||||
|
||||
@@ -671,7 +671,7 @@
|
||||
<reference ref="StepOut"/>
|
||||
<reference ref="RunToCursor"/>
|
||||
<separator/>
|
||||
<reference ref="XDebugger.ToggleSortValues"/>
|
||||
<reference ref="EvaluateExpression" />
|
||||
</group>
|
||||
|
||||
<group id="XDebugger.ToolWindow.LeftToolbar">
|
||||
@@ -726,12 +726,15 @@
|
||||
<reference ref="XDebugger.AddToWatches"/>
|
||||
</group>
|
||||
|
||||
<group id="RunnerLayoutActions">
|
||||
<group id="Runner.Layout" icon="/debugger/restoreLayout.png" popup="true">
|
||||
<action id="Runner.RestoreLayout" class="com.intellij.execution.ui.layout.actions.RestoreLayoutAction"/>
|
||||
<action id="Runner.ToggleToolbarLayout" class="com.intellij.execution.ui.layout.actions.ToggleToolbarLayoutAction"/>
|
||||
</group>
|
||||
<group id="XDebugger.Settings" icon="/general/secondaryGroup.png" popup="true">
|
||||
|
||||
</group>
|
||||
|
||||
<group id="RunnerLayoutActions">
|
||||
<group id="Runner.Layout">
|
||||
<action id="Runner.RestoreLayout" class="com.intellij.execution.ui.layout.actions.RestoreLayoutAction"
|
||||
icon="/debugger/restoreLayout.png"/>
|
||||
</group>
|
||||
|
||||
<group id="Runner.View.Popup">
|
||||
<action id="Runner.MinimizeView" class="com.intellij.execution.ui.layout.actions.MinimizeViewAction" icon="/actions/minimize.png"/>
|
||||
|
||||
@@ -30,10 +30,8 @@ import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.execution.ui.actions.CloseAction;
|
||||
import com.intellij.execution.ui.layout.PlaceInGrid;
|
||||
import com.intellij.ide.actions.ContextHelpAction;
|
||||
import com.intellij.openapi.actionSystem.ActionGroup;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.ActionPlaces;
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup;
|
||||
import com.intellij.idea.ActionsBundle;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.ui.content.Content;
|
||||
@@ -46,6 +44,7 @@ import com.intellij.xdebugger.impl.frame.XDebugViewBase;
|
||||
import com.intellij.xdebugger.impl.frame.XFramesView;
|
||||
import com.intellij.xdebugger.impl.frame.XVariablesView;
|
||||
import com.intellij.xdebugger.impl.frame.XWatchesView;
|
||||
import com.intellij.xdebugger.impl.ui.tree.actions.SortValuesToggleAction;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -162,6 +161,31 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
leftToolbar.addSeparator();
|
||||
|
||||
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);
|
||||
}
|
||||
if (commonSettings.length > 0) {
|
||||
settings.addSeparator();
|
||||
}
|
||||
settings.add(new ToggleSortValuesAction(commonSettings.length == 0));
|
||||
|
||||
leftToolbar.add(settings);
|
||||
|
||||
|
||||
leftToolbar.addSeparator();
|
||||
|
||||
@@ -192,4 +216,21 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
|
||||
public RunContentDescriptor getRunContentDescriptor() {
|
||||
return myRunContentDescriptor;
|
||||
}
|
||||
|
||||
private static class ToggleSortValuesAction extends SortValuesToggleAction {
|
||||
private final boolean myShowIcon;
|
||||
|
||||
private ToggleSortValuesAction(boolean showIcon) {
|
||||
copyFrom(ActionManager.getInstance().getAction(XDebuggerActions.TOGGLE_SORT_VALUES));
|
||||
myShowIcon = showIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(AnActionEvent e) {
|
||||
super.update(e);
|
||||
if (!myShowIcon) {
|
||||
e.getPresentation().setIcon(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user