diff --git a/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenBuilder.java b/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenBuilder.java index 106f54720a08..301e00c88efd 100644 --- a/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenBuilder.java +++ b/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenBuilder.java @@ -4,19 +4,12 @@ import com.intellij.debugger.ui.tree.*; import java.util.List; -/** - * Created by IntelliJ IDEA. - * User: lex - * Date: Mar 17, 2004 - * Time: 7:47:10 PM - * To change this template use File | Settings | File Templates. - */ public interface ChildrenBuilder { - NodeDescriptorFactory getDescriptorManager(); - NodeManager getNodeManager (); + NodeDescriptorFactory getDescriptorManager(); + + NodeManager getNodeManager(); - ValueDescriptor getParentDescriptor (); + ValueDescriptor getParentDescriptor(); void setChildren(List children); - } diff --git a/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenRenderer.java b/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenRenderer.java index 4f77af8e1002..7947e1ccbc33 100644 --- a/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenRenderer.java +++ b/openapi/src/com/intellij/debugger/ui/tree/render/ChildrenRenderer.java @@ -11,11 +11,6 @@ import com.intellij.debugger.DebuggerContext; import com.sun.jdi.Value; import com.sun.tools.corba.se.idl.constExpr.EvaluationException; -/** - * User: lex - * Date: Sep 20, 2003 - * Time: 10:12:01 PM - */ public interface ChildrenRenderer extends Renderer { ChildrenRenderer clone(); @@ -27,13 +22,13 @@ public interface ChildrenRenderer extends Renderer { * + node * + ... * - * function is invoked for the renderer in parenNode - * returns expression that evaluates node - * use 'this' to refer expression that evaluate parentNode - @param node - + * is invoked on the renderer of the parentNode + * @param node a child node + * @return expression that evaluates the child node. + * Use 'this' to refer the expression that evaluates this (parent) node * @param context */ - PsiExpression getChildrenValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException; + PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException; boolean isExpandable(Value value, EvaluationContext evaluationContext, NodeDescriptor parentDescriptor); } diff --git a/openapi/src/com/intellij/debugger/ui/tree/render/CompoundNodeRenderer.java b/openapi/src/com/intellij/debugger/ui/tree/render/CompoundNodeRenderer.java index 95fc50a8b8cd..55c4b53edfa6 100644 --- a/openapi/src/com/intellij/debugger/ui/tree/render/CompoundNodeRenderer.java +++ b/openapi/src/com/intellij/debugger/ui/tree/render/CompoundNodeRenderer.java @@ -30,10 +30,10 @@ public class CompoundNodeRenderer implements NodeRenderer{ public static final String UNIQUE_ID = "CompoundNodeRenderer"; private String myName; - private RendererProvider myRendererProvider; + private RendererProvider myRendererProvider; - protected ValueLabelRenderer myLabelRenderer; - protected ChildrenRenderer myChildrenRenderer; + protected ValueLabelRenderer myLabelRenderer; + protected ChildrenRenderer myChildrenRenderer; public CompoundNodeRenderer(RendererProvider provider, String name, ValueLabelRenderer labelRenderer, ChildrenRenderer childrenRenderer) { myRendererProvider = provider; @@ -75,8 +75,8 @@ public class CompoundNodeRenderer implements NodeRenderer{ getChildrenRenderer().buildChildren(value, builder, evaluationContext); } - public PsiExpression getChildrenValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException { - return getChildrenRenderer().getChildrenValueExpression(node, context); + public PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException { + return getChildrenRenderer().getChildValueExpression(node, context); } public boolean isExpandable(Value value, EvaluationContext evaluationContext, NodeDescriptor parentDescriptor) { @@ -109,7 +109,9 @@ public class CompoundNodeRenderer implements NodeRenderer{ public void readExternal(Element element) throws InvalidDataException { myName = element.getAttributeValue("NAME"); - if(myName == null) myName = ""; + if(myName == null) { + myName = ""; + } List children = element.getChildren(); myLabelRenderer = (ValueLabelRenderer) NodeRendererExternalizer.readRenderer(children.get(0)); myChildrenRenderer = (ChildrenRenderer) NodeRendererExternalizer.readRenderer(children.get(1)); diff --git a/openapi/src/com/intellij/debugger/ui/tree/render/NodeRenderer.java b/openapi/src/com/intellij/debugger/ui/tree/render/NodeRenderer.java index de61f37d676e..4d6c50f1b577 100644 --- a/openapi/src/com/intellij/debugger/ui/tree/render/NodeRenderer.java +++ b/openapi/src/com/intellij/debugger/ui/tree/render/NodeRenderer.java @@ -1,7 +1,5 @@ package com.intellij.debugger.ui.tree.render; -import com.intellij.openapi.util.JDOMExternalizable; - /* * Copyright (c) 2000-2004 by JetBrains s.r.o. All Rights Reserved. * Use is subject to license terms. diff --git a/openapi/src/com/intellij/debugger/ui/tree/render/Renderer.java b/openapi/src/com/intellij/debugger/ui/tree/render/Renderer.java index b501492d798c..9785fbd11a7d 100644 --- a/openapi/src/com/intellij/debugger/ui/tree/render/Renderer.java +++ b/openapi/src/com/intellij/debugger/ui/tree/render/Renderer.java @@ -4,11 +4,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.JDOMExternalizable; import com.sun.jdi.Type; -/** - * User: lex - * Date: Nov 19, 2003 - * Time: 5:39:53 PM - */ public interface Renderer extends Cloneable, JDOMExternalizable { RendererProvider getRendererProvider(); @@ -17,9 +12,8 @@ public interface Renderer extends Cloneable, JDOMExternalizable { /*** * Checks whether this renderer is apllicable to this value * @param type - * @return */ - public boolean isApplicable(Type type); + public boolean isApplicable(Type type); public Object clone() throws CloneNotSupportedException; } diff --git a/source/com/intellij/debugger/ui/impl/tree/TreeBuilder.java b/source/com/intellij/debugger/ui/impl/tree/TreeBuilder.java index 4a27ac98df6e..c40c348c4eb9 100644 --- a/source/com/intellij/debugger/ui/impl/tree/TreeBuilder.java +++ b/source/com/intellij/debugger/ui/impl/tree/TreeBuilder.java @@ -27,7 +27,7 @@ public abstract class TreeBuilder implements TreeModel { return userObject; } - protected abstract void buildChildren(TreeBuilderNode node); + protected abstract void buildChildren(TreeBuilderNode node); protected abstract boolean isExpandable (TreeBuilderNode node); public void setRoot(TreeBuilderNode root) { diff --git a/source/com/intellij/debugger/ui/impl/watch/DebuggerTree.java b/source/com/intellij/debugger/ui/impl/watch/DebuggerTree.java index affe5d1303cc..e0deccb772eb 100644 --- a/source/com/intellij/debugger/ui/impl/watch/DebuggerTree.java +++ b/source/com/intellij/debugger/ui/impl/watch/DebuggerTree.java @@ -21,6 +21,7 @@ import com.intellij.debugger.ui.impl.DebuggerTreeBase; import com.intellij.debugger.ui.impl.tree.TreeBuilder; import com.intellij.debugger.ui.impl.tree.TreeBuilderNode; import com.intellij.debugger.ui.tree.DebuggerTreeNode; +import com.intellij.debugger.ui.tree.NodeDescriptor; import com.intellij.debugger.ui.tree.render.ChildrenBuilder; import com.intellij.debugger.ui.tree.render.NodeRendererSettings; import com.intellij.debugger.ui.tree.render.NodeRendererSettingsListener; @@ -66,8 +67,11 @@ public abstract class DebuggerTree extends DebuggerTreeBase implements DataProvi myDescriptorManager = new NodeManagerImpl(project, this); TreeBuilder model = new TreeBuilder(this) { protected void buildChildren(TreeBuilderNode node) { - if (((DebuggerTreeNodeImpl)node).getDescriptor() instanceof DefaultNodeDescriptor) return; - buildNode((DebuggerTreeNodeImpl)node); + final DebuggerTreeNodeImpl debuggerTreeNode = (DebuggerTreeNodeImpl)node; + if (debuggerTreeNode.getDescriptor() instanceof DefaultNodeDescriptor) { + return; + } + buildNode(debuggerTreeNode); } protected boolean isExpandable(TreeBuilderNode builderNode) { @@ -145,7 +149,9 @@ public abstract class DebuggerTree extends DebuggerTreeBase implements DataProvi private void buildNode(final DebuggerTreeNodeImpl node) { - if (node == null || node.getDescriptor() == null) return; + if (node == null || node.getDescriptor() == null) { + return; + } BuildNodeCommand builder = getBuildNodeCommand(node); builder.getNode().add(myDescriptorManager.createMessageNode(MessageDescriptor.EVALUATING)); @@ -526,28 +532,32 @@ public abstract class DebuggerTree extends DebuggerTreeBase implements DataProvi public void threadAction() { try { - StackFrameDescriptorImpl stackDescriptor = (StackFrameDescriptorImpl)getNode().getDescriptor(); - StackFrameProxyImpl frame = stackDescriptor.getStackFrame(); - if(!getDebuggerContext().getDebugProcess().getSuspendManager().isSuspended(frame.threadProxy())) return; + final StackFrameDescriptorImpl stackDescriptor = (StackFrameDescriptorImpl)getNode().getDescriptor(); + final StackFrameProxyImpl frame = stackDescriptor.getStackFrame(); + final DebuggerContextImpl debuggerContext = getDebuggerContext(); + if(!debuggerContext.getDebugProcess().getSuspendManager().isSuspended(frame.threadProxy())) { + return; + } - LOG.assertTrue(frame.threadProxy().isSuspended()); + final ObjectReference thisObjectReference = frame.thisObject(); - ObjectReference thisObjectReference = frame.thisObject(); - - EvaluationContextImpl evaluationContext = getDebuggerContext().createEvaluationContext(); + final EvaluationContextImpl evaluationContext = debuggerContext.createEvaluationContext(); + final NodeDescriptor descriptor; if (thisObjectReference != null) { - myChildren.add(myDescriptorManager.createNode(myDescriptorManager.getThisDescriptor(stackDescriptor, thisObjectReference), evaluationContext)); + descriptor = myDescriptorManager.getThisDescriptor(stackDescriptor, thisObjectReference); } else { - ReferenceType type = frame.location().method().declaringType(); - myChildren.add(myDescriptorManager.createNode(myDescriptorManager.getStaticDescriptor(stackDescriptor, type), evaluationContext)); + final ReferenceType type = frame.location().method().declaringType(); + descriptor = myDescriptorManager.getStaticDescriptor(stackDescriptor, type); } + myChildren.add(myDescriptorManager.createNode(descriptor, evaluationContext)); try { for (Iterator iterator = frame.visibleVariables().iterator(); iterator.hasNext();) { - LocalVariableProxyImpl local = iterator.next(); - - myChildren.add(myDescriptorManager.createNode(myDescriptorManager.getLocalVariableDescriptor(stackDescriptor, local), evaluationContext)); + final LocalVariableProxyImpl local = iterator.next(); + final LocalVariableDescriptorImpl localVariableDescriptor = myDescriptorManager.getLocalVariableDescriptor(stackDescriptor, local); + final DebuggerTreeNodeImpl variableNode = myDescriptorManager.createNode(localVariableDescriptor, evaluationContext); + myChildren.add(variableNode); } } catch (EvaluateException e) { diff --git a/source/com/intellij/debugger/ui/impl/watch/DebuggerTreeNodeImpl.java b/source/com/intellij/debugger/ui/impl/watch/DebuggerTreeNodeImpl.java index d16f281705e4..4f6d3ea48681 100644 --- a/source/com/intellij/debugger/ui/impl/watch/DebuggerTreeNodeImpl.java +++ b/source/com/intellij/debugger/ui/impl/watch/DebuggerTreeNodeImpl.java @@ -113,39 +113,37 @@ public class DebuggerTreeNodeImpl extends TreeBuilderNode implements DebuggerTre } labelChanged(); - if(!labelOnly) childrenChanged(); + if(!labelOnly) { + childrenChanged(); + } } public void calcLabel() { final DebuggerContextImpl context = getTree().getDebuggerContext(); - update( - context, - new Runnable() { - public void run() { - getDescriptor().updateRepresentation(context.createEvaluationContext(), new DescriptorLabelListener() { - public void labelChanged() { - updateCaches(); - DebuggerTreeNodeImpl.this.labelChanged(); - } - }); - } - }, true); + update(context, new Runnable() { + public void run() { + getDescriptor().updateRepresentation(context.createEvaluationContext(), new DescriptorLabelListener() { + public void labelChanged() { + updateCaches(); + DebuggerTreeNodeImpl.this.labelChanged(); + } + }); + } + }, true); } public void calcRepresentation() { final DebuggerContextImpl context = getTree().getDebuggerContext(); - update( - context, - new Runnable() { - public void run() { - getDescriptor().updateRepresentation(context.createEvaluationContext(), new DescriptorLabelListener() { - public void labelChanged() { - updateCaches(); - DebuggerTreeNodeImpl.this.labelChanged(); - } - }); - } - }, false); + update(context, new Runnable() { + public void run() { + getDescriptor().updateRepresentation(context.createEvaluationContext(), new DescriptorLabelListener() { + public void labelChanged() { + updateCaches(); + DebuggerTreeNodeImpl.this.labelChanged(); + } + }); + } + }, false); } public void calcValue() { diff --git a/source/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java b/source/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java index 021d28fe6c55..4a6679d2c605 100644 --- a/source/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java +++ b/source/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java @@ -52,12 +52,18 @@ public class FieldDescriptorImpl extends ValueDescriptorImpl implements FieldDes // this field actually mirrors a local variable in the outer class String varName = fieldName.substring(fieldName.lastIndexOf('$') + 1); PsiElement element = PositionUtil.getContextElement(context); - if (element == null) return null; + if (element == null) { + return null; + } PsiClass aClass = PsiTreeUtil.getParentOfType(element, PsiClass.class, false); - if (aClass == null) return null; + if (aClass == null) { + return null; + } aClass = (PsiClass) aClass.getNavigationElement(); PsiVariable psiVariable = psiManager.getResolveHelper().resolveReferencedVariable(varName, aClass); - if (psiVariable == null) return null; + if (psiVariable == null) { + return null; + } return SourcePosition.createFromOffset(psiVariable.getContainingFile(), psiVariable.getTextOffset()); } else { diff --git a/source/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java b/source/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java index bed5f18bd8f2..913a0f5d2a11 100644 --- a/source/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java +++ b/source/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java @@ -189,8 +189,9 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements public NodeRenderer getRenderer (DebugProcessImpl debugProcess) { DebuggerManagerThreadImpl.assertIsManagerThread(); Type type = getType(); - if(type != null && myRenderer != null && myRenderer.isApplicable(type)) + if(type != null && myRenderer != null && myRenderer.isApplicable(type)) { return myRenderer; + } myAutoRenderer = debugProcess.getNodeRendererManager().getAutoRenderer(this); return myAutoRenderer; @@ -210,7 +211,7 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements PsiExpression parentEvaluation = vDescriptor.getTreeEvaluation((DebuggerTreeNodeImpl)debuggerTreeNode.getParent(), context); return DebuggerTreeNodeExpression.substituteThis( - vDescriptor.getRenderer(context.getDebugProcess()).getChildrenValueExpression(debuggerTreeNode, context), + vDescriptor.getRenderer(context.getDebugProcess()).getChildValueExpression(debuggerTreeNode, context), parentEvaluation, vDescriptor.getValue()); } else { diff --git a/source/com/intellij/debugger/ui/impl/watch/render/ArrayRenderer.java b/source/com/intellij/debugger/ui/impl/watch/render/ArrayRenderer.java index 86c0787d732b..8572d07adf17 100644 --- a/source/com/intellij/debugger/ui/impl/watch/render/ArrayRenderer.java +++ b/source/com/intellij/debugger/ui/impl/watch/render/ArrayRenderer.java @@ -159,7 +159,7 @@ public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cl DefaultJDOMExternalizer.writeExternal(this, element); } - public PsiExpression getChildrenValueExpression(DebuggerTreeNode node, DebuggerContext context) { + public PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) { LOG.assertTrue(node.getDescriptor() instanceof ArrayElementDescriptorImpl, node.getDescriptor().getClass().getName()); ArrayElementDescriptorImpl descriptor = (ArrayElementDescriptorImpl)node.getDescriptor(); diff --git a/source/com/intellij/debugger/ui/impl/watch/render/ClassRenderer.java b/source/com/intellij/debugger/ui/impl/watch/render/ClassRenderer.java index 86ed120adbac..0033473017a6 100644 --- a/source/com/intellij/debugger/ui/impl/watch/render/ClassRenderer.java +++ b/source/com/intellij/debugger/ui/impl/watch/render/ClassRenderer.java @@ -79,7 +79,8 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{ } else if(value == null) { return "null"; - } else { + } + else { return "undefined"; } } @@ -87,7 +88,7 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{ public void buildChildren(final Value value, final ChildrenBuilder builder, final EvaluationContext evaluationContext) { DebuggerManagerThreadImpl.assertIsManagerThread(); final ValueDescriptorImpl parentDescriptor = (ValueDescriptorImpl)builder.getParentDescriptor(); - final NodeManager nodeManager = builder.getNodeManager(); + final NodeManager nodeManager = builder.getNodeManager(); final NodeDescriptorFactory nodeDescriptorFactory = builder.getDescriptorManager(); List children = new ArrayList(); @@ -95,18 +96,21 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{ final ObjectReference objRef = (ObjectReference)value; final ReferenceType refType = objRef.referenceType(); // default ObjectReference processing - List fields = refType.allFields(); + final List fields = refType.allFields(); if (fields.size() > 0) { for (Iterator it = fields.iterator(); it.hasNext();) { Field jdiField = (Field)it.next(); - if (!shouldDisplay(jdiField)) continue; + if (!shouldDisplay(jdiField)) { + continue; + } children.add(nodeManager.createNode(nodeDescriptorFactory.getFieldDescriptor(parentDescriptor, objRef, jdiField), evaluationContext)); } if(SORT_ASCENDING) { Collections.sort(children, NodeManagerImpl.getNodeComparator()); } - } else { + } + else { children.add(nodeManager.createMessageNode(MessageDescriptor.CLASS_HAS_NO_FIELDS.getLabel())); } } @@ -146,7 +150,7 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{ DefaultJDOMExternalizer.writeExternal(this, element); } - public PsiExpression getChildrenValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException { + public PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) throws EvaluateException { FieldDescriptor fieldDescriptor = (FieldDescriptor)node.getDescriptor(); PsiElementFactory elementFactory = PsiManager.getInstance(node.getProject()).getElementFactory(); @@ -162,7 +166,8 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{ try { if(value instanceof ArrayReference) { return ((ArrayReference)value).length() > 0; - } else if(value instanceof ObjectReference) { + } + else if(value instanceof ObjectReference) { return ((ObjectReference)value).referenceType().allFields().size() > 0; } } diff --git a/source/com/intellij/debugger/ui/impl/watch/render/PrimitiveRenderer.java b/source/com/intellij/debugger/ui/impl/watch/render/PrimitiveRenderer.java index 5a465dbc0fd3..8655397c76bc 100644 --- a/source/com/intellij/debugger/ui/impl/watch/render/PrimitiveRenderer.java +++ b/source/com/intellij/debugger/ui/impl/watch/render/PrimitiveRenderer.java @@ -66,7 +66,8 @@ public class PrimitiveRenderer implements NodeRenderer, Cloneable { Value value = valueDescriptor.getValue(); if(value == null) { return "null"; - } else if (value instanceof PrimitiveValue) { + } + else if (value instanceof PrimitiveValue) { StringBuffer buf = new StringBuffer(16); if (value instanceof CharValue) { buf.append("'"); @@ -91,7 +92,8 @@ public class PrimitiveRenderer implements NodeRenderer, Cloneable { buf.append(DebuggerUtilsEx.translateStringValue(value.toString())); } return buf.toString(); - } else { + } + else { return "undefined"; } } @@ -116,7 +118,7 @@ public class PrimitiveRenderer implements NodeRenderer, Cloneable { return this; } - public PsiExpression getChildrenValueExpression(DebuggerTreeNode node, DebuggerContext context) { + public PsiExpression getChildValueExpression(DebuggerTreeNode node, DebuggerContext context) { LOG.assertTrue(false); return null; }