From b404e6324f975ad8b1e4fa8b48a2aeb4a7dc890a Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 24 Apr 2020 22:20:15 +0300 Subject: [PATCH] Wizard: always allow user to choose project JDK --- .../kotlin/tools/projectWizard/wizard/IdeWizard.kt | 3 +-- .../wizard/NewProjectWizardModuleBuilder.kt | 3 +++ .../projectWizard/wizard/service/IdeaJpsWizardService.kt | 1 - .../wizard/ui/firstStep/FirstWizardStepComponent.kt | 9 +++++---- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt index fce65a86deb..d4ad0ac53d7 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt @@ -41,7 +41,7 @@ class IdeWizard( JavaRuntimeLibraryDescription(null), LibrariesContainerFactory.createContainer(null as Project?), ) - + var jdk: Sdk? = null var projectPath by setting(StructurePlugin::projectPath.reference) var projectName by setting(StructurePlugin::name.reference) @@ -69,7 +69,6 @@ class IdeWizard( data class JpsData( val libraryDescription: JavaRuntimeLibraryDescription, val librariesContainer: LibrariesContainer, - var jdk: Sdk? = null, val libraryOptionsPanel: LibraryOptionsPanel = LibraryOptionsPanel( libraryDescription, "", diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index 8964d008dbb..17e26b5a0ef 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -90,6 +90,9 @@ class NewProjectWizardModuleBuilder : EmptyModuleBuilder() { model: ModifiableModuleModel?, modulesProvider: ModulesProvider? ): List? { + runWriteAction { + wizard.jdk?.let { jdk -> NewProjectUtil.applyJdkToProject(project, jdk) } + } val modulesModel = model ?: ModuleManager.getInstance(project).modifiableModel val success = wizard.apply( services = buildList { diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt index dad627c5541..3953ae7e4ed 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt @@ -62,7 +62,6 @@ class IdeaJpsWizardService( modulesIrs: List, buildSystem: BuildSystemType ): TaskResult = runWriteAction { - ideWizard.jpsData.jdk?.let { jdk -> NewProjectUtil.applyJdkToProject(project, jdk) } KotlinSdkType.setUpIfNeeded() val projectImporter = ProjectImporter(project, modulesModel, path, modulesIrs) modulesBuilder.addModuleConfigurationUpdater( diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt index 3c96cac5e22..c7161c2c969 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt @@ -49,13 +49,15 @@ class ProjectSettingsComponent(ideWizard: IdeWizard) : DynamicComponent(ideWizar component.addBorder(JBUI.Borders.empty(0, /*left&right*/4)) } private val buildSystemAdditionalSettingsComponent = BuildSystemAdditionalSettingsComponent(ideWizard).asSubComponent() + private val jdkComponent = JdkComponent(ideWizard).asSubComponent() private val nameAndLocationComponent = TitledComponentsList( listOf( StructurePlugin::name.reference.createSettingComponent(context), StructurePlugin::projectPath.reference.createSettingComponent(context), projectTemplateComponent, - buildSystemSetting + buildSystemSetting, + jdkComponent ), context, stretchY = true, @@ -171,7 +173,6 @@ private class PomSettingsComponent(context: Context) : TitledComponentsList( class KotlinJpsRuntimeComponent(ideWizard: IdeWizard) : DynamicComponent(ideWizard.context) { private val componentList = TitledComponentsList( listOf( - JdkComponent(ideWizard), KotlinRuntimeComponentComponent(ideWizard) ), ideWizard.context, @@ -187,9 +188,9 @@ private class JdkComponent(ideWizard: IdeWizard) : TitledComponent(ideWizard.con ProjectSdksModel().apply { reset(null) }, Condition(javaModuleBuilder::isSuitableSdkType) ).apply { - ideWizard.jpsData.jdk = selectedJdk + ideWizard.jdk = selectedJdk addActionListener { - ideWizard.jpsData.jdk = selectedJdk + ideWizard.jdk = selectedJdk } }