From aa2992e84a75515184ab08ea3e0082a2a18427e6 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 17 Dec 2019 16:56:36 +0300 Subject: [PATCH] Wizard: add additional applicability checker for template --- .../projectWizard/wizard/ui/secondStep/TemplatesComponent.kt | 1 + .../tools/projectWizard/templates/SimpleJsClientTemplate.kt | 5 +++++ .../kotlin/tools/projectWizard/templates/Template.kt | 2 ++ 3 files changed, 8 insertions(+) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt index 1f4bef3d25c..08d859ada90 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt @@ -109,6 +109,7 @@ class ChooseTemplateComponent( get() = allTemplates.values.filter { template -> selectedModule!!.containingModuleType in template.moduleTypes && selectedModule!!.sourcesetType in template.sourcesetTypes + && template.isApplicableTo(selectedModule!!) } private val state: State diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt index bd8fb7b38ee..3fb4f5a02bb 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt @@ -12,9 +12,11 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.* import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.DefaultTargetConfigurationIR import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Sourceset import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptor @@ -27,6 +29,9 @@ class SimpleJsClientTemplate : Template() { override val sourcesetTypes: Set = setOf(SourcesetType.main) override val id: String = "simpleJsClient" + override fun isApplicableTo(sourceset: Sourceset): Boolean = + sourceset.parent?.configurator == JsBrowserTargetConfigurator + override fun TaskRunningContext.getRequiredLibraries(sourceset: SourcesetIR): List = buildList { +ArtifactBasedLibraryDependencyIR( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt index b6cde62a351..bd361d9f235 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt @@ -63,6 +63,8 @@ abstract class Template : SettingsOwner { abstract val moduleTypes: Set abstract val sourcesetTypes: Set + open fun isApplicableTo(sourceset: Sourceset): Boolean = true + open val settings: List> = emptyList() open val interceptionPoints: List> = emptyList()