Wizard: add additional applicability checker for template
This commit is contained in:
+1
@@ -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
|
||||
|
||||
+5
@@ -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(
|
||||
|
||||
+2
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user