From eadac1cfe3c6f9ad93dcc02137ba2ee64aaf8c81 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 2 Nov 2016 11:39:47 +0100 Subject: [PATCH] IDEA-162835 Debugger Data Views toString setting is not persisted --- .../ui/tree/render/BasicRendererProperties.java | 13 +++++++++---- .../debugger/ui/tree/render/NodeRendererImpl.java | 8 +++++++- .../debugger/ui/tree/render/ToStringRenderer.java | 2 +- .../debugger/ui/tree/render/TypeRenderer.java | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BasicRendererProperties.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BasicRendererProperties.java index 1550930374ad..b6a248d6d809 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BasicRendererProperties.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BasicRendererProperties.java @@ -19,6 +19,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.JDOMExternalizerUtil; import org.jdom.Element; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; public final class BasicRendererProperties implements Cloneable { private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.tree.render.BasicRendererProperties"); @@ -35,6 +36,12 @@ public final class BasicRendererProperties implements Cloneable { private static final @NonNls String SHOW_TYPE_OPTION = "SHOW_TYPE"; private boolean myShowType = true; + private final boolean myEnabledDefaultValue; + + public BasicRendererProperties(boolean enabledDefaultValue) { + myEnabledDefaultValue = enabledDefaultValue; + } + public String getName() { return myName; } @@ -94,13 +101,11 @@ public final class BasicRendererProperties implements Cloneable { } } - public void writeExternal(Element element) { + public void writeExternal(@NotNull Element element) { if (myName != null) { JDOMExternalizerUtil.writeField(element, NAME_OPTION, myName); } - if (myEnabled) { - // default is false - //noinspection ConstantConditions + if (myEnabled != myEnabledDefaultValue) { JDOMExternalizerUtil.writeField(element, ENABLED_OPTION, Boolean.toString(myEnabled)); } if (myClassName != null) { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/NodeRendererImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/NodeRendererImpl.java index 9fddb1567dde..017e82ed8e07 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/NodeRendererImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/NodeRendererImpl.java @@ -35,14 +35,20 @@ import javax.swing.*; */ public abstract class NodeRendererImpl implements NodeRenderer{ private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.tree.render.NodeRendererImpl"); - protected BasicRendererProperties myProperties = new BasicRendererProperties(); + protected BasicRendererProperties myProperties; protected NodeRendererImpl() { this("unnamed"); } protected NodeRendererImpl(@NotNull String presentableName) { + this(presentableName, false); + } + + protected NodeRendererImpl(@NotNull String presentableName, boolean enabledDefaultValue) { + myProperties = new BasicRendererProperties(enabledDefaultValue); myProperties.setName(presentableName); + myProperties.setEnabled(enabledDefaultValue); } @Override diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ToStringRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ToStringRenderer.java index f0f5316be8df..2864c656b6e8 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ToStringRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ToStringRenderer.java @@ -47,7 +47,7 @@ public class ToStringRenderer extends NodeRendererImpl { private ClassFilter[] myClassFilters = ClassFilter.EMPTY_ARRAY; public ToStringRenderer() { - setEnabled(true); + super("unnamed", true); } @Override diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/TypeRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/TypeRenderer.java index cdde150690c7..ce5b000387a0 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/TypeRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/TypeRenderer.java @@ -26,7 +26,7 @@ import org.jetbrains.annotations.NotNull; public abstract class TypeRenderer implements Renderer { private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.tree.render.ReferenceRenderer"); - protected BasicRendererProperties myProperties = new BasicRendererProperties(); + protected BasicRendererProperties myProperties = new BasicRendererProperties(false); protected TypeRenderer() { this(CommonClassNames.JAVA_LANG_OBJECT);