From 3b4c357bc0e93fe8bcc574f2ea9131dcfdb19934 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 3 Mar 2005 19:33:48 +0300 Subject: [PATCH] correctly build child expression for evaluation dialog --- .../ui/tree/render/CompoundReferenceRenderer.java | 6 ++++-- .../debugger/ui/tree/render/ToStringRenderer.java | 14 ++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/source/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java b/source/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java index 7ddb54fbbccb..03aba60844f9 100644 --- a/source/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java +++ b/source/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java @@ -41,7 +41,8 @@ public class CompoundReferenceRenderer extends CompoundNodeRenderer{ } public ChildrenRenderer getChildrenRenderer() { - return super.getChildrenRenderer() != null ? super.getChildrenRenderer() : getDefaultRenderer(); + final ChildrenRenderer childrenRenderer = super.getChildrenRenderer(); + return childrenRenderer != null ? childrenRenderer : getDefaultRenderer(); } private NodeRenderer getDefaultRenderer() { @@ -49,7 +50,8 @@ public class CompoundReferenceRenderer extends CompoundNodeRenderer{ } public ValueLabelRenderer getLabelRenderer() { - return super.getLabelRenderer() != null ? super.getLabelRenderer() : getDefaultRenderer(); + final ValueLabelRenderer labelRenderer = super.getLabelRenderer(); + return labelRenderer != null ? labelRenderer : getDefaultRenderer(); } private ChildrenRenderer getRawChildrenRenderer() { diff --git a/source/com/intellij/debugger/ui/tree/render/ToStringRenderer.java b/source/com/intellij/debugger/ui/tree/render/ToStringRenderer.java index cb0e6a21aa7a..cf84f67f49f1 100644 --- a/source/com/intellij/debugger/ui/tree/render/ToStringRenderer.java +++ b/source/com/intellij/debugger/ui/tree/render/ToStringRenderer.java @@ -2,6 +2,7 @@ package com.intellij.debugger.ui.tree.render; import com.intellij.debugger.ClassFilter; import com.intellij.debugger.DebuggerContext; +import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.engine.DebugProcessImpl; import com.intellij.debugger.engine.StackFrameContext; import com.intellij.debugger.engine.evaluation.EvaluateException; @@ -123,19 +124,20 @@ public class ToStringRenderer extends NodeRendererImpl { getDefaultRenderer(value, evaluationContext).buildChildren(value, builder, evaluationContext); } - private static NodeRenderer getDefaultRenderer(Value value, StackFrameContext context) { - Type type = value != null ? value.type() : null; - return ((DebugProcessImpl)context.getDebugProcess()).getDefaultRenderer(type); - } - public PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException { - return getDefaultRenderer(((ValueDescriptor) node.getDescriptor()).getValue(), context).getChildValueExpression(node, context); + final Value parentValue = ((ValueDescriptor)node.getParent().getDescriptor()).getValue(); + return getDefaultRenderer(parentValue, context).getChildValueExpression(node, context); } public boolean isExpandable(Value value, EvaluationContext evaluationContext, NodeDescriptor parentDescriptor) { return getDefaultRenderer(value, evaluationContext).isExpandable(value, evaluationContext, parentDescriptor); } + private static NodeRenderer getDefaultRenderer(Value value, StackFrameContext context) { + final Type type = (value != null) ? value.type() : null; + return ((DebugProcessImpl)context.getDebugProcess()).getDefaultRenderer(type); + } + public void readExternal(Element element) throws InvalidDataException { super.readExternal(element); final String value = JDOMExternalizerUtil.readField(element, "USE_CLASS_FILTERS");