Approved!

Regards,
Max Carlson
OpenLaszlo.org

On 9/4/10 12:27 PM, P T Withington wrote:
Change ptw-20100904-wHA by [email protected] on 2010-09-04 12:09:31 EDT
     in /Users/ptw/OpenLaszlo/trunk-3
     for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Update view linkage to actually work

Bugs Fixed:  LPP-9333 lz.view getAttributeRelative() doesn't work with nested 
views inside a view that has xscale/yscale

Technical Reviewer: [email protected] (pending)
QA Reviewer: [email protected] (pending)
Doc Reviewer: [email protected] (pending)

Overview:

     The linkage transform computation was really broken.  It had what
     appears to be some attempt at optimizing the case of one of the
     views being an ancestor of the other, but that only worked when
     that view was the canvas.  Additionally, the view computation of
     width/height did not take into account the (apparently
     intentional) policy that a view's scale affects its own
     width/height (but not its own x/y).

     This change simplifies and regularizes the linkage transform
     computation.  The basic outline is that it now computes two
     separate transforms from each of the argument views in the
     coordinate space of their shared ancestor and then composes those
     two transforms to get the transform from the source to the
     destination.  The relative operators in<view>  have been updated
     to take scaling into account for width/height.

Details:

     lztest-view:  Incorporated Max's updates to reduce errors
     signalled due to float math noise.  Added Kathryn's test case.
     Added some additional test cases for nested scaled views and
     transformations between views that are not direct
     ancestor/descendants.  Added tests to verify that
     setAttributeRelative still works with the corrected transform
     computation.

     LzViewLinkage:  Essentially rewritten from scratch, per the above,
     with some documentation of what is trying to be accomplished, for
     future generations.  Removed the gratuitous 'point' objects in
     favor of just storing the transformation coordinates.  Yes, this
     means the callers either have to cons up a string as an accessor
     or be a little more complex.

     LaszloView: Update relative operators to not use the linkage point
     objects and to take source and destination view scale into account
     for height/width computations.  Update the documentation for these
     operators to be English and to match the apparent expected
     semantics.

Tests:

     Updated view test in all runtimes.

Files:
M       test/lztest/lztest-view.lzx
M       WEB-INF/lps/lfc/views/LzViewLinkage.lzs
M       WEB-INF/lps/lfc/views/LaszloView.lzs

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20100904-wHA.tar

Reply via email to