From 90f723e35e4685c1c8c8fe71b6fa6a143ca137d3 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Wed, 2 Sep 2015 15:40:00 +0300 Subject: [PATCH] show a message if all class fields were filtered out --- .../ui/tree/render/ClassRenderer.java | 19 ++++++++++++------- .../src/messages/DebuggerBundle.properties | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java index af418f3053e8..b950a4b0a328 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java @@ -158,16 +158,21 @@ public class ClassRenderer extends NodeRendererImpl{ final ObjectReference objRef = (ObjectReference)value; final ReferenceType refType = objRef.referenceType(); // default ObjectReference processing - final List fields = refType.allFields(); - if (fields.size() > 0) { - for (final Field field : fields) { - if (!shouldDisplay(evaluationContext, objRef, field)) { - continue; + List fields = refType.allFields(); + if (!fields.isEmpty()) { + boolean empty = true; + for (Field field : fields) { + if (shouldDisplay(evaluationContext, objRef, field)) { + children.add(nodeManager.createNode( + createFieldDescriptor(parentDescriptor, nodeDescriptorFactory, objRef, field, evaluationContext), evaluationContext)); + empty = false; } - children.add(nodeManager.createNode(createFieldDescriptor(parentDescriptor, nodeDescriptorFactory, objRef, field, evaluationContext), evaluationContext)); } - if (XDebuggerSettingsManager.getInstance().getDataViewSettings().isSortValues()) { + if (empty) { + children.add(nodeManager.createMessageNode(DebuggerBundle.message("message.node.class.no.fields.to.display"))); + } + else if (XDebuggerSettingsManager.getInstance().getDataViewSettings().isSortValues()) { Collections.sort(children, NodeManagerImpl.getNodeComparator()); } } diff --git a/resources-en/src/messages/DebuggerBundle.properties b/resources-en/src/messages/DebuggerBundle.properties index 4e8f16a937b5..5cb85518e745 100644 --- a/resources-en/src/messages/DebuggerBundle.properties +++ b/resources-en/src/messages/DebuggerBundle.properties @@ -393,6 +393,7 @@ message.node.all.array.elements.null=All elements in range ({0}, {1}) are null message.node.all.elements.null=All elements are null message.node.empty.array=Empty message.node.class.has.no.fields=Class has no fields +message.node.class.no.fields.to.display=No fields to display message.node.object.collected=Object has been garbage collected during method invocation message.node.thread.running=Thread is running message.node.thread.has.no.frames=Thread has no frames