@Override
  protected Pair<Component, Rectangle> getCellRendererAndBounds(Integer key) {
    int rowIndex = key.intValue();

    Rectangle bounds = myComponent.getCellBounds(rowIndex, rowIndex);
    if (bounds == null) return null;

    ListCellRenderer renderer = myComponent.getCellRenderer();
    if (renderer == null) return null;

    ListModel model = myComponent.getModel();
    if (rowIndex >= model.getSize()) return null;

    Component rendererComponent = renderer.getListCellRendererComponent(
      myComponent,
      model.getElementAt(rowIndex),
      rowIndex,
      myComponent.isSelectedIndex(rowIndex),
      myComponent.hasFocus()
    );

    AppUIUtil.targetToDevice(rendererComponent, myComponent);

    if (!containsInlineButtons(rendererComponent)) bounds.width = rendererComponent.getPreferredSize().width;

    return Pair.create(rendererComponent, bounds);
  }
@Override
  protected Pair<Component, Rectangle> getCellRendererAndBounds(Integer key)