void ( final @NotNull JTree tree, final Object value, final boolean selected, final boolean expanded, final boolean leaf, final int row, final boolean hasFocus ) { final DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; if (node.getUserObject() instanceof ComponentPtrDescriptor descriptor) { final ComponentPtr ptr = descriptor.getElement(); if (ptr == null) return; final RadComponent component = ptr.getComponent(); if (component == null) return; final HighlightDisplayLevel level = ErrorAnalyzer.getHighlightDisplayLevel(myProject, component); // Text boolean hasText = false; final String binding = component.getBinding(); if (binding != null) { append(binding, getAttribute(myBindingAttributes, level)); append(" : ", getAttribute(myClassAttributes, level)); hasText = true; } else { String componentTitle = component.getComponentTitle(); if (componentTitle != null) { append(componentTitle, getAttribute(myTitleAttributes, level)); append(" : ", getAttribute(myClassAttributes, level)); hasText = true; } } final String componentClassName = component.getComponentClassName(); if (component instanceof RadVSpacer) { append(UIDesignerBundle.message("component.vertical.spacer"), getAttribute(myClassAttributes, level)); } else if (component instanceof RadHSpacer) { append(UIDesignerBundle.message("component.horizontal.spacer"), getAttribute(myClassAttributes, level)); } else if (component instanceof RadErrorComponent c) { append(c.getErrorDescription(), getAttribute(myUnknownAttributes, level)); } else if (component instanceof RadRootContainer) { append(UIDesignerBundle.message("component.form"), getAttribute(myClassAttributes, level)); append(" (", getAttribute(myPackageAttributes, level)); final String classToBind = ((RadRootContainer)component).getClassToBind(); if (classToBind != null) { append(classToBind, getAttribute(myPackageAttributes, level)); } else { append(UIDesignerBundle.message("component.no.binding"), getAttribute(myPackageAttributes, level)); } append(")", getAttribute(myPackageAttributes, level)); } else { String packageName = null; int pos = componentClassName.lastIndexOf('.'); if (pos >= 0) { packageName = componentClassName.substring(0, pos); } SimpleTextAttributes classAttributes = hasText ? myPackageAttributes : myClassAttributes; if (packageName != null) { append(componentClassName.substring(packageName.length() + 1).replace('$', '.'), getAttribute(classAttributes, level)); if (!packageName.equals(SWING_PACKAGE)) { append(" (", getAttribute(myPackageAttributes, level)); append(packageName, getAttribute(myPackageAttributes, level)); append(")", getAttribute(myPackageAttributes, level)); } } else { append(componentClassName.replace('$', '.'), getAttribute(classAttributes, level)); } } // Icon setIcon(getComponentIcon(component)); if (component == myDropTargetComponent) { setBorder(BorderFactory.createLineBorder(PlatformColors.BLUE, 1)); } else { setBorder(BorderFactory.createEmptyBorder(1,1,1,1)); } } else if (node.getUserObject() != null) { final @NlsSafe String fragment = node.getUserObject().toString(); if (fragment != null) { append(fragment, SimpleTextAttributes.REGULAR_ATTRIBUTES); } if (node.getUserObject() instanceof SuppressionDescriptor) { setIcon(UIDesignerIcons.InspectionSuppression); } else if (node.getUserObject() instanceof ButtonGroupDescriptor) { setIcon(UIDesignerIcons.ButtonGroup); } } }