[workspaces] getting rid of PROJECT_BUILDER_KEY

this streamlines api and fixes e.g. a NPE when trying to create a new JPS project in a workspace

GitOrigin-RevId: dbb2ce5a5d456733955e0eff705e282012f2a004
This commit is contained in:
Dmitry Avdeev
2025-02-18 18:33:58 +01:00
committed by intellij-monorepo-bot
parent 617ac5e173
commit 65c9899af5
5 changed files with 17 additions and 20 deletions

View File

@@ -5466,15 +5466,12 @@ f:com.intellij.ide.wizard.NewProjectWizardStepPanel
- f:validate():Z
f:com.intellij.ide.wizard.RootNewProjectWizardStep
- com.intellij.ide.wizard.NewProjectWizardStep
- sf:Companion:com.intellij.ide.wizard.RootNewProjectWizardStep$Companion
- <init>(com.intellij.ide.util.projectWizard.WizardContext):V
- getContext():com.intellij.ide.util.projectWizard.WizardContext
- getData():com.intellij.openapi.util.UserDataHolderBase
- getKeywords():com.intellij.ide.wizard.NewProjectWizardStep$Keywords
- getPropertyGraph():com.intellij.openapi.observable.properties.PropertyGraph
- setKeywords(com.intellij.ide.wizard.NewProjectWizardStep$Keywords):V
f:com.intellij.ide.wizard.RootNewProjectWizardStep$Companion
- f:getPROJECT_BUILDER_KEY():com.intellij.openapi.util.Key
f:com.intellij.ide.wizard.UIWizardUtil
- sf:chain(com.intellij.ide.wizard.NewProjectWizardStep,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):com.intellij.ide.wizard.NewProjectWizardStep
- sf:chain(com.intellij.ide.wizard.NewProjectWizardStep,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):com.intellij.ide.wizard.NewProjectWizardStep

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.wizard
import com.intellij.ide.util.projectWizard.ProjectConfigurator
import com.intellij.openapi.observable.properties.AtomicProperty
import com.intellij.openapi.observable.properties.GraphProperty
import com.intellij.openapi.observable.util.bindStorage
@@ -9,6 +10,7 @@ import com.intellij.openapi.ui.DialogPanel
import com.intellij.openapi.util.NlsContexts
import com.intellij.ui.dsl.builder.*
import com.intellij.util.ui.JBUI
import org.jetbrains.annotations.ApiStatus
abstract class AbstractNewProjectWizardMultiStepBase(
@@ -75,6 +77,11 @@ abstract class AbstractNewProjectWizardMultiStepBase(
steps[step]?.setupProject(project)
}
@ApiStatus.Internal
override fun createProjectConfigurator(): ProjectConfigurator? {
return steps[step]?.createProjectConfigurator()
}
init {
stepsProperty.afterChange {
keywords.add(this, steps.keys)

View File

@@ -1,13 +1,9 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.wizard
import com.intellij.ide.util.projectWizard.ProjectBuilder
import com.intellij.ide.util.projectWizard.ProjectConfigurator
import com.intellij.ide.util.projectWizard.WizardContext
import com.intellij.openapi.observable.properties.PropertyGraph
import com.intellij.openapi.util.Key
import com.intellij.openapi.util.UserDataHolderBase
import org.jetbrains.annotations.ApiStatus
class RootNewProjectWizardStep(override val context: WizardContext) : NewProjectWizardStep {
@@ -16,14 +12,4 @@ class RootNewProjectWizardStep(override val context: WizardContext) : NewProject
override val propertyGraph: PropertyGraph = PropertyGraph("New project wizard")
override var keywords: NewProjectWizardStep.Keywords = NewProjectWizardStep.Keywords()
@ApiStatus.Internal
override fun createProjectConfigurator(): ProjectConfigurator? {
return PROJECT_BUILDER_KEY.get(data)?.createProjectConfigurator()
}
companion object {
@ApiStatus.Internal
val PROJECT_BUILDER_KEY = Key.create<ProjectBuilder>(ProjectBuilder::class.java.name)
}
}

View File

@@ -6,10 +6,10 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.Base.logAddSampl
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.MAVEN
import com.intellij.ide.projectWizard.generators.*
import com.intellij.ide.starters.local.StandardAssetsProvider
import com.intellij.ide.util.projectWizard.ProjectConfigurator
import com.intellij.ide.wizard.NewProjectWizardChainStep.Companion.nextStep
import com.intellij.ide.wizard.NewProjectWizardStep
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
import com.intellij.ide.wizard.RootNewProjectWizardStep
import com.intellij.openapi.observable.util.bindBooleanStorage
import com.intellij.openapi.project.Project
import com.intellij.ui.UIBundle
@@ -63,9 +63,12 @@ class MavenJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
linkMavenProject(project, builder)
}
override fun createProjectConfigurator(): ProjectConfigurator? {
return builder.createProjectConfigurator()
}
init {
data.putUserData(MavenJavaNewProjectWizardData.KEY, this)
data.putUserData(RootNewProjectWizardStep.PROJECT_BUILDER_KEY, builder)
}
}

View File

@@ -10,6 +10,7 @@ import com.intellij.ide.projectWizard.NewProjectWizardConstants.Language.JAVA
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.javaBuildSystemData
import com.intellij.ide.starters.local.StandardAssetsProvider
import com.intellij.ide.util.projectWizard.ProjectConfigurator
import com.intellij.ide.util.projectWizard.WizardContext
import com.intellij.ide.wizard.*
import com.intellij.ide.wizard.NewProjectWizardChainStep.Companion.nextStep
@@ -105,7 +106,6 @@ internal class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard {
archetypeItemProperty.afterChange { if (isAutoReloadArchetypeModel) reloadArchetypeVersions() }
archetypeVersionProperty.afterChange { if (isAutoReloadArchetypeModel) reloadArchetypeDescriptor() }
data.putUserData(MavenArchetypeNewProjectWizardData.KEY, this)
data.putUserData(RootNewProjectWizardStep.PROJECT_BUILDER_KEY, moduleBuilder)
}
fun setupCatalogUI(builder: Panel) {
@@ -343,6 +343,10 @@ internal class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard {
}
}
}
override fun createProjectConfigurator(): ProjectConfigurator? {
return moduleBuilder.createProjectConfigurator()
}
}
private class CatalogRenderer : ColoredListCellRenderer<MavenCatalog>() {