IDEA-162835 Debugger Data Views toString setting is not persisted

This commit is contained in:
Vladimir Krivosheev
2016-11-02 11:41:30 +01:00
parent 3268568361
commit eadac1cfe3
4 changed files with 18 additions and 7 deletions
@@ -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) {
@@ -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
@@ -47,7 +47,7 @@ public class ToStringRenderer extends NodeRendererImpl {
private ClassFilter[] myClassFilters = ClassFilter.EMPTY_ARRAY;
public ToStringRenderer() {
setEnabled(true);
super("unnamed", true);
}
@Override
@@ -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);