content: package in.oneton.idea.spring.assistant.plugin.initializr;
  
  import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
  import com.intellij.openapi.externalSystem.service.project.ProjectDataManager;
  import com.intellij.openapi.module.Module;
  import com.intellij.openapi.project.Project;
  import com.intellij.openapi.vfs.VirtualFile;
  import org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectImportBuilder;
  import org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectImportProvider;
  
  import static com.intellij.openapi.components.ServiceManager.getService;
  import static in.oneton.idea.spring.assistant.plugin.misc.PsiCustomUtil.findFileUnderRootInModule;
  
  public class GradleModuleBuilderPostProcessor implements ModuleBuilderPostProcessor {
    @Override
    public boolean postProcess(Module module) {
      // TODO: Find a way to use GradleModuleBuilder instead of GradleProjectImportBuilder when adding a child module to the parent
      Project project = module.getProject();
      VirtualFile gradleFile = findFileUnderRootInModule(module, "build.gradle");
      if (gradleFile == null) { // not a gradle project
        return true;
      } else {
        ProjectDataManager projectDataManager = getService(ProjectDataManager.class);
        GradleProjectImportBuilder importBuilder = new GradleProjectImportBuilder(projectDataManager);
        GradleProjectImportProvider importProvider = new GradleProjectImportProvider(importBuilder);
        AddModuleWizard addModuleWizard =
            new AddModuleWizard(project, gradleFile.getPath(), importProvider);
        if (addModuleWizard.getStepCount() > 0 && !addModuleWizard
            .showAndGet()) { // user has cancelled import project prompt
          return true;
        } else { // user chose to import via the gradle import prompt
          importBuilder.commit(project, null, null);
          return false;
        }
      }
    }
  }
  