diff options
author | Robert Jaros <rjaros@finn.pl> | 2018-01-31 13:47:26 +0100 |
---|---|---|
committer | Robert Jaros <rjaros@finn.pl> | 2018-01-31 13:47:26 +0100 |
commit | bfbca8460894af40dd53380c8f0d3384a470bc41 (patch) | |
tree | 95cd678d5bfbb45affbea512506e40f063cec162 /src | |
parent | 9c5324999e486eafbc3db63189c390b7c86a824e (diff) | |
download | kvision-bfbca8460894af40dd53380c8f0d3384a470bc41.tar.gz kvision-bfbca8460894af40dd53380c8f0d3384a470bc41.tar.bz2 kvision-bfbca8460894af40dd53380c8f0d3384a470bc41.zip |
Data component refactoring
Diffstat (limited to 'src')
-rw-r--r-- | src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt | 8 | ||||
-rw-r--r-- | src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt b/src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt index 605e1e2e..6eef6f98 100644 --- a/src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt +++ b/src/main/kotlin/pl/treksoft/kvision/data/DataComponent.kt @@ -4,8 +4,8 @@ import kotlin.properties.ObservableProperty import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty -open class DataComponent { - var container: DataUpdatable? = null +interface DataComponent { + var container: DataUpdatable? fun <T> obs(initialValue: T): ReadWriteProperty<Any?, T> = object : ObservableProperty<T>(initialValue) { override fun afterChange(property: KProperty<*>, oldValue: T, newValue: T) { @@ -13,3 +13,7 @@ open class DataComponent { } } } + +open class BaseDataComponent : DataComponent { + override var container: DataUpdatable? = null +} diff --git a/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt index b4b1122f..e2fd7a0d 100644 --- a/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt +++ b/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt @@ -3,7 +3,7 @@ package test.pl.treksoft.kvision.data import com.lightningkite.kotlin.observable.list.observableListOf import pl.treksoft.kvision.basic.Label import pl.treksoft.kvision.core.Root -import pl.treksoft.kvision.data.DataComponent +import pl.treksoft.kvision.data.BaseDataComponent import pl.treksoft.kvision.data.DataContainer import test.pl.treksoft.kvision.DomSpec import kotlin.browser.document @@ -17,7 +17,7 @@ class DataContainerSpec : DomSpec { run { val root = Root("test") - class Model(value: String) : DataComponent() { + class Model(value: String) : BaseDataComponent() { var value: String by obs(value) } |