@Override
  @SuppressWarnings("unchecked")
  public JComponent getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    if (value instanceof ListWithSelection tags) {
      if (tags.getSelection() == null) tags.selectFirst();
      updateCombobox(tags, tags.getSelection());
    }
    else if (value instanceof Enum selectedValue) {
      updateCombobox(EnumSet.allOf(selectedValue.getDeclaringClass()), selectedValue);
    }
    else {
      if (value != null) {
        LOG.error("value " + objectInfo(value) + ", at " + row + ":" + column + ", in " + table.getModel());
      }
      myCombo.removeAllItems();
      myCombo.setSelectedIndex(-1);
    }

    myCombo.setEnabled(table.isCellEditable(row, column));

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