@Override
  public boolean update() {
    boolean changes = super.update();
    final CompositeAppearance oldText = myHighlightedText;

    myHighlightedText = new CompositeAppearance();

    NavigatablePsiElement element = (NavigatablePsiElement)getPsiElement();
    if (element == null) {
      return invalidElement();
    }

    final ItemPresentation presentation = element.getPresentation();
    if (presentation != null) {
      if (element instanceof PyFunction) {
        final PyClass cls = ((PyFunction)element).getContainingClass();
        if (cls != null) {
          myHighlightedText.getEnding().addText(cls.getName() + ".");
        }
      }
      myHighlightedText.getEnding().addText(presentation.getPresentableText());
      int count = myUsages.size();
      if (count > 1) {
        String text = " " + IdeBundle.message("node.call.hierarchy.N.usages", count);
        myHighlightedText.getEnding().addText(text, HierarchyNodeDescriptor.getUsageCountPrefixAttributes());
      }
      String locationString = presentation.getLocationString();
      if (locationString != null) {
        myHighlightedText.getEnding().addText(" " + locationString, HierarchyNodeDescriptor.getPackageNameAttributes());
      }
    }
    myName = myHighlightedText.getText();

    if (!Comparing.equal(myHighlightedText, oldText)) {
      changes = true;
    }
    return changes;
  }
@Override
  public boolean update()