boolean () { int flags = Iconable.ICON_FLAG_VISIBILITY; if (isMarkReadOnly()){ flags |= Iconable.ICON_FLAG_READ_STATUS; } boolean changes = super.update(); PsiElement psiClass = getPsiClass(); if (psiClass == null){ return invalidElement(); } Icon newRawIcon = psiClass.getIcon(flags); Icon newStateIcon = psiClass instanceof PsiClass ? calculateState((PsiClass)psiClass) : AllIcons.Hierarchy.MethodDefined; if (changes || newRawIcon != myRawIcon || newStateIcon != myStateIcon) { changes = true; myRawIcon = newRawIcon; myStateIcon = newStateIcon; Icon newIcon = myRawIcon; if (myIsBase) { newIcon = getBaseMarkerIcon(newIcon); } if (myStateIcon != null) { newIcon = IconManager.getInstance().createRowIcon(myStateIcon, newIcon); } setIcon(newIcon); } CompositeAppearance oldText = myHighlightedText; myHighlightedText = new CompositeAppearance(); TextAttributes classNameAttributes = null; if (myColor != null) { classNameAttributes = new TextAttributes(myColor, null, null, null, Font.PLAIN); } if (psiClass instanceof PsiClass) { myHighlightedText.getEnding().addText(ClassPresentationUtil.getNameForClass((PsiClass)psiClass, false), classNameAttributes); myHighlightedText.getEnding().addText(" (" + JavaHierarchyUtil.getPackageName((PsiClass)psiClass) + ")", HierarchyNodeDescriptor.getPackageNameAttributes()); } else if (psiClass instanceof PsiFunctionalExpression) { myHighlightedText.getEnding().addText(ClassPresentationUtil.getFunctionalExpressionPresentation((PsiFunctionalExpression)psiClass, false)); } myName = myHighlightedText.getText(); if (!Comparing.equal(myHighlightedText, oldText)) { changes = true; } return changes; }