(no message)

This commit is contained in:
Eugene Zhuravlev
2005-02-10 21:58:46 +03:00
parent 4f83968b99
commit 19b87f93f6
7 changed files with 29 additions and 58 deletions
@@ -6,7 +6,6 @@ import com.intellij.debugger.engine.evaluation.EvaluationContext;
import com.intellij.debugger.ui.tree.DebuggerTreeNode;
import com.intellij.debugger.ui.tree.NodeDescriptor;
import com.intellij.debugger.ui.tree.ValueDescriptor;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.psi.PsiExpression;
@@ -34,7 +33,7 @@ public class CompoundNodeRenderer extends NodeRendererImpl{
myChildrenRenderer = childrenRenderer;
}
public NodeRenderer clone() {
public Renderer clone() {
CompoundNodeRenderer renderer = (CompoundNodeRenderer)super.clone();
renderer.myLabelRenderer = myLabelRenderer != null ? (ValueLabelRenderer)myLabelRenderer.clone() : null;
renderer.myChildrenRenderer = myChildrenRenderer != null ? (ChildrenRenderer)myChildrenRenderer.clone() : null;
@@ -90,12 +89,8 @@ public class CompoundNodeRenderer extends NodeRendererImpl{
public void writeExternal(Element element) throws WriteExternalException {
super.writeExternal(element);
final Element labelRendererElement = NodeRendererExternalizer.writeRenderer(myLabelRenderer);
if (labelRendererElement != null) {
element.addContent(labelRendererElement);
}
element.addContent(labelRendererElement);
final Element childrenRendererElement = NodeRendererExternalizer.writeRenderer(myChildrenRenderer);
if (childrenRendererElement != null) {
element.addContent(childrenRendererElement);
}
element.addContent(childrenRendererElement);
}
}
@@ -1,14 +1,11 @@
package com.intellij.debugger.ui.tree.render;
import com.intellij.openapi.util.JDOMExternalizable;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
import java.util.List;
import org.jdom.Element;
/*
* Copyright (c) 2000-2004 by JetBrains s.r.o. All Rights Reserved.
* Use is subject to license terms.
@@ -4,6 +4,7 @@ import com.intellij.debugger.impl.DebuggerUtilsEx;
import com.intellij.debugger.ui.impl.watch.render.ArrayRenderer;
import com.intellij.debugger.ui.impl.watch.render.ClassRenderer;
import com.intellij.debugger.ui.impl.watch.render.PrimitiveRenderer;
import com.intellij.debugger.ui.impl.watch.render.DefaultRendererProvider;
import com.intellij.debugger.ui.tree.render.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.NamedJDOMExternalizable;
@@ -25,25 +26,14 @@ public class NodeRendererSettingsImpl extends NodeRendererSettings implements Cl
private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.settings.NodeRendererSettingsImpl");
private static final String AUTO_NODE = "node";
private static final int VERSION = 2;
private static final int VERSION = 3;
private EventDispatcher<NodeRendererSettingsListener> myDispatcher = EventDispatcher.create(NodeRendererSettingsListener.class);
private List<AutoRendererNode> myRepresentationNodes = new ArrayList<AutoRendererNode>();
private PrimitiveRenderer myPrimitiveRenderer = new PrimitiveRenderer();
private final DefaultRendererProvider myDefaultRendererProvider;
private ArrayRenderer myArrayRenderer = new ArrayRenderer() {
public void setClassName(String className) {
LOG.assertTrue(this != myArrayRenderer, "Cannot change default renderer");
}
};
private ClassRenderer myClassRenderer = new ClassRenderer() {
public void setClassName(String name) {
LOG.assertTrue(this != myClassRenderer, "Cannot change default renderer");
}
};
public NodeRendererSettingsImpl() {
public NodeRendererSettingsImpl(DefaultRendererProvider defaultRendererProvider) {
myDefaultRendererProvider = defaultRendererProvider;
}
public String getComponentName() {
@@ -74,10 +64,6 @@ public class NodeRendererSettingsImpl extends NodeRendererSettings implements Cl
result.addNode(autoRendererNode.clone());
}
result.myPrimitiveRenderer = myPrimitiveRenderer.clone();
result.myArrayRenderer = myArrayRenderer.clone();
result.myClassRenderer = myClassRenderer.clone();
return result;
}
@@ -155,17 +141,17 @@ public class NodeRendererSettingsImpl extends NodeRendererSettings implements Cl
AutoRendererNode autoRendererNode = iterator.next();
result.add(autoRendererNode.getRenderer());
}
result.add(getArrayRenderer());
result.add(getClassRenderer());
result.add(getPrimitiveRenderer());
result.add(myDefaultRendererProvider.getArrayRenderer());
result.add(myDefaultRendererProvider.getClassRenderer());
result.add(myDefaultRendererProvider.getPrimitiveRenderer());
return result;
}
public boolean isDefault(Renderer renderer) {
return renderer == getArrayRenderer() ||
renderer == getClassRenderer() ||
renderer == getPrimitiveRenderer();
return renderer == myDefaultRendererProvider.getArrayRenderer() ||
renderer == myDefaultRendererProvider.getClassRenderer() ||
renderer == myDefaultRendererProvider.getPrimitiveRenderer();
}
public List<AutoRendererNode> getAutoNodes() {
@@ -202,15 +188,15 @@ public class NodeRendererSettingsImpl extends NodeRendererSettings implements Cl
}
public PrimitiveRenderer getPrimitiveRenderer() {
return myPrimitiveRenderer;
return myDefaultRendererProvider.getPrimitiveRenderer();
}
public ArrayRenderer getArrayRenderer() {
return myArrayRenderer;
return myDefaultRendererProvider.getArrayRenderer();
}
public ClassRenderer getClassRenderer() {
return myClassRenderer;
return myDefaultRendererProvider.getClassRenderer();
}
public void fireRenderersChanged() {
@@ -8,7 +8,6 @@ import com.intellij.debugger.engine.evaluation.EvaluateException;
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
import com.intellij.debugger.impl.DebuggerContextImpl;
import com.intellij.debugger.ui.tree.ValueDescriptor;
import com.intellij.debugger.ui.tree.NodeDescriptor;
import com.intellij.debugger.ui.tree.render.DescriptorLabelListener;
import com.intellij.debugger.ui.tree.render.NodeRenderer;
import com.intellij.openapi.application.ApplicationManager;
@@ -177,7 +176,7 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
super.displayAs(descriptor);
}
public NodeRenderer getLastRenderer() {
public com.intellij.debugger.ui.tree.render.Renderer getLastRenderer() {
return myRenderer != null ? myRenderer: myAutoRenderer;
}
@@ -206,9 +205,9 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
//returns expression that evaluates tree to this descriptor
public PsiExpression getTreeEvaluation(DebuggerTreeNodeImpl debuggerTreeNode, DebuggerContextImpl context) throws EvaluateException {
if(debuggerTreeNode.getParent() != null && debuggerTreeNode.getParent().getDescriptor() instanceof ValueDescriptor) {
NodeDescriptorImpl descriptor = ((DebuggerTreeNodeImpl)debuggerTreeNode.getParent()).getDescriptor();
NodeDescriptorImpl descriptor = debuggerTreeNode.getParent().getDescriptor();
ValueDescriptorImpl vDescriptor = ((ValueDescriptorImpl)descriptor);
PsiExpression parentEvaluation = vDescriptor.getTreeEvaluation((DebuggerTreeNodeImpl)debuggerTreeNode.getParent(), context);
PsiExpression parentEvaluation = vDescriptor.getTreeEvaluation(debuggerTreeNode.getParent(), context);
return DebuggerTreeNodeExpression.substituteThis(
vDescriptor.getRenderer(context.getDebugProcess()).getChildValueExpression(debuggerTreeNode, context),
@@ -13,10 +13,7 @@ import com.intellij.debugger.ui.tree.DebuggerTreeNode;
import com.intellij.debugger.ui.tree.NodeDescriptor;
import com.intellij.debugger.ui.tree.NodeDescriptorFactory;
import com.intellij.debugger.ui.tree.ValueDescriptor;
import com.intellij.debugger.ui.tree.render.ChildrenBuilder;
import com.intellij.debugger.ui.tree.render.DescriptorLabelListener;
import com.intellij.debugger.ui.tree.render.NodeRenderer;
import com.intellij.debugger.ui.tree.render.ReferenceRenderer;
import com.intellij.debugger.ui.tree.render.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.DefaultJDOMExternalizer;
import com.intellij.openapi.util.InvalidDataException;
@@ -40,7 +37,7 @@ import java.util.ListIterator;
* Date: Sep 18, 2003
* Time: 3:07:19 PM
*/
public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cloneable{
public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer{
private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.impl.watch.render.ArrayRenderer");
public static final String UNIQUE_ID = "ArrayRenderer";
@@ -50,8 +47,8 @@ public class ArrayRenderer extends ReferenceRenderer implements NodeRenderer, Cl
public int ENTRIES_LIMIT = 100;
private final static String MORE_ELEMENTS = "...";
public ArrayRenderer() {
super(DefaultRendererProvider.getInstance(), UNIQUE_ID);
public ArrayRenderer(RendererProvider provider) {
super(provider, UNIQUE_ID);
}
public String getName() {
@@ -9,10 +9,7 @@ import com.intellij.debugger.ui.impl.watch.MessageDescriptor;
import com.intellij.debugger.ui.impl.watch.NodeManagerImpl;
import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl;
import com.intellij.debugger.ui.tree.*;
import com.intellij.debugger.ui.tree.render.ChildrenBuilder;
import com.intellij.debugger.ui.tree.render.DescriptorLabelListener;
import com.intellij.debugger.ui.tree.render.NodeRenderer;
import com.intellij.debugger.ui.tree.render.ReferenceRenderer;
import com.intellij.debugger.ui.tree.render.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.DefaultJDOMExternalizer;
import com.intellij.openapi.util.InvalidDataException;
@@ -45,8 +42,8 @@ public class ClassRenderer extends ReferenceRenderer implements NodeRenderer{
public boolean SHOW_STATIC_FINAL = false;
public boolean CHILDREN_PHYSICAL = true;
public ClassRenderer() {
super(DefaultRendererProvider.getInstance(), UNIQUE_ID);
public ClassRenderer(RendererProvider provider) {
super(provider, UNIQUE_ID);
}
public ClassRenderer clone() {
@@ -28,8 +28,8 @@ public class PrimitiveRenderer extends NodeRendererImpl {
private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.impl.watch.render.PrimitiveRenderer");
public PrimitiveRenderer() {
super(DefaultRendererProvider.getInstance(), UNIQUE_ID);
public PrimitiveRenderer(final RendererProvider provider) {
super(provider, UNIQUE_ID);
setName("Default");
}