Hi, as part of the Jewel Tile Layout improvement, I want to let you know about an important addition.
until now I had very hard time dealing with width/height of a component in layout classes when the width or height are a percentage or not set. Since that depends on other containers, I found while working on Jewel DataGrid that I need to make "requestAnimationFrame" calls until I get the proper measurements. So I set up a "waitForSize" public property that is available in all Jewel layouts, since all comes from StyledLayoutBase. This is false by default, so you need to put to true to use this feature. I didn't other way to get this measures, I think maybe this could have some performance hit, for that reason, I let users choose. If you know something better, let me know :) If you check that code you'll find that performanceLayout is now using "checkHostSize()" (if waitForSize is true).The code is this: /** * We call requestAnimationFrame until we get width and height */ COMPILE::JS protected function checkHostSize():void { if(sizeInitialized) return; if((host.width == 0 && !isNaN(host.percentWidth)) || (host.height == 0 && !isNaN(host.percentHeight))) { requestAnimationFrame(checkHostSize); } else { sizeInitialized = true; executeLayout(); } } when we get the size, we continue as usual. As I said before if you left "waitForSize" to false (default), it will work as always. For example, new tile horizontal layout is using it in TDJ: <j:Group className="wrapper" width="100%"> <j:beads> <j:TileHorizontalLayout localId="tl" waitForSize="true"/> </j:beads> Any comment are welcome Thanks -- Carlos Rovira http://about.me/carlosrovira