Wizard: minor, commonize settings initialization with default values

This commit is contained in:
Ilya Kirillov
2020-03-06 19:21:03 +03:00
parent 42529ec525
commit 4ef01aea3f
4 changed files with 10 additions and 14 deletions
@@ -21,4 +21,11 @@ open class SettingsWritingContext(context: Context, servicesManager: ServicesMan
fun <V : Any, T : SettingType<V>> SettingReference<V, T>.setValue(newValue: V) {
context.settingContext[this] = newValue
}
fun <V : Any, T : SettingType<V>> SettingReference<V, T>.setSettingValueToItsDefaultIfItIsNotSetValue() {
val defaultValue = savedOrDefaultValue ?: return
if (notRequiredSettingValue == null) {
setValue(defaultValue)
}
}
}
@@ -169,11 +169,7 @@ interface ModuleConfiguratorWithSettings : ModuleConfigurator {
fun SettingsWritingContext.initDefaultValuesFor(module: Module) {
withSettingsOf(module) {
getConfiguratorSettings().forEach { setting ->
val reference = setting.reference
val defaultValue = reference.savedOrDefaultValue ?: return@forEach
if (reference.notRequiredSettingValue == null) {
reference.setValue(defaultValue)
}
setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue()
}
}
}
@@ -78,11 +78,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor {
fun SettingsWritingContext.initDefaultValuesFor(module: Module) {
withSettingsOf(module) {
settings.forEach { setting ->
val reference = setting.reference
val defaultValue = reference.savedOrDefaultValue ?: return@forEach
if (reference.notRequiredSettingValue == null) {
reference.setValue(defaultValue)
}
setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue()
}
}
}
@@ -40,10 +40,7 @@ abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: Servic
private fun initPluginDefaultValues() {
with(settingsWritingContext) {
for (setting in pluginSettings) {
if (setting.reference.notRequiredSettingValue == null) {
val defaultValue = setting.reference.savedOrDefaultValue ?: continue
setting.reference.setValue(defaultValue)
}
setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue()
}
}
}