@Override
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    clear();

    FilePath path = (FilePath)value;

    boolean hovered = row == getHoveredRow(table);

    myBorderColor = Objects.requireNonNull(((VcsLogGraphTable)table).getStyle(row, column, hasFocus, isSelected, hovered).getBackground());
    setForeground(UIUtil.getTableForeground(false, hasFocus));

    if (isShowRootNames()) {
      if (isTextShown(table, value, row, column)) {
        if (path == null) {
          append("");
        }
        else {
          String text = path.getName();
          int availableWidth = ((VcsLogGraphTable)table).getRootColumn().getWidth() -
                               VcsLogUiUtil.getHorizontalTextPadding(this);
          text = VcsLogUiUtil.shortenTextToFit(text, getFontMetrics(VcsLogGraphTable.getTableFont()),
                                               availableWidth, 0, StringUtil.ELLIPSIS);
          append(text);
        }
      }
      isNarrow = false;
    }
    else {
      append("");
      isNarrow = true;
    }

    if (path == null) {
      myColor = UIUtil.getTableBackground(isSelected, hasFocus);
    }
    else {
      myColor = myColorManager.getPathColor(path, isNarrow ? VcsLogColorManager.DEFAULT_COLOR_MODE : VcsLogColorManagerFactory.ROOT_OPENED_STATE);
    }

    myTooltip = getTooltipText(path, isNarrow);

    return this;
  }
@Override
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)