Component (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; }