@Nullable
  public static Icon getDescriptorIcon(NodeDescriptor descriptor) {
    if (descriptor instanceof ThreadGroupDescriptorImpl threadGroupDescriptor) {
      return threadGroupDescriptor.isCurrent() ? AllIcons.Debugger.ThreadGroupCurrent : AllIcons.Debugger.ThreadGroup;
    }
    if (descriptor instanceof ThreadDescriptorImpl threadDescriptor) {
      return threadDescriptor.getIcon();
    }
    if (descriptor instanceof StackFrameDescriptorImpl stackDescriptor) {
      return stackDescriptor.getIcon();
    }
    if (descriptor instanceof ValueDescriptorImpl valueDescriptor) {
      return getValueIcon(valueDescriptor, null);
    }
    if (descriptor instanceof MessageDescriptor messageDescriptor) {
      return switch (messageDescriptor.getKind()) {
        case MessageDescriptor.ERROR -> XDebuggerUIConstants.ERROR_MESSAGE_ICON;
        case MessageDescriptor.INFORMATION -> XDebuggerUIConstants.INFORMATION_MESSAGE_ICON;
        default -> null;
      };
    }
    if (descriptor instanceof StaticDescriptorImpl) {
      return AllIcons.Nodes.Static;
    }

    return null;
  }
@Nullable
  public static Icon getDescriptorIcon(NodeDescriptor descriptor)