diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHintTreeComponent.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHintTreeComponent.java index c7c6c1fd2cd1..a8da3686b121 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHintTreeComponent.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/AbstractValueHintTreeComponent.java @@ -112,9 +112,24 @@ public abstract class AbstractValueHintTreeComponent { } } - private JComponent createToolbar(final JPanel parent) { + private JComponent createToolbar(JPanel parent) { DefaultActionGroup group = new DefaultActionGroup(); - group.add(createSetRoot()); + group.add(new AnAction(XDebuggerBundle.message("xdebugger.popup.value.tree.set.root.action.tooltip"), + XDebuggerBundle.message("xdebugger.popup.value.tree.set.root.action.tooltip"), AllIcons.Modules.UnmarkWebroot) { + @Override + public void update(AnActionEvent e) { + TreePath path = myTree.getSelectionPath(); + e.getPresentation().setEnabled(path != null && path.getPathCount() > 1); + } + + @Override + public void actionPerformed(AnActionEvent e) { + TreePath path = myTree.getSelectionPath(); + if (path != null) { + setNodeAsRoot(path.getLastPathComponent()); + } + } + }); AnAction back = createGoBackAction(); back.registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, InputEvent.ALT_MASK)), parent); @@ -127,18 +142,5 @@ public abstract class AbstractValueHintTreeComponent { return ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true).getComponent(); } - private AnAction createSetRoot() { - final String title = XDebuggerBundle.message("xdebugger.popup.value.tree.set.root.action.tooltip"); - return new AnAction(title, title, AllIcons.Modules.UnmarkWebroot) { - @Override - public void actionPerformed(AnActionEvent e) { - final TreePath path = myTree.getSelectionPath(); - if (path == null) return; - final Object node = path.getLastPathComponent(); - setNodeAsRoot(node); - } - }; - } - protected abstract void setNodeAsRoot(Object node); }