diff --git a/src/main/kotlin/TextFields.kt b/src/main/kotlin/TextFields.kt index aaf7efd..6ef6f32 100644 --- a/src/main/kotlin/TextFields.kt +++ b/src/main/kotlin/TextFields.kt @@ -42,26 +42,54 @@ public fun TextField.editorFor( } } +public abstract class SimpleStringConverter : StringConverter() { + override fun toString(value: T): String = value.toString() +} + +// Int + @Suppress("UNCHECKED_CAST") public fun TextField.editorFor(property: IntegerProperty, converter: StringConverter) { editorFor(property as Property, converter) } +public object IntConverter : SimpleStringConverter() { + override fun fromString(string: String): Int = string.toInt() +} + +// Long + @Suppress("UNCHECKED_CAST") public fun TextField.editorFor(property: LongProperty, converter: StringConverter) { editorFor(property as Property, converter) } +public object LongConverter : SimpleStringConverter() { + override fun fromString(string: String): Long = string.toLong() +} + +// Float + @Suppress("UNCHECKED_CAST") public fun TextField.editorFor(property: FloatProperty, converter: StringConverter) { editorFor(property as Property, converter) } +public object FloatConverter : SimpleStringConverter() { + override fun fromString(string: String): Float = string.toFloat() +} + +// Double + @Suppress("UNCHECKED_CAST") public fun TextField.editorFor(property: DoubleProperty, converter: StringConverter) { editorFor(property as Property, converter) } +public object DoubleConverter : SimpleStringConverter() { + override fun fromString(string: String): Double = string.toDouble() +} + // Impl private fun TextField.update(property: Property, converter: StringConverter) {