public static void chooseAndAddDirectoriesWithUndo(@NotNull Project project, @Nullable Consumer<? super List<VirtualFile>> callback) {
    Module module = getAttachTargetModule(project);
    FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createAllButJarContentsDescriptor();
    FileChooser.chooseFiles(descriptor, project, null, files -> {
      addAndSelectDirectoriesWithUndo(project, module, files);
      if (callback != null) callback.consume(files);
    });
  }
public static void chooseAndAddDirectoriesWithUndo(@NotNull Project project, @Nullable Consumer<? super List<VirtualFile>> callback)