private void doAddFiles(@NotNull List<? extends VirtualFile> files) {
    Set<VirtualFile> chosen = new HashSet<>(files);
    if (chosen.isEmpty()) return;
    Set<Object> set = myModel.data.stream().map(o -> o.first).collect(Collectors.toSet());
    for (VirtualFile file : chosen) {
      if (!set.add(file)) continue;
      myModel.data.add(pair(file, getNewMapping(file)));
    }
    myModel.fireTableDataChanged();
    IntList rowList = new IntArrayList();
    for (int i = 0, size = myModel.data.size(); i < size; i++) {
      if (chosen.contains(myModel.data.get(i).first)) {
        rowList.add(i);
      }
    }
    selectRows(rowList.toIntArray(), true);
  }
private void doAddFiles(@NotNull List<? extends VirtualFile> files)