ItemPresentation () { return new TextAttributesPresentation() { @Nullable @Override public TextAttributesKey getTextAttributesKey() { return (getPresentableName() != null && getPresentableName().isEmpty()) ? GROUP_KEY : null; } @Override public String getPresentableText() { IProperty property = getProperty(); if (property == null) return null; String presentableName = getPresentableName(); if (presentableName == null) { return property.getName(); } return !presentableName.isEmpty() ? presentableName : PropertiesBundle.message("structure.view.empty.property.presentation"); } @Override public Icon getIcon(boolean open) { return myProperty.getIcon(0); } @Override public TextAttributes getTextAttributes(EditorColorsScheme colorsScheme) { final TextAttributesKey baseAttrKey = (getPresentableName() != null && getPresentableName().isEmpty()) ? GROUP_KEY : PropertiesHighlighter.PropertiesComponent.PROPERTY_KEY.getTextAttributesKey(); final TextAttributes baseAttrs = colorsScheme.getAttributes(baseAttrKey); if (getPsiElement() != null) { TextAttributes highlightingAttributes = getErrorTextAttributes(colorsScheme); if (highlightingAttributes != null) { return TextAttributes.merge(baseAttrs, highlightingAttributes); } } return baseAttrs; } }; }