diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/ColorObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/ColorObjectRenderer.java index 2e2a01ae8be5..420638ed0c5e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/ColorObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ColorObjectRenderer.java @@ -18,7 +18,6 @@ package com.intellij.debugger.settings; import com.intellij.debugger.engine.evaluation.EvaluateException; import com.intellij.debugger.engine.evaluation.EvaluationContext; import com.intellij.debugger.ui.tree.ValueDescriptor; -import com.intellij.debugger.ui.tree.render.CompoundReferenceRenderer; import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; import com.intellij.util.ui.ColorIcon; import com.sun.jdi.*; @@ -29,23 +28,13 @@ import java.awt.*; /** * Created by Egor on 04.10.2014. */ -class ColorObjectRenderer extends CompoundReferenceRenderer { - +class ColorObjectRenderer extends ToStringBasedRenderer { public ColorObjectRenderer(final NodeRendererSettings rendererSettings) { super(rendererSettings, "Color", null, null); setClassName("java.awt.Color"); setEnabled(true); } - public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws - EvaluateException { - String res = calcToStringLabel(descriptor, evaluationContext, listener); - if (res != null) { - return res; - } - return super.calcLabel(descriptor, evaluationContext, listener); - } - public Icon calcValueIcon(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws EvaluateException { final Value value = descriptor.getValue(); if (value instanceof ObjectReference) { diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java index fd6b3474d178..427ee3f49368 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java @@ -22,7 +22,6 @@ import com.intellij.debugger.engine.evaluation.EvaluationContext; import com.intellij.debugger.engine.evaluation.EvaluationContextImpl; import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl; import com.intellij.debugger.ui.tree.ValueDescriptor; -import com.intellij.debugger.ui.tree.render.CompoundReferenceRenderer; import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; import com.intellij.icons.AllIcons; import com.intellij.xdebugger.frame.XFullValueEvaluator; @@ -33,23 +32,13 @@ import javax.swing.*; /** * Created by Egor on 04.10.2014. */ -class IconObjectRenderer extends CompoundReferenceRenderer implements FullValueEvaluatorProvider { - +class IconObjectRenderer extends ToStringBasedRenderer implements FullValueEvaluatorProvider { public IconObjectRenderer(final NodeRendererSettings rendererSettings) { super(rendererSettings, "Icon", null, null); setClassName("javax.swing.Icon"); setEnabled(true); } - public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws - EvaluateException { - String res = calcToStringLabel(descriptor, evaluationContext, listener); - if (res != null) { - return res; - } - return super.calcLabel(descriptor, evaluationContext, listener); - } - @Override public Icon calcValueIcon(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws EvaluateException { diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java index c4ab8a7dd9a8..93a173b6a6c7 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java @@ -22,9 +22,6 @@ import com.intellij.debugger.engine.evaluation.EvaluateException; import com.intellij.debugger.engine.evaluation.EvaluationContext; import com.intellij.debugger.engine.evaluation.EvaluationContextImpl; import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl; -import com.intellij.debugger.ui.tree.ValueDescriptor; -import com.intellij.debugger.ui.tree.render.CompoundReferenceRenderer; -import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; import com.intellij.rt.debugger.ImageSerializer; import com.intellij.xdebugger.frame.XFullValueEvaluator; import com.sun.jdi.*; @@ -41,22 +38,13 @@ import java.util.List; /** * Created by Egor on 04.10.2014. */ -class ImageObjectRenderer extends CompoundReferenceRenderer implements FullValueEvaluatorProvider { +class ImageObjectRenderer extends ToStringBasedRenderer implements FullValueEvaluatorProvider { public ImageObjectRenderer(final NodeRendererSettings rendererSettings) { super(rendererSettings, "Image", null, null); setClassName("java.awt.Image"); setEnabled(true); } - public String calcLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws - EvaluateException { - String res = calcToStringLabel(descriptor, evaluationContext, listener); - if (res != null) { - return res; - } - return super.calcLabel(descriptor, evaluationContext, listener); - } - @NotNull @Override public XFullValueEvaluator getFullValueEvaluator(final EvaluationContextImpl evaluationContext, final ValueDescriptorImpl valueDescriptor) { diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/ToStringBasedRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/ToStringBasedRenderer.java new file mode 100644 index 000000000000..9db4db739fb9 --- /dev/null +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ToStringBasedRenderer.java @@ -0,0 +1,54 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.debugger.settings; + +import com.intellij.debugger.DebuggerManagerEx; +import com.intellij.debugger.engine.evaluation.EvaluateException; +import com.intellij.debugger.engine.evaluation.EvaluationContext; +import com.intellij.debugger.ui.tree.ValueDescriptor; +import com.intellij.debugger.ui.tree.render.*; + +/** + * @author egor + */ +public abstract class ToStringBasedRenderer extends CompoundReferenceRenderer { + public ToStringBasedRenderer(NodeRendererSettings rendererSettings, + String name, + ValueLabelRenderer labelRenderer, + ChildrenRenderer childrenRenderer) { + super(rendererSettings, name, labelRenderer, childrenRenderer); + } + + public String calcLabel(ValueDescriptor descriptor, + EvaluationContext evaluationContext, + DescriptorLabelListener listener) throws EvaluateException { + String res = calcToStringLabel(descriptor, evaluationContext, listener); + if (res != null) { + return res; + } + return super.calcLabel(descriptor, evaluationContext, listener); + } + + protected String calcToStringLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) + throws EvaluateException { + final ToStringRenderer toStringRenderer = myRendererSettings.getToStringRenderer(); + if (toStringRenderer.isEnabled() && DebuggerManagerEx.getInstanceEx(evaluationContext.getProject()).getContext().isEvaluationPossible()) { + return toStringRenderer.calcLabel(descriptor, evaluationContext, listener); + } + return null; + } + +} diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java index 9522e7150f4b..4cb8a56021f2 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CompoundReferenceRenderer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,8 @@ */ package com.intellij.debugger.ui.tree.render; -import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.engine.DebuggerUtils; -import com.intellij.debugger.engine.evaluation.EvaluateException; -import com.intellij.debugger.engine.evaluation.EvaluationContext; import com.intellij.debugger.settings.NodeRendererSettings; -import com.intellij.debugger.ui.tree.ValueDescriptor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.CommonClassNames; import com.sun.jdi.ReferenceType; @@ -110,15 +106,6 @@ public class CompoundReferenceRenderer extends CompoundNodeRenderer{ } } - protected String calcToStringLabel(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) - throws EvaluateException { - final ToStringRenderer toStringRenderer = myRendererSettings.getToStringRenderer(); - if (toStringRenderer.isEnabled() && DebuggerManagerEx.getInstanceEx(evaluationContext.getProject()).getContext().isEvaluationPossible()) { - return toStringRenderer.calcLabel(descriptor, evaluationContext, listener); - } - return null; - } - public @NotNull String getClassName() { return myProperties.getClassName(); }