void (final DebuggerContextImpl context, final Runnable runnable, boolean labelOnly) { if (!labelOnly) { clear(); } if (context != null && context.getDebugProcess() != null) { getTree().saveState(this); myIcon = DebuggerTreeRenderer.getDescriptorIcon(MessageDescriptor.EVALUATING); myText = DebuggerTreeRenderer.getDescriptorText(context, MessageDescriptor.EVALUATING, false); context.getDebugProcess().getManagerThread().invoke(new DebuggerContextCommandImpl(context) { @Override public void threadAction(@NotNull SuspendContextImpl suspendContext) { runnable.run(); } @Override protected void commandCancelled() { clear(); getDescriptor().clear(); updateCaches(); labelChanged(); childrenChanged(true); } @Override public Priority getPriority() { return Priority.NORMAL; } }); } labelChanged(); if (!labelOnly) { childrenChanged(true); } }