@Override
  public void reset(@NotNull List<? extends T> items) {
    super.reset(items);

    // todo should we really do this?
    //noinspection SSBasedInspection
    SwingUtilities.invokeLater(() -> {
      if (!model.isEmpty()) {
        list.setSelectedIndex(0);
      }
    });
  }
@Override
  public void reset(@NotNull List<? extends T> items)