Wizard: always allow user to choose project JDK

This commit is contained in:
Ilya Kirillov
2020-04-24 22:20:15 +03:00
parent 56eebed1d8
commit b404e6324f
4 changed files with 9 additions and 7 deletions
@@ -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,
"",
@@ -90,6 +90,9 @@ class NewProjectWizardModuleBuilder : EmptyModuleBuilder() {
model: ModifiableModuleModel?,
modulesProvider: ModulesProvider?
): List<IdeaModule>? {
runWriteAction {
wizard.jdk?.let { jdk -> NewProjectUtil.applyJdkToProject(project, jdk) }
}
val modulesModel = model ?: ModuleManager.getInstance(project).modifiableModel
val success = wizard.apply(
services = buildList {
@@ -62,7 +62,6 @@ class IdeaJpsWizardService(
modulesIrs: List<ModuleIR>,
buildSystem: BuildSystemType
): TaskResult<Unit> = runWriteAction {
ideWizard.jpsData.jdk?.let { jdk -> NewProjectUtil.applyJdkToProject(project, jdk) }
KotlinSdkType.setUpIfNeeded()
val projectImporter = ProjectImporter(project, modulesModel, path, modulesIrs)
modulesBuilder.addModuleConfigurationUpdater(
@@ -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
}
}