@@ -49,30 +49,31 @@ class DialogInputBuilder {
4949 simpleBoolean(key, SurfComponentBuilder (block), defaultValue)
5050 }
5151
52- fun numberRange (
52+ fun < N > numberRange (
5353 key : String ,
54- range : ClosedFloatingPointRange < Float >,
55- block : NumberRangeDialogInput .() -> Unit ,
56- ): DialogInput {
54+ range : ClosedRange < N >,
55+ block : NumberRangeDialogInput < N > .() -> Unit ,
56+ ): DialogInput where N : Number , N : Comparable<N> {
5757 val input = NumberRangeDialogInput (key, range).apply (block).build()
5858 inputs.add(input)
5959 return input
6060 }
6161
62- fun simpleNumberRange (
62+ fun < N > simpleNumberRange (
6363 key : String ,
64- range : ClosedFloatingPointRange < Float >,
64+ range : ClosedRange < N >,
6565 label : Component ,
66- ) {
67- val input = DialogInput .numberRange(key, label, range.start, range.endInclusive)
66+ ) where N : Number, N : Comparable<N> {
67+ val input =
68+ DialogInput .numberRange(key, label, range.start.toFloat(), range.endInclusive.toFloat())
6869 inputs.add(input.build())
6970 }
7071
71- fun simpleNumberRange (
72+ fun < N > simpleNumberRange (
7273 key : String ,
73- range : ClosedFloatingPointRange < Float >,
74+ range : ClosedRange < N >,
7475 block : SurfComponentBuilder .() -> Unit ,
75- ) {
76+ ) where N : Number, N : Comparable<N> {
7677 simpleNumberRange(key, range, SurfComponentBuilder (block))
7778 }
7879
@@ -190,10 +191,10 @@ class DialogInputBuilder {
190191 }
191192 }
192193
193- class NumberRangeDialogInput (
194+ class NumberRangeDialogInput < N > (
194195 private val key : String ,
195- private val range : ClosedFloatingPointRange < Float >,
196- ) {
196+ private val range : ClosedRange < N >,
197+ ) where N : Number, N : Comparable<N> {
197198 var label: Component ? = null
198199 var initial: Float? = null
199200 var width: @Range(from = 1 , to = 1024 ) Int? = null
@@ -227,7 +228,12 @@ class DialogInputBuilder {
227228 internal fun build (): DialogInput {
228229 val label = label
229230 require(label != null ) { " Dialog input label must not be null" }
230- val builder = DialogInput .numberRange(key, label, range.start, range.endInclusive)
231+ val builder = DialogInput .numberRange(
232+ key,
233+ label,
234+ range.start.toFloat(),
235+ range.endInclusive.toFloat()
236+ )
231237 with (builder) {
232238 initial?.let { initial(it) }
233239 width?.let { width(it) }
0 commit comments