The gist is you can get a Compose-like approach (b...
# tornadofx
m
The gist is you can get a Compose-like approach (but I think, even better) by altering the observable properties implementation to support read and write tracking within a scope. Thus writing
a.b.c
will yield the value of C but also record that the scope took a dependency on
a
b
and
c
. Those can have listeners added automatically such that the scope (modelled as a lambda) can be re-executed from scratch. The output of the lambda is then put into another observable property which can be bound, or just assigned directly to the result i.e.
scope { thing.text = a.b.c }
would re-run the code block when any of the read properties change.