Fix saving Kotlin Scripting Setting to xml

^KT-30146 Fixed
This commit is contained in:
Natalia Selezneva
2019-02-28 14:56:32 +03:00
parent 640699e076
commit bc1e836f01
2 changed files with 64 additions and 3 deletions
@@ -103,22 +103,28 @@ class KotlinScriptingSettings : PersistentStateComponent<Element> {
KotlinScriptDefinitionKey(this.name, this::class.qualifiedName ?: "unknown")
private fun Element.addScriptDefinitionContentElement(definition: KotlinScriptDefinitionKey, settings: KotlinScriptDefinitionValue) {
Element(SCRIPT_DEFINITION_TAG).apply {
addElement(SCRIPT_DEFINITION_TAG).apply {
attribute(KotlinScriptDefinitionKey::className.name, definition.className)
attribute(KotlinScriptDefinitionKey::definitionName.name, definition.definitionName)
Element(KotlinScriptDefinitionValue::order.name).apply {
addElement(KotlinScriptDefinitionValue::order.name).apply {
text = settings.order.toString()
}
if (!settings.isEnabled) {
Element(KotlinScriptDefinitionValue::isEnabled.name).apply {
addElement(KotlinScriptDefinitionValue::isEnabled.name).apply {
text = settings.isEnabled.toString()
}
}
}
}
private fun Element.addElement(name: String): Element {
val element = Element(name)
addContent(element)
return element
}
private fun Element.toValue(): KotlinScriptDefinitionValue {
val order = getChildText(KotlinScriptDefinitionValue::order.name)?.toInt() ?: Integer.MAX_VALUE
val isEnabled = getChildText(KotlinScriptDefinitionValue::isEnabled.name)?.toBoolean() ?: true