commonMain.jetbrains.datalore.base.observable.property.SimpleCollectionProperty.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lets-plot-common Show documentation
Show all versions of lets-plot-common Show documentation
Lets-Plot JVM package without rendering part
/*
* Copyright (c) 2019. JetBrains s.r.o.
* Use of this source code is governed by the MIT license that can be found in the LICENSE file.
*/
package jetbrains.datalore.base.observable.property
import jetbrains.datalore.base.observable.collections.CollectionItemEvent
import jetbrains.datalore.base.observable.collections.CollectionListener
import jetbrains.datalore.base.observable.collections.ObservableCollection
import jetbrains.datalore.base.registration.Registration
abstract class SimpleCollectionProperty
protected constructor(
protected val collection: ObservableCollection,
initialValue: ValueT) :
BaseDerivedProperty(initialValue) {
// BaseDerivedProperty() {
private var myRegistration: Registration? = null
override fun doAddListeners() {
myRegistration = collection.addListener(object :
CollectionListener {
override fun onItemAdded(event: CollectionItemEvent) {
somethingChanged()
}
override fun onItemSet(event: CollectionItemEvent) {
somethingChanged()
}
override fun onItemRemoved(event: CollectionItemEvent) {
somethingChanged()
}
})
}
override fun doRemoveListeners() {
myRegistration!!.remove()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy