mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
disable children rendering when renderers muted
This commit is contained in:
@@ -372,8 +372,8 @@ public class JavaValue extends XNamedValue implements NodeDescriptorProvider, XV
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextAction(@NotNull SuspendContextImpl suspendContext) throws Exception {
|
||||
myValueDescriptor.getRenderer(myEvaluationContext.getDebugProcess())
|
||||
public void contextAction(@NotNull SuspendContextImpl suspendContext) {
|
||||
myValueDescriptor.getChildrenRenderer(myEvaluationContext.getDebugProcess())
|
||||
.buildChildren(myValueDescriptor.getValue(), new ChildrenBuilder() {
|
||||
@Override
|
||||
public NodeDescriptorFactory getDescriptorManager() {
|
||||
|
||||
+11
-5
@@ -281,10 +281,12 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
|
||||
protected String calcRepresentation(EvaluationContextImpl context, DescriptorLabelListener labelListener){
|
||||
DebuggerManagerThreadImpl.assertIsManagerThread();
|
||||
|
||||
final NodeRenderer renderer = getRenderer(context.getDebugProcess());
|
||||
DebugProcessImpl debugProcess = context.getDebugProcess();
|
||||
NodeRenderer renderer = getRenderer(debugProcess);
|
||||
|
||||
final EvaluateException valueException = myValueException;
|
||||
myIsExpandable = (valueException == null || valueException.getExceptionFromTargetVM() != null) && renderer.isExpandable(getValue(), context, this);
|
||||
EvaluateException valueException = myValueException;
|
||||
myIsExpandable = (valueException == null || valueException.getExceptionFromTargetVM() != null) &&
|
||||
getChildrenRenderer(debugProcess).isExpandable(getValue(), context, this);
|
||||
|
||||
try {
|
||||
setValueIcon(renderer.calcValueIcon(this, context, labelListener));
|
||||
@@ -401,7 +403,11 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
|
||||
return myRenderer != null ? myRenderer: myAutoRenderer;
|
||||
}
|
||||
|
||||
public NodeRenderer getRenderer (DebugProcessImpl debugProcess) {
|
||||
public NodeRenderer getChildrenRenderer(DebugProcessImpl debugProcess) {
|
||||
return OnDemandRenderer.isOnDemandForced(debugProcess) ? DebugProcessImpl.getDefaultRenderer(getValue()) : getRenderer(debugProcess);
|
||||
}
|
||||
|
||||
public NodeRenderer getRenderer(DebugProcessImpl debugProcess) {
|
||||
DebuggerManagerThreadImpl.assertIsManagerThread();
|
||||
Type type = getType();
|
||||
if(type != null && myRenderer != null && myRenderer.isApplicable(type)) {
|
||||
@@ -431,7 +437,7 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
|
||||
}
|
||||
|
||||
return DebuggerTreeNodeExpression.substituteThis(
|
||||
vDescriptor.getRenderer(context.getDebugProcess()).getChildValueExpression(new DebuggerTreeNodeMock(value), context),
|
||||
vDescriptor.getChildrenRenderer(context.getDebugProcess()).getChildValueExpression(new DebuggerTreeNodeMock(value), context),
|
||||
((PsiExpression)parentEvaluation), vDescriptor.getValue()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.intellij.debugger.ui.tree.render;
|
||||
|
||||
import com.intellij.debugger.engine.DebugProcessImpl;
|
||||
import com.intellij.debugger.engine.FullValueEvaluatorProvider;
|
||||
import com.intellij.debugger.engine.JavaDebugProcess;
|
||||
import com.intellij.debugger.engine.JavaValue;
|
||||
import com.intellij.debugger.engine.evaluation.EvaluationContext;
|
||||
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
|
||||
@@ -49,7 +50,7 @@ public interface OnDemandRenderer extends FullValueEvaluatorProvider {
|
||||
String getLinkText();
|
||||
|
||||
default boolean isOnDemand(EvaluationContext evaluationContext, ValueDescriptor valueDescriptor) {
|
||||
return isOnDemandForced(evaluationContext);
|
||||
return isOnDemandForced((DebugProcessImpl)evaluationContext.getDebugProcess());
|
||||
}
|
||||
|
||||
default boolean isShowValue(ValueDescriptor valueDescriptor, EvaluationContext evaluationContext) {
|
||||
@@ -81,8 +82,8 @@ public interface OnDemandRenderer extends FullValueEvaluatorProvider {
|
||||
ON_DEMAND_CALCULATED.set(descriptor, true);
|
||||
}
|
||||
|
||||
static boolean isOnDemandForced(EvaluationContext evaluationContext) {
|
||||
return ForceOnDemandRenderersAction.isForcedOnDemand(
|
||||
(XDebugSessionImpl)((DebugProcessImpl)evaluationContext.getDebugProcess()).getXdebugProcess().getSession());
|
||||
static boolean isOnDemandForced(DebugProcessImpl debugProcess) {
|
||||
JavaDebugProcess process = debugProcess.getXdebugProcess();
|
||||
return process != null && ForceOnDemandRenderersAction.isForcedOnDemand((XDebugSessionImpl)process.getSession());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user