|
|
@ -6,6 +6,7 @@ import scalaz._ |
|
|
|
|
|
|
|
import scalafx.beans.property._ |
|
|
|
import scalafx.beans.value._ |
|
|
|
import scalafx.collections._ |
|
|
|
|
|
|
|
trait ObservableImplicits { |
|
|
|
/* NOTE: (Sarah) I believe that the synchronization in these helpers is not |
|
|
@ -163,6 +164,14 @@ class RichObservable[A, C](val self: ObservableValue[A, C]) extends AnyVal { |
|
|
|
final def ⊛[B, B1](fb: ObservableValue[B, B1]) = |@|(fb) |
|
|
|
} |
|
|
|
|
|
|
|
class ObservableOfIterable[A](val self: ObservableValue[Iterable[A], Iterable[A]]) extends AnyVal { |
|
|
|
def toBuffer: ObservableBuffer[A] = { |
|
|
|
val buff = ObservableBuffer(self.value.toSeq) |
|
|
|
self onChange { (_, oldV, newV) => fillCollection(buff.delegate, newV) } |
|
|
|
buff |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class RichProperty[A, B](val inner: Property[A, B]) extends AnyVal { |
|
|
|
def biMap[B <: AnyRef](push: A => B, pull: B => A): ObjectProperty[B] = { |
|
|
|
val original = push(inner.value) |
|
|
|