> The difference with other binding attempts I have so far observed
> (Eclipse JFace binding translations to GWT) is that this approach does
> not require threads
I checked that project briefly some time ago, and my feeling was that
it ain't gonna fly.
However, there actually is something like half a dozen implementations
(ours one of them), that solve the problem by first adding 'faked'
reflection support, and then use the reflective/dynamic invocation
support to fiddle with the properties of widgets. The data binding
itself is then relatively trivial, and can be implemented in way that
supports listening of specific properties (main point of publisher/
subscriber), but still follows closely GWT's event idioms
(SourcesPropertyEvents etc. etc.).
There is also other school of data binders, they modify the widget so
that the widget has direct reference to the model (a.k.a data aware
widgets).
The reflective style has the advantage of working with the vanilla GWT
widgets, as well as all third party widgets, while the data aware
style has benefit of being 'closer' to data, which means that things
like paginated tables come easier to implement.
> Also, reusing things and building artifacts on top of other artifacts
> is fundamental practice in structured and OO programming.
> What do you think?
Implementing publisher / subscriber pattern is pretty trivial. The
difficult thing is wiring data binding nicely with widgets, specially
in a way (as John pointed out to my ignorant ears in the other thread)
that does not kill performance and bloat the code. I think by doing
clean implementation instead of using 3rd party java script code the
difficult issues are easier to address, and we'll get also interface
that is typical for GWT programming style, instead of TIBCO's.
/Henri Karapuu