void (ArrayRenderer newRenderer, @NotNull XValueNodeImpl node, @NotNull DebuggerContextImpl debuggerContext) { XValue container = node.getValueContainer(); ArrayRenderer renderer = getArrayRenderer(container); if (renderer == null) { return; } ValueDescriptorImpl descriptor = ((JavaValue)container).getDescriptor(); DebugProcessImpl debugProcess = debuggerContext.getDebugProcess(); if (debugProcess != null) { debugProcess.getManagerThread().schedule(new SuspendContextCommandImpl(debuggerContext.getSuspendContext()) { @Override public void contextAction(@NotNull SuspendContextImpl suspendContext) { final Renderer lastRenderer = descriptor.getLastRenderer(); if (lastRenderer instanceof ArrayRenderer) { ((JavaValue)container).setRenderer(newRenderer, node); node.invokeNodeUpdate(() -> node.getTree().expandPath(node.getPath())); } else if (lastRenderer instanceof CompoundReferenceRenderer compoundRenderer) { final ChildrenRenderer childrenRenderer = compoundRenderer.getChildrenRenderer(); if (childrenRenderer instanceof ExpressionChildrenRenderer) { ExpressionChildrenRenderer.setPreferableChildrenRenderer(descriptor, newRenderer); ((JavaValue)container).reBuild(node); } } } }); } }