correctly build child expression for evaluation dialog

This commit is contained in:
Eugene Zhuravlev
2005-03-03 19:33:48 +03:00
parent ad15dc610e
commit 3b4c357bc0
2 changed files with 12 additions and 8 deletions
@@ -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() {
@@ -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");