void (@NotNull ModulesProvider modulesProvider) { if (isNewWizard()) { JRootPane pane = getRootPane(); if (pane != null) { pane.putClientProperty(UIUtil.NO_BORDER_UNDER_WINDOW_TITLE_KEY, Boolean.TRUE); } } myWizardContext.setModulesProvider(modulesProvider); ProjectTypeStep projectTypeStep = new ProjectTypeStep(myWizardContext, this, modulesProvider); Disposer.register(getDisposable(), projectTypeStep); mySequence.addCommonStep(projectTypeStep); ChooseTemplateStep chooseTemplateStep = null; if (!isNewWizard()) { chooseTemplateStep = new ChooseTemplateStep(myWizardContext, projectTypeStep); mySequence.addCommonStep(chooseTemplateStep); } // hacky: module builder ID and module type id should start with [NPW_PREFIX], to be removed later, on migrating on new API. Predicate<Set<String>> predicate = strings -> !isNewWizard() || !ContainerUtil.exists(strings, type -> type.startsWith(NPW_PREFIX)); mySequence.addCommonFinishingStep(new ProjectSettingsStep(myWizardContext), predicate); for (ModuleWizardStep step : mySequence.getAllSteps()) { addStep(step); } if (myWizardContext.isCreatingNewProject() && Registry.is("new.project.load.remote.templates") && !isNewWizard()) { projectTypeStep.loadRemoteTemplates(chooseTemplateStep); } super.init(); }