From af8067dec35463b05b4e5fe2fa3998da03a6d025 Mon Sep 17 00:00:00 2001 From: Yuriy Artamonov Date: Thu, 20 Oct 2022 12:28:44 +0200 Subject: [PATCH] [java] IDEA-304242 New Project Wizard: NPE preventing opening of wizard GitOrigin-RevId: 14be4cb1654776fc4c3e0f8df8a6619e6246ecd4 --- .../roots/ui/configuration/JdkComboBox.kt | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.kt b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.kt index cf1a917af6bb..db4f42d4ba92 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.kt +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.kt @@ -5,12 +5,10 @@ import com.intellij.CommonBundle import com.intellij.ide.JavaUiBundle import com.intellij.ide.starters.JavaStartersBundle import com.intellij.ide.util.PropertiesComponent -import com.intellij.ide.util.projectWizard.ModuleBuilder import com.intellij.ide.util.projectWizard.ProjectWizardUtil import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.module.StdModuleTypes import com.intellij.openapi.observable.properties.GraphProperty import com.intellij.openapi.observable.properties.ObservableMutableProperty import com.intellij.openapi.observable.properties.ObservableProperty @@ -29,10 +27,13 @@ import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.NlsContexts.DialogMessage import com.intellij.ui.dsl.builder.Cell import com.intellij.ui.dsl.builder.Row -import com.intellij.ui.layout.* +import com.intellij.ui.layout.ValidationInfoBuilder import org.jetbrains.annotations.ApiStatus -import com.intellij.ui.layout.Row as RowV1 +private val ANY_SDK_FILTER: ((Sdk) -> Boolean) = { true } +private val ANY_SDK_TYPE_FILTER: ((SdkTypeId) -> Boolean) = { true } +private val ANY_SUGGESTED_SDK_FILTER: ((SdkListItem.SuggestedItem) -> Boolean) = { true } +private val NEW_SDK_CALLBACK_DEFAULT: ((Sdk) -> Unit) = {} @Deprecated("Please, recompile code", level = DeprecationLevel.HIDDEN) @ApiStatus.ScheduledForRemoval @@ -40,11 +41,11 @@ fun Row.sdkComboBox( context: WizardContext, sdkProperty: GraphProperty, sdkPropertyId: String, - sdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - sdkFilter: ((Sdk) -> Boolean)? = null, - suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = null, - creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - onNewSdkAdded: ((Sdk) -> Unit)? = null + sdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + sdkFilter: ((Sdk) -> Boolean)? = ANY_SDK_FILTER, + suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = ANY_SUGGESTED_SDK_FILTER, + creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + onNewSdkAdded: ((Sdk) -> Unit)? = NEW_SDK_CALLBACK_DEFAULT ) = sdkComboBox( context, sdkProperty, sdkPropertyId, sdkTypeFilter, sdkFilter, suggestedSdkItemFilter, creationSdkTypeFilter, onNewSdkAdded @@ -54,11 +55,11 @@ fun Row.sdkComboBox( context: WizardContext, sdkProperty: ObservableMutableProperty, sdkPropertyId: String, - sdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - sdkFilter: ((Sdk) -> Boolean)? = null, - suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = null, - creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - onNewSdkAdded: ((Sdk) -> Unit)? = null + sdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + sdkFilter: ((Sdk) -> Boolean)? = ANY_SDK_FILTER, + suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = ANY_SUGGESTED_SDK_FILTER, + creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + onNewSdkAdded: ((Sdk) -> Unit)? = NEW_SDK_CALLBACK_DEFAULT ): Cell { val sdksModel = ProjectSdksModel() @@ -81,13 +82,12 @@ fun createSdkComboBox( sdkModel: ProjectSdksModel, sdkProperty: ObservableMutableProperty, sdkPropertyId: String, - sdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - sdkFilter: ((Sdk) -> Boolean)? = null, - suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = null, - creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = null, - onNewSdkAdded: ((Sdk) -> Unit)? = null + sdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + sdkFilter: ((Sdk) -> Boolean)? = ANY_SDK_FILTER, + suggestedSdkItemFilter: ((SdkListItem.SuggestedItem) -> Boolean)? = ANY_SUGGESTED_SDK_FILTER, + creationSdkTypeFilter: ((SdkTypeId) -> Boolean)? = ANY_SDK_TYPE_FILTER, + onNewSdkAdded: ((Sdk) -> Unit)? = NEW_SDK_CALLBACK_DEFAULT ): JdkComboBox { - sdkModel.reset(project) val sdkComboBox = JdkComboBox(project, sdkModel, sdkTypeFilter, sdkFilter, suggestedSdkItemFilter, creationSdkTypeFilter, onNewSdkAdded)