@Override
    protected void paintComponent(@NotNull Graphics g) {
      super.paintComponent(g);

      Rectangle bounds = g.getClipBounds();
      int startRow = Math.max(0, rowAtPoint(bounds.getLocation()));
      int endRow = rowAtPoint(new Point(bounds.x + bounds.width, bounds.y + bounds.height));
      if (endRow == -1) {
        endRow = myModel.getRowCount() - 1;
      }

      int iconWidth = myAnimatedIcon.getIconWidth();
      int cellHeight = myAnimatedIcon.getIconHeight();
      int offset = JBUIScale.scale(5);
      int editingRow = getEditingRow();
      int selectedRow = getSelectedRow();
      Border border = UIUtil.getTableFocusCellHighlightBorder();

      for (int i = startRow; i <= endRow; i++) {
        UrlInfo item = myModel.getItem(i);
        if (item.progress && i != editingRow) {
          Rectangle rect = getCellRect(i, 0, true);
          int x = rect.x + rect.width - iconWidth - offset;
          int xx = 0;
          int yy = 0;
          int hh = 0;
          if (i == selectedRow) {
            Insets insets = border.getBorderInsets(null);
            xx = insets.right;
            yy = insets.top;
            hh = insets.top + insets.bottom + 1;
          }
          g.setColor(i == selectedRow ? getSelectionBackground() : getBackground());
          g.fillRect(x - offset, rect.y + yy, iconWidth + offset * 2 - xx, rect.height - hh);
          myAnimatedIcon.paintIcon(this, g, x, rect.y + (rect.height - cellHeight) / 2);
        }
      }
    }
@Override
    protected void paintComponent(@NotNull Graphics g)