Supoib! :) -J
On Wed, May 14, 2008 at 3:38 PM, Alex Harui <[EMAIL PROTECTED]> wrote: > At each level (commitProperties, measure, updateDisplayList), their > equivalent invalidators (invalidateProperties, invalidateSize, > invalidateDisplayList) are blocked such that work you do in those methods > will not trigger another call to those methods. But work you do in > updateDisplayList can call invalidateSize and trigger another measure() > which could in turn call invalidateDisplayList and trigger another > updateDisplayList. > > > ------------------------------ > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Josh McDonald > *Sent:* Tuesday, May 13, 2008 9:46 PM > > *To:* [email protected] > *Subject:* Re: [flexcoders] Quick question - who calls > UIComponent.measure()? > > > > What I meant was, I didn't want to do my sizing / positioning in a handler > that's triggered by invalidateDisplayList() - which is only > updateDisplayList() according to my limited knowledge, because I was worried > that moving or resizing a component would trigger another > invalidateDisplayList() - but it sounds like I was wrong, which is good to > know =) > > Does Canvas use a LayoutManager? What's it do? Is that what interprets the > style information on the children such as top or horizontalCenter? > > I'm building a component based on Canvas that never adjusts its own > measuredWidth / measuredHeight. It does only what it inherits from Canvas, > and positions all children and sets their width and height explicitly based > on its own dimenisions. Based on how I'm interpreting your post, I shouldn't > be overriding measure at all, and move my child-position code into > invalidateDisplayList()? > > It's working fine now, but I hate doing things the wrong way ;-) > > I tell you what, I'd sell my left nut for some flow charts of how a well > behaved complex component behaves, showing when invalidateXXX() is flagged, > and what determines whether or not things are invalidated. Does anything > that detailed exist? Would people out there find it useful if I take a few > hours to work on a preliminary one over the weekend? I know there's a few > "lifecycle of a component" articles, but I'm thinking of something more > verbose. > > -J > > On Wed, May 14, 2008 at 1:58 PM, Alex Harui <[EMAIL PROTECTED]> wrote: > > Measure() is called on Canvas as well because a Canvas's > measuredWidth/Height are dictated by the position and size of its children. > > > > You should always measure your children in the measure() method, and > position them in updateDisplayList. Anything you do in creationComplete can > cause something to be invalidated and cause another pass of > commitProperties/measure/updateDisplayList. > > > > I'm not sure what you mean by "attached to invalidateDisplayList". It is > possible to create invalidation loops where by the time we finish > validating, something is invalidated again. > > > ------------------------------ > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Josh McDonald > *Sent:* Tuesday, May 13, 2008 5:54 PM > *To:* [email protected] > *Subject:* Re: [flexcoders] Quick question - who calls > UIComponent.measure()? > > > > If it's in a container that uses a LayoutManager (not Canvas IIRC), and if > the component in question isn't of a fixed size. > > If you need to measure and position stuff in a component that's not always > of a fluid size, you need to move your code into another method, and call it > both from measure() and on CreationComplete and whenever you add a > component. > > I'm not sure if it could be attached to invalidateDisplayList somehow, in > case you do something that triggers an endless loop ;-) It's something I'll > look into when I have more time, as I'm doing all my component adding in > createChildren() and haven't had to deal with post CreationComplete changes. > > Alex, please correct me if I'm wrong in there somewhere, too! > > -J > > On Wed, May 14, 2008 at 10:18 AM, Mansour Raad <[EMAIL PROTECTED]> wrote: > > Question - is it part of the lifecycle of the component ? > > Mansour > :-) > > > > -----Original Message----- > From: [email protected] <flexcoders%40yahoogroups.com> on behalf > of Alex Harui > Sent: Tue 5/13/2008 8:07 PM > To: [email protected] <flexcoders%40yahoogroups.com> > > Subject: RE: [flexcoders] Quick question - who calls UIComponent.measure()? > > It is called by LayoutManager via validateSize() > > ________________________________ > > From: [email protected] <flexcoders%40yahoogroups.com> [mailto: > [email protected] <flexcoders%40yahoogroups.com>] On > Behalf Of Josh McDonald > Sent: Tuesday, May 13, 2008 4:33 PM > To: [email protected] <flexcoders%40yahoogroups.com> > Subject: [flexcoders] Quick question - who calls UIComponent.measure()? > > Hey guys, > > Since UIComponent.measure() is protected, does the container invoke it > via a round-about way, or is it simply called from a ResizeEvent.RESIZE > handler somewhere in UIComponent? > > -J > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for > thee." > > :: Josh 'G-Funk' McDonald > > :: 0437 221 380 :: [EMAIL PROTECTED] <josh%40gfunk007.com> <mailto: > [EMAIL PROTECTED] <josh%40gfunk007.com>> > > > > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for thee." > > :: Josh 'G-Funk' McDonald > :: 0437 221 380 :: [EMAIL PROTECTED] > > > > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for thee." > > :: Josh 'G-Funk' McDonald > :: 0437 221 380 :: [EMAIL PROTECTED] > > > -- "Therefore, send not to know For whom the bell tolls. It tolls for thee." :: Josh 'G-Funk' McDonald :: 0437 221 380 :: [EMAIL PROTECTED]

