mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-175168 On-demand renderers - use on-demand toString renderer instead disabling it
This commit is contained in:
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 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.
|
||||
@@ -206,7 +206,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable {
|
||||
classRenderer.SHOW_STRINGS_TYPE = myCbShowStringsType.isSelected();
|
||||
|
||||
final ToStringRenderer toStringRenderer = rendererSettings.getToStringRenderer();
|
||||
toStringRenderer.setEnabled(myCbEnableToString.isSelected());
|
||||
toStringRenderer.setOnDemand(!myCbEnableToString.isSelected());
|
||||
toStringRenderer.setUseClassFilters(myRbFromList.isSelected());
|
||||
toStringRenderer.setClassFilters(myToStringFilterEditor.getFilters());
|
||||
|
||||
@@ -243,7 +243,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable {
|
||||
myCbShowStringsType.setSelected(classRenderer.SHOW_STRINGS_TYPE);
|
||||
|
||||
final ToStringRenderer toStringRenderer = rendererSettings.getToStringRenderer();
|
||||
final boolean toStringEnabled = toStringRenderer.isEnabled();
|
||||
final boolean toStringEnabled = !toStringRenderer.isOnDemand();
|
||||
final boolean useClassFilters = toStringRenderer.isUseClassFilters();
|
||||
myCbEnableToString.setSelected(toStringEnabled);
|
||||
myRbAllThatOverride.setSelected(!useClassFilters);
|
||||
@@ -292,7 +292,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable {
|
||||
|
||||
final ToStringRenderer toStringRenderer = rendererSettings.getToStringRenderer();
|
||||
final boolean isToStringRendererModified =
|
||||
(toStringRenderer.isEnabled() != myCbEnableToString.isSelected()) ||
|
||||
(toStringRenderer.isOnDemand() == myCbEnableToString.isSelected()) ||
|
||||
(toStringRenderer.isUseClassFilters() != myRbFromList.isSelected()) ||
|
||||
(!DebuggerUtilsEx.filterEquals(toStringRenderer.getClassFilters(), myToStringFilterEditor.getFilters()));
|
||||
if (isToStringRendererModified) {
|
||||
|
||||
@@ -170,6 +170,10 @@ public class NodeRendererSettings implements PersistentStateComponent<Element> {
|
||||
try {
|
||||
if (ToStringRenderer.UNIQUE_ID.equals(id)) {
|
||||
myToStringRenderer.readExternal(elem);
|
||||
if (!myToStringRenderer.isEnabled()) {
|
||||
myToStringRenderer.setEnabled(true);
|
||||
myToStringRenderer.setOnDemand(true);
|
||||
}
|
||||
}
|
||||
else if (ClassRenderer.UNIQUE_ID.equals(id)) {
|
||||
myClassRenderer.readExternal(elem);
|
||||
|
||||
@@ -36,7 +36,7 @@ import javax.swing.*;
|
||||
|
||||
public class LabelRenderer extends TypeRenderer implements ValueLabelRenderer, OnDemandRenderer {
|
||||
public static final @NonNls String UNIQUE_ID = "LabelRenderer";
|
||||
public boolean myOnDemand;
|
||||
public boolean ON_DEMAND;
|
||||
|
||||
private CachedEvaluator myLabelExpression = createCachedEvaluator();
|
||||
|
||||
@@ -123,14 +123,14 @@ public class LabelRenderer extends TypeRenderer implements ValueLabelRenderer, O
|
||||
|
||||
@Override
|
||||
public boolean isOnDemand(EvaluationContext evaluationContext, ValueDescriptor valueDescriptor) {
|
||||
return myOnDemand || OnDemandRenderer.super.isOnDemand(evaluationContext, valueDescriptor);
|
||||
return ON_DEMAND || OnDemandRenderer.super.isOnDemand(evaluationContext, valueDescriptor);
|
||||
}
|
||||
|
||||
public boolean isOnDemand() {
|
||||
return myOnDemand;
|
||||
return ON_DEMAND;
|
||||
}
|
||||
|
||||
public void setOnDemand(boolean value) {
|
||||
myOnDemand = value;
|
||||
ON_DEMAND = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ public class ToStringRenderer extends NodeRendererImpl implements OnDemandRender
|
||||
public static final @NonNls String UNIQUE_ID = "ToStringRenderer";
|
||||
|
||||
private boolean USE_CLASS_FILTERS = false;
|
||||
private boolean ON_DEMAND;
|
||||
private ClassFilter[] myClassFilters = ClassFilter.EMPTY_ARRAY;
|
||||
|
||||
public ToStringRenderer() {
|
||||
@@ -118,7 +119,7 @@ public class ToStringRenderer extends NodeRendererImpl implements OnDemandRender
|
||||
|
||||
@Override
|
||||
public boolean isOnDemand(EvaluationContext evaluationContext, ValueDescriptor valueDescriptor) {
|
||||
if (USE_CLASS_FILTERS && !isFiltered(valueDescriptor.getType())) {
|
||||
if (ON_DEMAND || (USE_CLASS_FILTERS && !isFiltered(valueDescriptor.getType()))) {
|
||||
return true;
|
||||
}
|
||||
return OnDemandRenderer.super.isOnDemand(evaluationContext, valueDescriptor);
|
||||
@@ -167,7 +168,8 @@ public class ToStringRenderer extends NodeRendererImpl implements OnDemandRender
|
||||
public void readExternal(Element element) {
|
||||
super.readExternal(element);
|
||||
|
||||
USE_CLASS_FILTERS = "true".equalsIgnoreCase(JDOMExternalizerUtil.readField(element, "USE_CLASS_FILTERS"));
|
||||
ON_DEMAND = Boolean.parseBoolean(JDOMExternalizerUtil.readField(element, "ON_DEMAND"));
|
||||
USE_CLASS_FILTERS = Boolean.parseBoolean(JDOMExternalizerUtil.readField(element, "USE_CLASS_FILTERS"));
|
||||
myClassFilters = DebuggerUtilsEx.readFilters(element.getChildren("filter"));
|
||||
}
|
||||
|
||||
@@ -176,6 +178,9 @@ public class ToStringRenderer extends NodeRendererImpl implements OnDemandRender
|
||||
public void writeExternal(Element element) {
|
||||
super.writeExternal(element);
|
||||
|
||||
if (ON_DEMAND) {
|
||||
JDOMExternalizerUtil.writeField(element, "ON_DEMAND", "true");
|
||||
}
|
||||
if (USE_CLASS_FILTERS) {
|
||||
JDOMExternalizerUtil.writeField(element, "USE_CLASS_FILTERS", "true");
|
||||
}
|
||||
@@ -200,4 +205,12 @@ public class ToStringRenderer extends NodeRendererImpl implements OnDemandRender
|
||||
}
|
||||
return DebuggerUtilsEx.isFiltered(t.name(), myClassFilters);
|
||||
}
|
||||
|
||||
public boolean isOnDemand() {
|
||||
return ON_DEMAND;
|
||||
}
|
||||
|
||||
public void setOnDemand(boolean value) {
|
||||
ON_DEMAND = value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user