Wizard: add additional applicability checker for template
This commit is contained in:
+1
@@ -109,6 +109,7 @@ class ChooseTemplateComponent(
|
|||||||
get() = allTemplates.values.filter { template ->
|
get() = allTemplates.values.filter { template ->
|
||||||
selectedModule!!.containingModuleType in template.moduleTypes
|
selectedModule!!.containingModuleType in template.moduleTypes
|
||||||
&& selectedModule!!.sourcesetType in template.sourcesetTypes
|
&& selectedModule!!.sourcesetType in template.sourcesetTypes
|
||||||
|
&& template.isApplicableTo(selectedModule!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val state: State
|
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.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.DefaultTargetConfigurationIR
|
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.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.ModuleSubType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
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.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.buildsystem.SourcesetType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptor
|
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 sourcesetTypes: Set<SourcesetType> = setOf(SourcesetType.main)
|
||||||
override val id: String = "simpleJsClient"
|
override val id: String = "simpleJsClient"
|
||||||
|
|
||||||
|
override fun isApplicableTo(sourceset: Sourceset): Boolean =
|
||||||
|
sourceset.parent?.configurator == JsBrowserTargetConfigurator
|
||||||
|
|
||||||
override fun TaskRunningContext.getRequiredLibraries(sourceset: SourcesetIR): List<DependencyIR> =
|
override fun TaskRunningContext.getRequiredLibraries(sourceset: SourcesetIR): List<DependencyIR> =
|
||||||
buildList {
|
buildList {
|
||||||
+ArtifactBasedLibraryDependencyIR(
|
+ArtifactBasedLibraryDependencyIR(
|
||||||
|
|||||||
+2
@@ -63,6 +63,8 @@ abstract class Template : SettingsOwner {
|
|||||||
abstract val moduleTypes: Set<ModuleType>
|
abstract val moduleTypes: Set<ModuleType>
|
||||||
abstract val sourcesetTypes: Set<SourcesetType>
|
abstract val sourcesetTypes: Set<SourcesetType>
|
||||||
|
|
||||||
|
open fun isApplicableTo(sourceset: Sourceset): Boolean = true
|
||||||
|
|
||||||
open val settings: List<TemplateSetting<*, *>> = emptyList()
|
open val settings: List<TemplateSetting<*, *>> = emptyList()
|
||||||
open val interceptionPoints: List<InterceptionPoint<Any>> = emptyList()
|
open val interceptionPoints: List<InterceptionPoint<Any>> = emptyList()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user