Commit 1a47dc66 authored by Dennis Ushakov's avatar Dennis Ushakov
Browse files

variables settings actions reorganized

parent 8a7f3cb7
Showing with 83 additions and 20 deletions
+83 -20
...@@ -137,6 +137,8 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos ...@@ -137,6 +137,8 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
stepping.add(actionManager.getAction(DebuggerActions.POP_FRAME)); stepping.add(actionManager.getAction(DebuggerActions.POP_FRAME));
stepping.addSeparator(); stepping.addSeparator();
stepping.add(actionManager.getAction(DebuggerActions.RUN_TO_CURSOR)); stepping.add(actionManager.getAction(DebuggerActions.RUN_TO_CURSOR));
stepping.addSeparator();
stepping.add(actionManager.getAction(DebuggerActions.EVALUATE_EXPRESSION));
myUi.getOptions().setTopToolbar(stepping, ActionPlaces.DEBUGGER_TOOLBAR); myUi.getOptions().setTopToolbar(stepping, ActionPlaces.DEBUGGER_TOOLBAR);
...@@ -168,11 +170,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos ...@@ -168,11 +170,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
XDebuggerUIConstants.VARIABLES_TAB_ICON, null); XDebuggerUIConstants.VARIABLES_TAB_ICON, null);
vars.setCloseable(false); vars.setCloseable(false);
vars.setAlertIcon(breakpointAlert); 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); myUi.addContent(vars, 0, PlaceInGrid.center, false);
// threads // threads
...@@ -301,14 +298,16 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos ...@@ -301,14 +298,16 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
addAction(group, DebuggerActions.DUMP_THREADS); addAction(group, DebuggerActions.DUMP_THREADS);
group.addSeparator(); group.addSeparator();
final AnAction[] layout = myUi.getOptions().getLayoutActionsList(); group.add(myUi.getOptions().getLayoutActions());
final AnAction layoutGroup = myUi.getOptions().getLayoutActions();
final AnAction[] commonSettings = myUi.getOptions().getSettingsActionsList();
final AnAction commonSettingsList = myUi.getOptions().getSettingsActions();
final DefaultActionGroup settings = new DefaultActionGroup("DebuggerSettings", true) { final DefaultActionGroup settings = new DefaultActionGroup("DebuggerSettings", true) {
@Override @Override
public void update(AnActionEvent e) { public void update(AnActionEvent e) {
e.getPresentation().setText(ActionsBundle.message("group.XDebugger.settings.text")); e.getPresentation().setText(ActionsBundle.message("group.XDebugger.settings.text"));
e.getPresentation().setIcon(layoutGroup.getTemplatePresentation().getIcon()); e.getPresentation().setIcon(commonSettingsList.getTemplatePresentation().getIcon());
} }
@Override @Override
...@@ -316,12 +315,15 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos ...@@ -316,12 +315,15 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
return true; return true;
} }
}; };
for (AnAction each : layout) { for (AnAction each : commonSettings) {
settings.add(each); settings.add(each);
} }
if (layout.length > 0) { if (commonSettings.length > 0) {
settings.addSeparator(); settings.addSeparator();
} }
settings.add(new WatchLastMethodReturnValueAction());
settings.add(new AutoVarsSwitchAction());
settings.addSeparator();
addActionToGroup(settings, XDebuggerActions.AUTO_TOOLTIP); addActionToGroup(settings, XDebuggerActions.AUTO_TOOLTIP);
group.add(settings); group.add(settings);
...@@ -563,7 +565,7 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos ...@@ -563,7 +565,7 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
private final String myMyTextDisable; private final String myMyTextDisable;
public WatchLastMethodReturnValueAction() { 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; myWatchesReturnValues = DebuggerSettings.getInstance().WATCH_RETURN_VALUES;
myTextEnable = DebuggerBundle.message("action.watches.method.return.value.enable"); myTextEnable = DebuggerBundle.message("action.watches.method.return.value.enable");
myMyTextDisable = DebuggerBundle.message("action.watches.method.return.value.disable"); myMyTextDisable = DebuggerBundle.message("action.watches.method.return.value.disable");
......
...@@ -50,4 +50,6 @@ public interface LayoutViewOptions { ...@@ -50,4 +50,6 @@ public interface LayoutViewOptions {
LayoutViewOptions setAdditionalFocusActions(ActionGroup group); LayoutViewOptions setAdditionalFocusActions(ActionGroup group);
AnAction getSettingsActions();
AnAction[] getSettingsActionsList();
} }
\ No newline at end of file
...@@ -69,6 +69,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac ...@@ -69,6 +69,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac
QuickActionProvider, DockContainer.Dialog { QuickActionProvider, DockContainer.Dialog {
@NonNls public static final String LAYOUT = "Runner.Layout"; @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_POPUP = "Runner.View.Popup";
@NonNls public static final String VIEW_TOOLBAR = "Runner.View.Toolbar"; @NonNls public static final String VIEW_TOOLBAR = "Runner.View.Toolbar";
...@@ -690,6 +691,10 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac ...@@ -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) { private static void moveFollowingTabs(int index, final JBRunnerTabs tabs) {
for (TabInfo info : tabs.getTabs()) { for (TabInfo info : tabs.getTabs()) {
final TabImpl tab = getTabFor(info); final TabImpl tab = getTabFor(info);
......
...@@ -293,6 +293,16 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta ...@@ -293,6 +293,16 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta
return this; return this;
} }
@Override
public AnAction getSettingsActions() {
return myContentUI.getSettingsActions();
}
public AnAction[] getSettingsActionsList() {
final ActionGroup group = (ActionGroup)getSettingsActions();
return group.getChildren(null);
}
public Content[] getContents() { public Content[] getContents() {
Content[] contents = new Content[getContentManager().getContentCount()]; Content[] contents = new Content[getContentManager().getContentCount()];
for (int i = 0; i < contents.length; i++) { for (int i = 0; i < contents.length; i++) {
......
...@@ -671,7 +671,7 @@ ...@@ -671,7 +671,7 @@
<reference ref="StepOut"/> <reference ref="StepOut"/>
<reference ref="RunToCursor"/> <reference ref="RunToCursor"/>
<separator/> <separator/>
<reference ref="XDebugger.ToggleSortValues"/> <reference ref="EvaluateExpression" />
</group> </group>
<group id="XDebugger.ToolWindow.LeftToolbar"> <group id="XDebugger.ToolWindow.LeftToolbar">
...@@ -726,13 +726,16 @@ ...@@ -726,13 +726,16 @@
<reference ref="XDebugger.AddToWatches"/> <reference ref="XDebugger.AddToWatches"/>
</group> </group>
<group id="XDebugger.Settings" icon="/general/secondaryGroup.png" popup="true">
</group>
<group id="RunnerLayoutActions"> <group id="RunnerLayoutActions">
<group id="Runner.Layout" icon="/debugger/restoreLayout.png" popup="true"> <group id="Runner.Layout">
<action id="Runner.RestoreLayout" class="com.intellij.execution.ui.layout.actions.RestoreLayoutAction"/> <action id="Runner.RestoreLayout" class="com.intellij.execution.ui.layout.actions.RestoreLayoutAction"
<action id="Runner.ToggleToolbarLayout" class="com.intellij.execution.ui.layout.actions.ToggleToolbarLayoutAction"/> icon="/debugger/restoreLayout.png"/>
</group> </group>
<group id="Runner.View.Popup"> <group id="Runner.View.Popup">
<action id="Runner.MinimizeView" class="com.intellij.execution.ui.layout.actions.MinimizeViewAction" icon="/actions/minimize.png"/> <action id="Runner.MinimizeView" class="com.intellij.execution.ui.layout.actions.MinimizeViewAction" icon="/actions/minimize.png"/>
<separator/> <separator/>
......
...@@ -30,10 +30,8 @@ import com.intellij.execution.ui.RunContentDescriptor; ...@@ -30,10 +30,8 @@ import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.execution.ui.actions.CloseAction; import com.intellij.execution.ui.actions.CloseAction;
import com.intellij.execution.ui.layout.PlaceInGrid; import com.intellij.execution.ui.layout.PlaceInGrid;
import com.intellij.ide.actions.ContextHelpAction; import com.intellij.ide.actions.ContextHelpAction;
import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.idea.ActionsBundle;
import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.ActionPlaces;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.ui.content.Content; import com.intellij.ui.content.Content;
...@@ -46,6 +44,7 @@ import com.intellij.xdebugger.impl.frame.XDebugViewBase; ...@@ -46,6 +44,7 @@ import com.intellij.xdebugger.impl.frame.XDebugViewBase;
import com.intellij.xdebugger.impl.frame.XFramesView; import com.intellij.xdebugger.impl.frame.XFramesView;
import com.intellij.xdebugger.impl.frame.XVariablesView; import com.intellij.xdebugger.impl.frame.XVariablesView;
import com.intellij.xdebugger.impl.frame.XWatchesView; 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.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
...@@ -162,6 +161,31 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { ...@@ -162,6 +161,31 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
leftToolbar.addSeparator(); leftToolbar.addSeparator();
leftToolbar.add(myUi.getOptions().getLayoutActions()); 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(); leftToolbar.addSeparator();
...@@ -192,4 +216,21 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { ...@@ -192,4 +216,21 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
public RunContentDescriptor getRunContentDescriptor() { public RunContentDescriptor getRunContentDescriptor() {
return myRunContentDescriptor; 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);
}
}
}
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment