Hi Alex,

Thanks for your suggestion. It may be a couple of days before I can get
back to testing it; I'm reworking many backend routines and database
functions/procs for the same application.

But when I'm able to test it, I'll report back.

As always, thanks for your generous help.


On Tue, Nov 5, 2013 at 1:47 PM, Alex Harui <aha...@adobe.com> wrote:

>
>
> So if I understand correctly, clicking on some nested Tab changes some
> other ViewStack's selectedIndex.  If that's correct, try subclassing the
> ViewStack's selectedIndex setter so you can set a breakpoint and catch when
> only that ViewStack is changed.  Then the call stack should contain some
> good clues.
>
> From: Tom McNeer <tmcn...@gmail.com>
> Reply-To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
> Date: Monday, November 4, 2013 3:31 PM
> To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
> Subject: Re: [flexcoders] Nested TabNabvigator/Repeater error [4
> Attachments]
>
>
>
> I've finally had time to check this out a little further.
>
> As a reminder, I'm creating nested TabNavigator elements dynamically. I
> avoided using a Repeater and attached a CollectionChange event listener to
> the ArrayCollection that is the main data provider. The function called by
> the listener walks through the structure, creating TabNavigators with VBox
> children, and at the bottom level, a custom component (DocDataGrid) that is
> a VBox which wraps a DataGrid.
>
> The problem is that a click on a tab in the lowest-level TabNavigator
> doesn't display the selected child. Rather, it sends the user several
> levels back up the component tree.
>
> I've followed the click through TabBars and NavBars and Buttons till
> there's a click event fired where I can't determine what's supposed to hear
> the click. The selectedIndex appears correct through each level in the
> inheritance, but then the process fails.
>
> I've even added some hack-y invalidateDisplayList() calls in hopes that
> they might have an effect.
>
> I'm including the code that creates the elements, along with some screen
> shots that I hope will better explain what's going on.
>
> If you have time to look them over, and if you see where I'm going wrong,
> I would certainly appreciate any pointers.
>
> Thanks very much in advance.
>
> private function buildUI(e:CollectionEvent):
> void{
>                 clearTabs();
>                 var vb:VBox;
>                 var tn:TabNavigator;
>                 var ddg:DocDataGrid;
>                 for(var i:int=0;i<acCaseDocuments.length;i++){
>                     var arSubtypes:Array = acCaseDocuments[i].subtypes as
> Array;
>                     vb = new VBox();
>                     vb.id='docType' + i;
>                     vb.setStyle('horizontalAlign','center');
>                     vb.label = acCaseDocuments[i].friendlyName as String;
>                     vb.percentWidth=95;
>                     vb.percentHeight=95;
>                     vb.styleName='contentWhite';
>                     tn = new TabNavigator();
>                     tn.id='docSubtab' + i;
>                     tn.percentWidth=100;
>                     tn.percentHeight=100;
>                     tn.x=5;
>                     tn.y=5;
>                     tn.setStyle("backgroundAlpha",0);
>                     tn.setStyle('borderThickness',1);
>                     tn.setStyle('paddingTop',0);
>                     tn.creationPolicy="all";
>                     for(var j:int=0;j<arSubtypes.length;j++){
>                         ddg = new DocDataGrid();
>                         ddg.id= 'docSubtype' + j;
>                         ddg.label=arSubtypes[j].friendlyName as String;
>                         ddg.gridData.source=arSubtypes[j].documents as
> Array;
>                         ddg.gridData.refresh();
>                         tn.addChild(ddg);
>                     }
>                     tn.invalidateDisplayList();
>                     vb.addChild(tn);
>                     docTabs.addChild(vb);
>                 }
>                 setFirstTab(e);
>             }
>
>
> On Thu, Oct 24, 2013 at 12:32 PM, Alex Harui <aha...@adobe.com> wrote:
>
>>
>>
>> Never tried right clicking on the framework files before.  You're right
>> that it doesn't work.  But double-clicking should set a breakpoint.  It
>> does for me.
>>
>> From: Tom McNeer <tmcn...@gmail.com>
>> Reply-To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
>> Date: Thursday, October 24, 2013 7:44 AM
>>
>> To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
>> Subject: Re: [flexcoders] Nested TabNabvigator/Repeater error
>>
>>
>>
>> Alex,
>>
>> Thanks again for your reply. Sorry I was unclear. I wasn't suggesting
>> that the framework had code to switch the ViewStack on click.
>>
>> I was responding to your comment about the concern being the logic that
>> responds to the change in the TabNavigator and TabBar. And I simply meant
>> that my code does not contain any handlers for any actions on the
>> TabNavigators created in my AS code, nor on the underlying TabBars. But
>> rather, the click on the visible Tab that _appears_ to be responsible for
>> switching the ViewStack is being handled somehow by the framework, since I
>> have not overridden it.
>>
>> I realize that the proper course would be to follow the event into the
>> framework files. However, in my initial post, I was hoping that someone
>> might have experienced a similar problem and know a simple solution.
>>
>> I am now trying to follow the event down into the framework. But I'm
>> running into what seems like a dumb problem: I am unable to set breakpoints
>> in the framework files. I can search for and open class files in the
>> correct version of the framework; but a right-click in the left margin does
>> not bring up a context menu at all.
>>
>> The framework is being merged into the code at compile time.
>>
>> I know this may be a silly question, but can you tell me why Flash
>> Builder (4.6) might be acting this way?
>>
>>
>> On Wed, Oct 23, 2013 at 2:40 AM, Alex Harui <aha...@adobe.com> wrote:
>>
>>>
>>>
>>> I'm not sure what you mean by "the framework".  AFAIK, the framework
>>> doesn't have any code that automatically switches ViewStack views based on
>>> mouse activity.
>>>
>>> But you could put a breakpoint on the ViewStack code and see why it is
>>> changing.
>>>
>>> -Alex
>>>
>>> From: Tom McNeer <tmcn...@gmail.com>
>>> Reply-To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
>>> Date: Tuesday, October 22, 2013 12:30 PM
>>> To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com>
>>> Subject: Re: [flexcoders] Nested TabNabvigator/Repeater error
>>>
>>>
>>>
>>> Hi Alex,
>>>
>>> Thanks very much for the reply.
>>>
>>>
>>> On Tue, Oct 22, 2013 at 12:56 PM, Alex Harui <aha...@adobe.com> wrote:
>>>
>>>> In the AS version, I would guess there are relatively few ways to
>>>> "switch to a different screen".
>>>>
>>>
>>> Yeah, I would agree. The reason I used the vague "switch to a different
>>> screen" is that the resulting action is nothing that is called in the
>>> component or even its parent.
>>>
>>> I'll lay this out as quickly as I can:
>>>
>>> There's a view we'll call Cases which has a ViewStack that consists of
>>> "Case Results" and "Case Details." A search triggered from a parent of the
>>> Cases view results in a grid in Case Results being populated. A click on a
>>> row in the grid calls the server for data on an individual Case and
>>> switches to the Case Details view.
>>>
>>> That view contains a TabNavigator for various aspects of the Case,
>>> including Documents. The nested TabNavigators I'm trying to create are
>>> within that Documents view.
>>>
>>> When I say that a click on any second-level (Document subtype) tab goes
>>> "to a different screen," what happens is that everything is switched back
>>> to the Case Results view - taking you back to the first element in the
>>> Cases ViewStack. There's no action or event defined in any of the child
>>> views inside the Case Details TabNavigator that would switch the view that
>>> way.
>>>
>>> That's why I find it confounding.
>>>
>>>
>>>> If you put a breakpoint on code that does that, does it get hit and
>>>> will the stack info show you how it got there?
>>>>
>>>
>>> The code would be in the framework. It would just be the handler for a
>>> click on the TabBar.
>>>
>>>
>>>> The TabBar children should just be Tabs that dispatch events.  The
>>>> logic that responds to the change event should be the main concern.
>>>>
>>>
>>> Thanks. I understand that. But I'm not writing any code to react to the
>>> click event. It's just the default action from the framework, which should
>>> be to make the box corresponding to the Tab the selectedChild of the
>>> TabNaviagator.
>>>
>>> I have tried walking through my ActionScript, and the oddity I see
>>> (which I may not really understand) is that even after all the custom
>>> components are added as children to one of the second-level TabNavigators,
>>> the TabNavigator and its TabBar show in debugging as having a different
>>> number of children.
>>>
>>>
>>>
>>> --
>>> Thanks,
>>>
>>> Tom
>>>
>>> Tom McNeer
>>> MediumCool
>>> http://www.mediumcool.com
>>> 1735 Johnson Road NE
>>> Atlanta, GA 30306
>>> 404.589.0560
>>>
>>>
>>
>>
>> --
>> Thanks,
>>
>> Tom
>>
>> Tom McNeer
>> MediumCool
>> http://www.mediumcool.com
>> 1735 Johnson Road NE
>> Atlanta, GA 30306
>> 404.589.0560
>>
>>
>
>
> --
> Thanks,
>
> Tom
>
> Tom McNeer
> MediumCool
> http://www.mediumcool.com
> 1735 Johnson Road NE
> Atlanta, GA 30306
> 404.589.0560
>
>  
>



-- 
Thanks,

Tom

Tom McNeer
MediumCool
http://www.mediumcool.com
1735 Johnson Road NE
Atlanta, GA 30306
404.589.0560

Reply via email to