From 2feea5e7cf8d492663e826ebcfb0a58e61820352 Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Mon, 12 Feb 2018 08:04:05 +0100 Subject: DSL syntax for containers --- src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt') diff --git a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt index 209c9ae6..13b5ce00 100644 --- a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt +++ b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt @@ -37,11 +37,13 @@ import pl.treksoft.kvision.panel.VPanel * @param model data model of type *ObservableList* * @param binding a function which creates component C from data model at given index * @param child internal container (defaults to [VPanel]) + * @param init an initializer extension function */ class DataContainer( private val model: ObservableList, private val binding: (Int) -> C, - private val child: Container = VPanel() + private val child: Container = VPanel(), + init: (DataContainer.() -> Unit)? = null ) : Widget(setOf()), Container, DataUpdatable { @@ -59,6 +61,8 @@ class DataContainer( update() } update() + @Suppress("LeakingThis") + init?.invoke(this) } override fun add(child: Component): Container { -- cgit