> Bindable only works on the root object of the serializer and does not have > the proper link to the component to initialize off of it
Generally, the Bindable object will be the component, so it doesn't need a reference to it (beyond "this"). > pivot also uses the Bindable interface to tag an > object that is requesting a bind() to be automatically applied to it in > addition to calling initialize() They go hand-in-hand. initialize() is called to notify the object that binding has taken place. > If you extend the Bindable concept to > every object and make it so that it does not require source code access to > make the initialize happen, then that works for me. The sole purpose of Bindable is to ensure that bind() gets called by BeanSerializer. initialize() is called to let the bindable object know that this has taken place. Other objects (that don't have bindings) don't need a special notification method because they can simply use the constructor for this. A big part of the Pivot philosophy is "using the right tool for the job". Inheritance is a major part of OO design, and Pivot is designed around OO concepts. So subclassing is a "tool" that you are encouraged to take advantage of in Pivot development, not avoid. BXML exists solely to make it easier to construct object hierarchies. We think that XML is a more natural fit than procedural code for this. However, it is not meant to replace coding altogether.