Wizard: add additional applicability checker for template

This commit is contained in:
Ilya Kirillov
2019-12-17 16:56:36 +03:00
parent 40367635cc
commit aa2992e84a
3 changed files with 8 additions and 0 deletions
@@ -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
@@ -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<SourcesetType> = 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<DependencyIR> =
buildList {
+ArtifactBasedLibraryDependencyIR(
@@ -63,6 +63,8 @@ abstract class Template : SettingsOwner {
abstract val moduleTypes: Set<ModuleType>
abstract val sourcesetTypes: Set<SourcesetType>
open fun isApplicableTo(sourceset: Sourceset): Boolean = true
open val settings: List<TemplateSetting<*, *>> = emptyList()
open val interceptionPoints: List<InterceptionPoint<Any>> = emptyList()