Wizard: Move test framework settings to module configurators
This commit is contained in:
+20
@@ -1,10 +1,13 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep
|
||||
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingReference
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.projectTemplates.ProjectTemplatesPlugin
|
||||
import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate
|
||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.IdeWizard
|
||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.*
|
||||
import java.awt.BorderLayout
|
||||
@@ -54,6 +57,23 @@ class TemplatesSubStep(valuesReadingContext: ValuesReadingContext) :
|
||||
// TODO do not use settingContext directly
|
||||
context.settingContext[setting] = value
|
||||
}
|
||||
allModules().forEach { module ->
|
||||
module.initDefaultValuesForSettings(valuesReadingContext.context)
|
||||
}
|
||||
}
|
||||
|
||||
private fun allModules(): List<Module> {
|
||||
val modules = mutableListOf<Module>()
|
||||
|
||||
fun addModule(module: Module) {
|
||||
modules += module
|
||||
module.subModules.forEach(::addModule)
|
||||
}
|
||||
|
||||
valuesReadingContext.context.settingContext[KotlinPlugin::modules.reference]
|
||||
?.forEach(::addModule)
|
||||
|
||||
return modules
|
||||
}
|
||||
|
||||
override fun onValueUpdated(reference: SettingReference<*, *>?) {
|
||||
|
||||
+2
-2
@@ -31,12 +31,12 @@ class ModulesEditorComponent(
|
||||
allowAndroid = isMppProject,
|
||||
allowIos = isMppProject,
|
||||
allModules = value ?: emptyList(),
|
||||
createModule = { model.add(it) }
|
||||
createModule = model::add
|
||||
)?.showInCenterOf(component)
|
||||
}
|
||||
)
|
||||
|
||||
private val model = TargetsModel(tree, ::value)
|
||||
private val model = TargetsModel(tree, ::value, valuesReadingContext.context)
|
||||
|
||||
override fun onInit() {
|
||||
super.onInit()
|
||||
|
||||
+4
-1
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.modulesEditor
|
||||
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.Context
|
||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
@@ -9,7 +10,8 @@ import kotlin.reflect.KMutableProperty0
|
||||
|
||||
class TargetsModel(
|
||||
private val tree: ModulesEditorTree,
|
||||
private val value: KMutableProperty0<List<Module>?>
|
||||
private val value: KMutableProperty0<List<Module>?>,
|
||||
private val context: Context
|
||||
) {
|
||||
private val root get() = tree.model.root as DefaultMutableTreeNode
|
||||
|
||||
@@ -57,6 +59,7 @@ class TargetsModel(
|
||||
}
|
||||
|
||||
fun add(module: Module) {
|
||||
module.initDefaultValuesForSettings(context)
|
||||
addToTheTree(module, modifyValue = true, parent = tree.selectedNode ?: root)
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -100,7 +100,9 @@ class DropdownSettingComponent(
|
||||
valuesReadingContext = valuesReadingContext,
|
||||
initialValues = setting.type.values,
|
||||
validator = setting.validator,
|
||||
filter = { value -> setting.type.filter(valuesReadingContext, reference, value) },
|
||||
filter = { value ->
|
||||
setting.type.filter(valuesReadingContext, reference, value)
|
||||
},
|
||||
labelText = setting.title,
|
||||
onValueUpdate = { newValue -> value = newValue }
|
||||
).asSubComponent()
|
||||
|
||||
Reference in New Issue
Block a user