Icon (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; }