From 726d0985973486636fe6ff431a787c7a1249ed74 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Thu, 18 Nov 2010 16:57:06 +0300 Subject: [PATCH] UI: empty texts in debugger --- .../actions/CustomizeContextViewAction.java | 4 +-- .../ui/breakpoints/BreakpointPanel.java | 10 ++++-- .../ui/breakpoints/BreakpointTable.java | 3 ++ .../ui/breakpoints/BreakpointTree.java | 2 ++ ...uggerTree.java => FrameVariablesTree.java} | 6 ++-- .../debugger/ui/impl/ThreadsDebuggerTree.java | 2 ++ .../debugger/ui/impl/VariablesPanel.java | 8 ++--- .../debugger/ui/impl/WatchDebuggerTree.java | 2 ++ .../intellij/ui/components/JBScrollPane.java | 8 ++++- .../src/com/intellij/util/ui/StatusText.java | 32 +++++++++++++------ .../src/messages/XDebuggerBundle.properties | 8 ++++- .../util/src/com/intellij/ui/SideBorder.java | 1 + .../util/src/com/intellij/util/ui/UIUtil.java | 2 +- .../openapi/vcs/update/UpdateInfoTree.java | 16 +++++----- .../breakpoints/ui/XBreakpointsPanel.java | 6 +++- .../impl/breakpoints/ui/XBreakpointsTree.java | 3 ++ .../impl/frame/DebuggerFramesList.java | 2 ++ .../xdebugger/impl/frame/XVariablesView.java | 2 ++ .../xdebugger/impl/frame/XWatchesView.java | 4 +++ 19 files changed, 90 insertions(+), 31 deletions(-) rename java/debugger/impl/src/com/intellij/debugger/ui/impl/{FrameDebuggerTree.java => FrameVariablesTree.java} (99%) diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/CustomizeContextViewAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/CustomizeContextViewAction.java index 32f9aab192f3..7a03251dcea4 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/CustomizeContextViewAction.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/CustomizeContextViewAction.java @@ -19,7 +19,7 @@ import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.settings.DebuggerDataViewsConfigurable; import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.settings.UserRenderersConfigurable; -import com.intellij.debugger.ui.impl.FrameDebuggerTree; +import com.intellij.debugger.ui.impl.FrameVariablesTree; import com.intellij.debugger.ui.impl.watch.DebuggerTree; import com.intellij.idea.ActionsBundle; import com.intellij.openapi.Disposable; @@ -80,7 +80,7 @@ public class CustomizeContextViewAction extends DebuggerAction{ public void update(AnActionEvent e) { DebuggerTree tree = getTree(e.getDataContext()); - e.getPresentation().setVisible(tree instanceof FrameDebuggerTree); + e.getPresentation().setVisible(tree instanceof FrameVariablesTree); e.getPresentation().setText(ActionsBundle.actionText(DebuggerActions.CUSTOMIZE_VIEWS)); } } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPanel.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPanel.java index d9ed0c73b3cd..de7bb097a36f 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPanel.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPanel.java @@ -26,7 +26,9 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiField; import com.intellij.ui.IdeBorderFactory; import com.intellij.ui.ScrollPaneFactory; +import com.intellij.ui.SideBorder; import com.intellij.ui.TableUtil; +import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; import com.intellij.xdebugger.impl.breakpoints.ui.AbstractBreakpointPanel; import gnu.trove.TIntArrayList; @@ -83,7 +85,9 @@ public class BreakpointPanel extends AbstractBreakpointPanel { myTree = new BreakpointTree(project); myTablePlace.setLayout(new CardLayout()); - myTablePlace.add(ScrollPaneFactory.createScrollPane(myTable), TABLE_VIEW); + JScrollPane pane = ScrollPaneFactory.createScrollPane(myTable); + pane.putClientProperty(UIUtil.KEEP_BORDER_SIDES, SideBorder.ALL); + myTablePlace.add(pane, TABLE_VIEW); final ListSelectionListener listSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { @@ -192,7 +196,9 @@ public class BreakpointPanel extends AbstractBreakpointPanel { } }); - myTablePlace.add(ScrollPaneFactory.createScrollPane(myTree), TREE_VIEW); + pane = ScrollPaneFactory.createScrollPane(myTree); + pane.putClientProperty(UIUtil.KEEP_BORDER_SIDES, SideBorder.ALL); + myTablePlace.add(pane, TREE_VIEW); updateCurrentBreakpointPropertiesPanel(); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTable.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTable.java index 31ffc6bb4f16..7530fa524e52 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTable.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTable.java @@ -17,6 +17,7 @@ package com.intellij.debugger.ui.breakpoints; import com.intellij.openapi.project.Project; import com.intellij.util.ui.Table; +import com.intellij.xdebugger.XDebuggerBundle; import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; @@ -88,6 +89,8 @@ public class BreakpointTable extends Table { } }); columnModel.getColumn(BreakpointTableModel.NAME).setCellRenderer(new BreakpointNameCellRenderer()); + + getEmptyText().setText(XDebuggerBundle.message("debugger.no.breakpoints")); } public BreakpointTableModel getModel() { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTree.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTree.java index 16be81a1b204..b487a4a4d322 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTree.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointTree.java @@ -24,6 +24,7 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.Convertor; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; +import com.intellij.xdebugger.XDebuggerBundle; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -394,6 +395,7 @@ public class BreakpointTree extends CheckboxTree { } }; myBreakpointManager.addBreakpointManagerListener(myNodeUpdateListener); + getEmptyText().setText(XDebuggerBundle.message("debugger.no.breakpoints")); } public boolean isGroupByMethods() { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameDebuggerTree.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameVariablesTree.java similarity index 99% rename from java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameDebuggerTree.java rename to java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameVariablesTree.java index cdb42b62bdc6..766e233a7b6b 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameDebuggerTree.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/FrameVariablesTree.java @@ -53,6 +53,7 @@ import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.text.CharArrayUtil; import com.intellij.util.ui.tree.TreeModelAdapter; +import com.intellij.xdebugger.XDebuggerBundle; import com.sun.jdi.AbsentInformationException; import com.sun.jdi.ObjectCollectedException; import com.sun.jdi.Value; @@ -62,13 +63,14 @@ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import java.util.*; -public class FrameDebuggerTree extends DebuggerTree { +public class FrameVariablesTree extends DebuggerTree { private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.impl.FrameDebuggerTree"); private boolean myAnyNewLocals; private boolean myAutoWatchMode = false; - public FrameDebuggerTree(Project project) { + public FrameVariablesTree(Project project) { super(project); + getEmptyText().setText(XDebuggerBundle.message("debugger.variables.not.available")); } public boolean isAutoWatchMode() { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/ThreadsDebuggerTree.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/ThreadsDebuggerTree.java index c61ece98c151..18f71d59fe21 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/ThreadsDebuggerTree.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/ThreadsDebuggerTree.java @@ -32,6 +32,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.util.ui.tree.TreeModelAdapter; +import com.intellij.xdebugger.XDebuggerBundle; import javax.swing.*; import javax.swing.event.TreeModelEvent; @@ -51,6 +52,7 @@ public class ThreadsDebuggerTree extends DebuggerTree { public ThreadsDebuggerTree(Project project) { super(project); + getEmptyText().setText(XDebuggerBundle.message("debugger.threads.not.available")); } protected NodeManagerImpl createNodeManager(Project project) { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/VariablesPanel.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/VariablesPanel.java index 0a4910f3a231..af482239ab27 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/VariablesPanel.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/VariablesPanel.java @@ -40,7 +40,7 @@ public class VariablesPanel extends DebuggerTreePanel implements DataProvider{ setBorder(null); - final FrameDebuggerTree frameTree = getFrameTree(); + final FrameVariablesTree frameTree = getFrameTree(); add(ScrollPaneFactory.createScrollPane(frameTree), BorderLayout.CENTER); registerDisposable(DebuggerAction.installEditAction(frameTree, DebuggerActions.EDIT_NODE_SOURCE)); @@ -52,7 +52,7 @@ public class VariablesPanel extends DebuggerTreePanel implements DataProvider{ } protected DebuggerTree createTreeView() { - return new FrameDebuggerTree(getProject()); + return new FrameVariablesTree(getProject()); } protected void changeEvent(DebuggerContextImpl newContext, int event) { @@ -74,8 +74,8 @@ public class VariablesPanel extends DebuggerTreePanel implements DataProvider{ } - public FrameDebuggerTree getFrameTree() { - return (FrameDebuggerTree) getTree(); + public FrameVariablesTree getFrameTree() { + return (FrameVariablesTree) getTree(); } } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/WatchDebuggerTree.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/WatchDebuggerTree.java index afa98d222d94..b31b7beb1561 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/WatchDebuggerTree.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/WatchDebuggerTree.java @@ -23,6 +23,7 @@ import com.intellij.debugger.ui.impl.watch.WatchItemDescriptor; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; +import com.intellij.xdebugger.XDebuggerBundle; import javax.swing.tree.TreePath; import java.util.Enumeration; @@ -32,6 +33,7 @@ public class WatchDebuggerTree extends DebuggerTree { public WatchDebuggerTree(Project project) { super(project); + getEmptyText().setText(XDebuggerBundle.message("debugger.no.watches")); } public DebuggerTreeNodeImpl[] getWatches() { diff --git a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java index 4b3daa94a8df..4c7b60ed0895 100644 --- a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java +++ b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java @@ -19,6 +19,7 @@ import com.intellij.ui.IdeBorderFactory; import com.intellij.util.ui.ButtonlessScrollBarUI; import javax.swing.*; +import javax.swing.border.Border; import javax.swing.border.LineBorder; import javax.swing.plaf.ScrollPaneUI; import java.awt.*; @@ -44,13 +45,18 @@ public class JBScrollPane extends JScrollPane { } protected void init() { - setBorder(IdeBorderFactory.createBorder()); + super.setBorder(IdeBorderFactory.createBorder()); setCorner(UPPER_RIGHT_CORNER, new Corner(UPPER_RIGHT_CORNER)); setCorner(UPPER_LEFT_CORNER, new Corner(UPPER_LEFT_CORNER)); setCorner(LOWER_RIGHT_CORNER, new Corner(LOWER_RIGHT_CORNER)); setCorner(LOWER_LEFT_CORNER, new Corner(LOWER_LEFT_CORNER)); } + @Override + public void setBorder(Border border) { + super.setBorder(border); + } + public void setUI(ScrollPaneUI ui) { super.setUI(ui); setViewportBorder(new ViewportBorder(1)); diff --git a/platform/platform-api/src/com/intellij/util/ui/StatusText.java b/platform/platform-api/src/com/intellij/util/ui/StatusText.java index 0aa4110c705e..acedc6097ad4 100644 --- a/platform/platform-api/src/com/intellij/util/ui/StatusText.java +++ b/platform/platform-api/src/com/intellij/util/ui/StatusText.java @@ -37,6 +37,8 @@ public abstract class StatusText { private Component myOwner; private final MouseAdapter myMouseListener; + private boolean myIsDefaultText; + private String myText = ""; private final SimpleColoredComponent myComponent = new SimpleColoredComponent(); private final ArrayList myClickListeners = new ArrayList(); @@ -72,6 +74,7 @@ public abstract class StatusText { myComponent.setOpaque(false); myComponent.setFont(UIUtil.getLabelFont()); setText(UIBundle.message("message.nothingToShow"), DEFAULT_ATTRIBUTES); + myIsDefaultText = true; } public void attachTo(@Nullable Component owner) { @@ -118,29 +121,40 @@ public abstract class StatusText { return myText; } - public void setText(String text) { - setText(text, DEFAULT_ATTRIBUTES); + public StatusText setText(String text) { + return setText(text, DEFAULT_ATTRIBUTES); } - public void setText(String text, SimpleTextAttributes attrs) { - clear(); - appendText(text, attrs); + public StatusText setText(String text, SimpleTextAttributes attrs) { + return clear().appendText(text, attrs); } - public void clear() { + public StatusText clear() { myText = ""; myComponent.clear(); myClickListeners.clear(); + return this; } - public void appendText(String text, SimpleTextAttributes attrs) { - appendText(text, attrs, null); + public StatusText appendText(String text) { + return appendText(text, DEFAULT_ATTRIBUTES); } - public void appendText(String text, SimpleTextAttributes attrs, ActionListener listener) { + public StatusText appendText(String text, SimpleTextAttributes attrs) { + return appendText(text, attrs, null); + } + + public StatusText appendText(String text, SimpleTextAttributes attrs, ActionListener listener) { + if (myIsDefaultText) { + clear(); + myIsDefaultText = false; + } + myText += text; myComponent.append(text, attrs); myClickListeners.add(listener); + + return this; } public void paint(Component owner, Graphics g) { diff --git a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties index 3cdf77d5b78c..cff9d7213c53 100644 --- a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties +++ b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties @@ -78,4 +78,10 @@ action.previous.frame.text=Previous Frame stack.frame.loading.text=Loading... invalid.frame= xdebugger.drag.text.0.elements={0} elements -xdebugger.drop.text.add.to.watches=Add to watches \ No newline at end of file +xdebugger.drop.text.add.to.watches=Add to watches + +debugger.frames.not.available=Frames are not available +debugger.threads.not.available=Threads are not available +debugger.variables.not.available=Variables are not available +debugger.no.watches=No watches +debugger.no.breakpoints=No breakpoints \ No newline at end of file diff --git a/platform/util/src/com/intellij/ui/SideBorder.java b/platform/util/src/com/intellij/ui/SideBorder.java index 37e6df1143ec..3cca4d6d34b3 100644 --- a/platform/util/src/com/intellij/ui/SideBorder.java +++ b/platform/util/src/com/intellij/ui/SideBorder.java @@ -23,6 +23,7 @@ import java.awt.*; public class SideBorder extends LineBorder { + public static final int NONE = 0; public static final int LEFT = 0x01; public static final int TOP = 0x02; public static final int RIGHT = 0x04; diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index 53dcfb7cd93f..1e9a588c7374 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1263,7 +1263,7 @@ public class UIUtil { } } else { - scrollPane.setBorder(null); + scrollPane.setBorder(new SideBorder(getBoundsColor(), SideBorder.NONE)); } } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/update/UpdateInfoTree.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/update/UpdateInfoTree.java index 331b1ddebb9f..f1ccd0e53596 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/update/UpdateInfoTree.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/update/UpdateInfoTree.java @@ -333,15 +333,15 @@ public class UpdateInfoTree extends PanelWithActionsAndCloseButton implements Di } myCommittedChangeLists = receivedChanges; myTreeBrowser.setItems(myCommittedChangeLists, CommittedChangesBrowserUseCase.UPDATE); - myTreeBrowser.getEmptyText().clear(); if (hasEmptyCaches) { - myTreeBrowser.getEmptyText().appendText("Click ", SimpleTextAttributes.REGULAR_ATTRIBUTES); - myTreeBrowser.getEmptyText().appendText("Refresh", SimpleTextAttributes.LINK_ATTRIBUTES, new ActionListener() { - public void actionPerformed(final ActionEvent e) { - RefreshIncomingChangesAction.doRefresh(myProject); - } - }); - myTreeBrowser.getEmptyText().appendText(" to initialize repository changes cache", SimpleTextAttributes.REGULAR_ATTRIBUTES); + myTreeBrowser.getEmptyText() + .appendText("Click ") + .appendText("Refresh", SimpleTextAttributes.LINK_ATTRIBUTES, new ActionListener() { + public void actionPerformed(final ActionEvent e) { + RefreshIncomingChangesAction.doRefresh(myProject); + } + }) + .appendText(" to initialize repository changes cache"); } } }, myProject.getDisposed()); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsPanel.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsPanel.java index 5c47dac8d657..ca55ec09655e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsPanel.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsPanel.java @@ -18,7 +18,9 @@ package com.intellij.xdebugger.impl.breakpoints.ui; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.ui.ScrollPaneFactory; +import com.intellij.ui.SideBorder; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.ui.UIUtil; import com.intellij.xdebugger.XDebuggerBundle; import com.intellij.xdebugger.XDebuggerManager; import com.intellij.xdebugger.breakpoints.XBreakpoint; @@ -86,7 +88,9 @@ public class XBreakpointsPanel> extends AbstractBreakpo //noinspection unchecked myActions = actions.toArray(new XBreakpointPanelAction[actions.size()]); - myTreePanel.add(ScrollPaneFactory.createScrollPane(myTree), BorderLayout.CENTER); + JScrollPane pane = ScrollPaneFactory.createScrollPane(myTree); + myTreePanel.add(pane, BorderLayout.CENTER); + pane.putClientProperty(UIUtil.KEEP_BORDER_SIDES, SideBorder.ALL); initButtons(); onSelectionChanged(); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsTree.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsTree.java index 11f1f701d63b..be852df540d5 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsTree.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XBreakpointsTree.java @@ -24,6 +24,7 @@ import com.intellij.ui.CheckedTreeNode; import com.intellij.ui.SimpleTextAttributes; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; +import com.intellij.xdebugger.XDebuggerBundle; import com.intellij.xdebugger.breakpoints.XBreakpoint; import com.intellij.xdebugger.breakpoints.XBreakpointManager; import com.intellij.xdebugger.breakpoints.XBreakpointType; @@ -62,6 +63,8 @@ public class XBreakpointsTree> extends CheckboxTree { myParentDialog = parentDialog; myComparator = new TreeNodeComparator(type, breakpointManager); setGroupingRulesInternal(groupingRules); + + getEmptyText().setText(XDebuggerBundle.message("debugger.no.breakpoints")); } private void setGroupingRulesInternal(final Collection> groupingRules) { diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/DebuggerFramesList.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/DebuggerFramesList.java index 012b8b63b24e..41dd52bcc3b9 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/DebuggerFramesList.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/DebuggerFramesList.java @@ -45,6 +45,8 @@ public abstract class DebuggerFramesList extends JBList implements OccurenceNavi } } }); + + getEmptyText().setText(XDebuggerBundle.message("debugger.frames.not.available")); } public DefaultListModel getModel() { diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XVariablesView.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XVariablesView.java index f61a23debdb2..f6b552d02730 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XVariablesView.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XVariablesView.java @@ -18,6 +18,7 @@ package com.intellij.xdebugger.impl.frame; import com.intellij.ide.dnd.DnDManager; import com.intellij.openapi.Disposable; import com.intellij.xdebugger.XDebugSession; +import com.intellij.xdebugger.XDebuggerBundle; import com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider; import com.intellij.xdebugger.frame.XStackFrame; import com.intellij.xdebugger.impl.actions.XDebuggerActions; @@ -44,6 +45,7 @@ public class XVariablesView extends XDebugViewBase { super(session, parentDisposable); XDebuggerEditorsProvider editorsProvider = session.getDebugProcess().getEditorsProvider(); myDebuggerTreePanel = new XDebuggerTreePanel(session, editorsProvider, this, null, XDebuggerActions.VARIABLES_TREE_POPUP_GROUP); + myDebuggerTreePanel.getTree().getEmptyText().setText(XDebuggerBundle.message("debugger.variables.not.available")); DnDManager.getInstance().registerSource(myDebuggerTreePanel, myDebuggerTreePanel.getTree()); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesView.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesView.java index 1154245d9576..e3f4a1295fd6 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesView.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesView.java @@ -58,6 +58,7 @@ public class XWatchesView extends XDebugViewBase implements DnDNativeTarget { super(session, parentDisposable); myTreePanel = new XDebuggerTreePanel(session, session.getDebugProcess().getEditorsProvider(), this, null, XDebuggerActions.WATCHES_TREE_POPUP_GROUP); + ActionManager actionManager = ActionManager.getInstance(); CustomShortcutSet insertShortcut = new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0)); @@ -73,6 +74,9 @@ public class XWatchesView extends XDebugViewBase implements DnDNativeTarget { DnDManager.getInstance().registerTarget(this, tree); myRootNode = new WatchesRootNode(tree, sessionData.getWatchExpressions()); tree.setRoot(myRootNode, false); + + myTreePanel.getTree().getEmptyText().setText(XDebuggerBundle.message("debugger.no.watches")); + } public void addWatchExpression(@NotNull String expression, int index) {