Rather than just send out a changeset review, I thought I'd describe the revised view placement rules and give everyone a chance to comment. The two basic changes are that @ignoreplacement is now documented and properly supported, and that @defaultplacement is recursively applied so that a view will not be placed within another view without respecting the second view's placement directives.
Here's the relevant text from the reference material for LzNode.construct. I'm interested in help clarifying the language, but more important in comments on the proposed algorithm.
thanks, jim ---The construct method is also responsible for placing the newly-built view into the appropriate place within its lexical parent's view hierarchy. The process
for this is as follows:* First, if the view has an 'ignoreplacement' attribute with a true value, then
the view will be placed directly under its lexical parent in all cases. The next steps are skipped.* Second, the placement view name is determined from the first of the following
that matches: ** the view's 'placement' attribute, if that exists; or ** the lexical parent's 'defaultplacement' attribute, if that exists; or ** nil.* Third, if there is no placement view name, the subview is placed within its lexical parent (that is, view.immediateparent = view.parent), and the next steps are skipped.
* Fourth, the placement view name is looked up within the lexical parent by calling determinePlacement, and the result is taken as the view's placement view.
* If this new placement view is a subview and it has a defaultplacement attribute, determinePlacement is called again. This process is repeated until no defaultplacement attribute is found to ensure that all placement directives are correctly followed.
--- jim
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
