Wizard: Move test framework settings to module configurators

This commit is contained in:
Ilya Kirillov
2020-01-17 15:39:43 +03:00
parent ba62ba39f1
commit 923f646b3d
18 changed files with 207 additions and 150 deletions
@@ -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<*, *>?) {
@@ -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()
@@ -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)
}
@@ -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()