I suspect that getAttributeRelative is working fine, but it is too  
complex for the constraint system to figure out, cf.:

   http://www.openlaszlo.org/lps-latest/docs/guide/ 
constraints.html#d0e13313

For performance reasons also, you might want to rewrite your code and  
simply have a handler in your blue view to update its position and  
dimensions when the canvas changes size.  Something like:

   <handler name="onwidth" reference="canvas"  
method="updateDimensions" />
   <handler name="onheight" reference="canvas"  
method="updateDimensions" />

   <method name="updateDimensions">
     width=whiteSquare.getAttributeRelative('width',canvas);
     height=whiteSquare.getAttributeRelative('height',canvas);
     x=whiteSquare.getAttributeRelative('x',canvas);
     y=whiteSquare.getAttributeRelative('y',canvas)}"
   </method>

This will result in many fewer dependencies being generated and  
achieve the same effect much more efficiently.

On 2006-06-18, at 20:23 EDT, Mark Engelberg wrote:

> getAttributeRelative does not seem to work for attributes 'x' and 'y'
> for views nested two deep inside of something stretchy.
>
> Consider this example:
>
> <canvas height="100%" width="100%">
>       <view bgcolor="red" height="${parent.height}" width="${parent.width}"
> stretches="both">
>               <view bgcolor="yellow" width="25" height="25" x="25" y="25">
>                       <view id="whiteSquare" bgcolor="white" width="20" 
> height="20"  
> x="5" y="5"/>
>               </view>
>       </view>
>       <view bgcolor="blue"
>               width="${whiteSquare.getAttributeRelative('width',canvas)}"
>               height="${whiteSquare.getAttributeRelative('height',canvas)}"
>               x="${whiteSquare.getAttributeRelative('x',canvas)}"
>               y="${whiteSquare.getAttributeRelative('y',canvas)}"/>
> </canvas>
>
> If my understanding of getAttributeRelative is correct, the blue
> square should perfectly cover the white square as you resize the
> canvas.  But it does not.  The width and height properly match, but
> the x and y do not.
>
> When the white square is nested only one deep (i.e., remove the yellow
> square that it is inside of in the above example), it works fine.
>
> Is this a Laszlo bug, or am I doing something wrong?
>
> Thanks,
>
> Mark
> _______________________________________________
> Laszlo-user mailing list
> [email protected]
> http://www.openlaszlo.org/mailman/listinfo/laszlo-user

_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user

Reply via email to