I think it is time to start a new thread with the current state of the
world.  I'm having trouble following.

 

Which container should have scrollbars?  What are the
minMeasuredWidth/minWidth (and heights) at each level and which levels
have % width/height

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Richard Rodseth
Sent: Tuesday, July 29, 2008 3:40 PM
To: [email protected]
Subject: Re: [flexcomponents] RE: [flexcoders] Re: Measurement and
template component

 

Sorry about the indenting. I keep forgetting to put periods in. It's
like this

TiledCanvas
..PodChrome
....ReportModuleA (not a real module, just a VBox)
......ReportChrome
........ReportA
..........Grid

I also apologize for giving incorrect information earlier. The
measure() methods *are* all getting called and the values look right.
i.e. if I set ReportA to minimum 500x500 that shows up all the way up
the hierarchy. Yet, if I set ReportChrome to 100%/100% the scroll bars
don't appear, but if I don't do that, they do. Very puzzling. My
theory about parentApplication is probably wrong, because I set a
break in UIComponent.get parentApplication and it only got called when
showing a progress window.
So now I am setting break points in
Container.createScrollbarsIfNeeded, but in the case where the
percentages are set, it doesn't get to the needVertical=true part.
I'll keep digging, but any suggestions for further key logic points to
check would be appreciated. I assume getScrollableRect() is returning
a different value, but I can't imagine why that would be.

On Tue, Jul 29, 2008 at 1:47 PM, Alex Harui <[EMAIL PROTECTED]
<mailto:aharui%40adobe.com> > wrote:
> You know that any indenting you do in the hierarchy doesn't come
through
> email, right? The whole list is flat.
>
>
>
> If a measure() method does not get called then either nobody called
> invalidateSize() on it (or caused it to be called via some deeper
> invalidation), or it has fixed width/height and doesn't need to be
measured.
>
>
>
> ________________________________
>
> From: [email protected] <mailto:flexcoders%40yahoogroups.com>
[mailto:[email protected] <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of Richard Rodseth
> Sent: Tuesday, July 29, 2008 11:47 AM
> To: [email protected] <mailto:flexcoders%40yahoogroups.com> 
> Subject: Re: [flexcomponents] RE: [flexcoders] Re: Measurement and
template
> component
>
>
>
> Actually, I take it back. Only the pseudo-module names are determined
> in the service layer - instantiation occurs in an observer. Still,
> tI'm concerned about the messed-up parentApplication.
>
> On Tue, Jul 29, 2008 at 11:33 AM, Richard Rodseth <[EMAIL PROTECTED]
<mailto:rrodseth%40gmail.com> >
> wrote:
>> Good suggestion. For good measure (groan) I added a few overrides of
>> measure() that call super, that I could set breakpoints in.
>> Recall that the hierarchy is like this:
>>
>> TiledCanvas
>> PodChrome
>> ReportModuleA (not a real module, just a VBox)
>> ReportChrome
>> ReportA
>> Grid
>>
>> I notice that ReportModuleA.measure() does not get called. I also
>> noticed in the debugger that ReportModuleA.parentApplication is not
>> set (the debugger gives a 1009 error) when you select that property).
>> Seems suspect, doesn't it?
>>
>> ReportModuleA and PodChrome are instantiated in ActionScript, and
>> ReportModuleA is actually instantiated in the service layer via a
>> static method in its MXML file. Then a parent of TiledCanvas observes
>> a list of the pseudo-modules, wraps them in chrome and adds them to
>> the TiledCanvas. Seemed reasonable at the time.
>>
>> On Mon, Jul 28, 2008 at 9:46 PM, Alex Harui <[EMAIL PROTECTED]
<mailto:aharui%40adobe.com> > wrote:
>>> You'll have to walk through the measure() methods on each container
to
>>> see
>>> what it is computing and why.
>>>
>>>
>>>
>>> ________________________________
>>>
>>> From: [email protected]
<mailto:flexcoders%40yahoogroups.com>
[mailto:[email protected] <mailto:flexcoders%40yahoogroups.com>
] On
>>> Behalf Of Richard Rodseth
>>> Sent: Monday, July 28, 2008 2:19 PM
>>> To: [EMAIL PROTECTED]
<mailto:flexcomponents%40yahoogroups.com> ; [email protected]
<mailto:flexcoders%40yahoogroups.com> 
>>> Subject: [flexcoders] Re: Measurement and template component
>>>
>>>
>>>
>>> Oops. Meant for flexcoders.
>>>
>>> On Mon, Jul 28, 2008 at 2:18 PM, Richard Rodseth <[EMAIL PROTECTED]
<mailto:rrodseth%40gmail.com> >
>>> wrote:
>>>> Turns out to be unrelated to the fact that ReportChrome is a
template
>>>> component (the same thing happens if it's a plain Canvas).
>>>> Removing width="100%" height="100%" on ReportChrome results in the
>>>> TiledCanvas tiling correctly but then I am forced to set
>>>> minWidth/Height on ReportA or its children, or they shrink to
nothing.
>>>>
>>>> I'm not sure I understand this - I would expect that the measured
>>>> values would bubble up regardless, and that the measured
width/height
>>>> of a Canvas or subclass thereof (ReportChrome in this case) would
be
>>>> the maximum of the measured children or the specified container
>>>> percentage.
>>>>
>>>> On Wed, Jul 23, 2008 at 5:18 PM, Richard Rodseth
<[EMAIL PROTECTED] <mailto:rrodseth%40gmail.com> >
>>>> wrote:
>>>>> My application has a structure like this, portions of which are
>>>>> created dynamically:
>>>>>
>>>>> TiledCanvas
>>>>> PodChrome(1)
>>>>> ReportModuleA
>>>>> ReportChrome(1)
>>>>> ReportA
>>>>> Grid
>>>>> PodChrome(2)
>>>>> ReportModuleB
>>>>> ReportChrome(2)
>>>>> ReportB
>>>>> Chart
>>>>> etc.
>>>>>
>>>>> PodChrome and ReportChrome are template components.
>>>>> TiledCanvas is functional - when tiling it correctly reflects a
>>>>> minWidth/minHeight set way deep (eg. on the Grid). But only if I
omit
>>>>> the ReportChrome wrapper. ReportChrome is just a Canvas with two
>>>>> states, that does an addChild in init(). I added a call to
>>>>> this.invalidateSize() and child.invalidateSize() after the
addChild()
>>>>> to no avail. Any ideas what I could be doing wrong?
>>>>>
>>>>
>>>
>>>
>>
>
> 

 

Reply via email to