private static void deleteShelves(@NotNull Project project, @NotNull List<ShelvedChangeList> shelvedListsToDelete,
                                    @NotNull List<ShelvedChangeList> shelvedListsFromChanges,
                                    @NotNull List<ShelvedChange> selectedChanges,
                                    @NotNull List<ShelvedBinaryFile> selectedBinaryChanges) {
    List<ShelvedChange> changesToDelete = getChangesNotInLists(shelvedListsToDelete, selectedChanges);
    List<ShelvedBinaryFile> binariesToDelete = getBinariesNotInLists(shelvedListsToDelete, selectedBinaryChanges);

    ShelveChangesManager manager = ShelveChangesManager.getInstance(project);
    int fileListSize = binariesToDelete.size() + changesToDelete.size();
    Map<ShelvedChangeList, Date> createdDeletedListsWithOriginalDates =
      manager.deleteShelves(shelvedListsToDelete, shelvedListsFromChanges, changesToDelete, binariesToDelete);
    if (!createdDeletedListsWithOriginalDates.isEmpty()) {
      showUndoDeleteNotification(project, shelvedListsToDelete, fileListSize, createdDeletedListsWithOriginalDates);
    }
  }
private static void deleteShelves(@NotNull Project project, @NotNull List<ShelvedChangeList> shelvedListsToDelete,
                                    @NotNull List<ShelvedChangeList> shelvedListsFromChanges,
                                    @NotNull List<ShelvedChange> selectedChanges,
                                    @NotNull List<ShelvedBinaryFile> selectedBinaryChanges)