Add GUI generator TextParameter annotations

This commit is contained in:
Edwin Jakobs
2020-02-02 21:36:19 +01:00
parent 86584f7fcf
commit 2a118f6146

View File

@@ -62,7 +62,7 @@ class GUI : Extension {
h3 { obj.title() ?: "untitled" } h3 { obj.title() ?: "untitled" }
for (parameter in parameters) { for (parameter in parameters) {
addSlider(obj, parameter) addControl(obj, parameter)
} }
} }
} }
@@ -75,7 +75,7 @@ class GUI : Extension {
program.extend(panel) program.extend(panel)
} }
private fun Div.addSlider(obj: Any, parameter: Parameter) { private fun Div.addControl(obj: Any, parameter: Parameter) {
when(val type = parameter.parameterType) { when(val type = parameter.parameterType) {
ParameterType.Int -> { ParameterType.Int -> {
@@ -126,6 +126,18 @@ class GUI : Extension {
} }
} }
} }
ParameterType.Text -> {
textfield {
label = parameter.label
value = (parameter.property as KMutableProperty1<Any, String>).get(obj)
events.valueChanged.subscribe {
value = it.newValue
(parameter.property as KMutableProperty1<Any, String>).set(obj, value)
onChangeListener?.invoke(parameter.property.name, it.newValue)
}
}
}
} }
} }