@Override
  public boolean update() {
    PsiElement element = mySmartPointer.getElement();
    if (element == null) return true;

    Icon icon = getIcon(element);
    Color color = null;

    if (isMarkModified() ){
      VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element);
      if (virtualFile != null) {
        color = FileStatusManager.getInstance(myProject).getStatus(virtualFile).getColor();
      }
    }
    if (CopyPasteManager.getInstance().isCutElement(element)) {
      color = CopyPasteManager.getCutColor();
    }

    boolean changes = !Comparing.equal(icon, getIcon()) || !Comparing.equal(color, myColor);
    setIcon(icon);
    myColor = color;
    return changes;
  }
@Override
  public boolean update()