Thank you Alex, it resolved the problem. In addition to what you
mentioned, I also assigned tabChildren and tabEnabled for child
UIComponents.
e.g.
private var childContainer:UIComponent
override .... createChildren()...
{
childContainer = new UIComponent
childContainer.tabChildren = true
childContainer.tabEnabled = false
childContainer.addChild(some UI Component...)
addChild(childContainer)
}
Thanks again for your help Alex.
Although I have one doubt :) it is related to term "Container".
IMO: Container is a class which extends UIComponent and implements
IContainer interface. Developer will use "Container Component" to add
children. In my case I am not implementing IContainer then how it is a
container. Could you please explain a bit more.
--
Chetan
www.riageeks.com
--- In [email protected], Alex Harui <aha...@...> wrote:
>
> I don't think I saw in question in your last email, but if you want
a Container-type component and you are starting with UIComponent, do
not implement IFocusManagerContainer, but set tabChildren=true and
tabEnabled=false in the constructor of your subclass then try it and
let us know if you have further questions.
>
> Alex Harui
> Flex SDK Developer
> Adobe Systems Inc.<http://www.adobe.com/>
> Blog: http://blogs.adobe.com/aharui
>
> From: [email protected]
[mailto:[email protected]] On Behalf Of cksachdev
> Sent: Monday, February 09, 2009 2:41 PM
> To: [email protected]
> Subject: [flexcomponents] Re: Problem with Keyboard navigation in
custom component
>
>
> Thank you Alex for your explanation. My need is a Component, which
> will not get focus but its children can get focus using Keyboard TAB
> and not using Arrow Keys. And from its last children, focus should
> move to the next available component on stage when pressing Keyboard
> TAB key. You can assume that my component is a form with some text
> fields and two buttons at the end. For navigation within this
> component, I want to use TAB key.
>
> --
> Chetan
> www.riageeks.com
>
> --- In
[email protected]<mailto:flexcomponents%40yahoogroups.com
>, Alex Harui <aharui@> wrote:
> >
> > Forget IFocusManager for now. It just allows an abstraction for
> FocusManager
> >
> > What you need to do depends on what you want. Your options are:
> >
> > Control: DataGrid is a top-level control-type component. The fact
> that it has subcomponents like a TextInput for an editor which, if
> outside the DG would get focus on its own is more-or-less abstracted
> from the developer. Since the DG itself wants to get focus (so arrow
> keys and type-ahead searching work if there aren't any editors)
means
> that it should implement IFocusManagerComponent, turn off
> IFocusManagerComponent.focusEnabled in its children, and handle
> keyFocusChange to deal with focus within its subcomponents.
> >
> > Container: We didn't do it this way, but a multi-thumb Slider
could
> be a container-type component. It would not implement
> IFocusManagerComponent as it never gets focus, focus goes directly
to
> the thumbs which then use arrow keys to "slide around". Such a
> component would set tabChildren=true and tabEnabled=false in its
> constructor. There would be no additional work, the FocusManager
> would take care of passing focus to the sub-components assuming they
> are IFocusManagerComponents with focusEnabled=true (and
> tabEnabled=true for tabbing).
> >
> > There is a separate FocusManager instance for every "tab loop".
> There is one for the main app and one for every popup dialog whose
> top-level class is IFocusManagerContainer.
> >
> > Alex Harui
> > Flex SDK Developer
> > Adobe Systems Inc.<http://www.adobe.com/>
> > Blog: http://blogs.adobe.com/aharui
> >
> > From:
[email protected]<mailto:flexcomponents%40yahoogroups.com
>
>
[mailto:[email protected]<mailto:flexcomponents%40yahoogr
oups.com>] On Behalf Of cksachdev
> > Sent: Monday, February 09, 2009 11:57 AM
> > To:
[email protected]<mailto:flexcomponents%40yahoogroups.com
>
> > Subject: [flexcomponents] Re: Problem with Keyboard navigation in
> custom component
> >
> >
> > I have gone through DataGrid and List classes, both of them listen
> for
> > focusInHandler and override this method to add a listener for
> > "keyFocusChange" event. and then in the handler, do processing
> > manually for itemrenderer. My question is, do I have to do it
> manually
> > for my component which has other components which receive focus
when
> > they are on stage. (i.e. My component is a composite of Button,
> > TextInput and a TextArea, do I have to manage focus manually or
> > FocusManager can take care of it, I read that there can be
multiple
> > instances of FocusManager in an application, when it can be useful
?
> ).
> > Could you please point me to some documentation/presentation etc.
> >
> > One more question, when to use IFocusManagerComponent and when to
> use
> > IFocusManager.
> >
> > (I have developed same component in Flash also. I don't have to
> manage
> > focus manually, it was taken care by FocusManager itself)
> >
> > Thank you
> >
> > --
> > Chetan
> > www.riageeks.com
> >
> > --- In
>
[email protected]<mailto:flexcomponents%40yahoogroups.com
><mailto:flexcomponents%40yahoogroups.com
> >, Alex Harui <aharui@> wrote:
> > >
> > > In Flex components can be comprised of sub-components. The
> > outermost component, which is most often the thing that you think
of
> > as the component and would normally set focus to (like a DataGrid)
> is
> > an IFocusManagerComponent with focusEnabled=true. All child sub-
> > components that are IFocusManagerComponents have
focusEnabled=false.
> > When the DataGrid wants to pass focus to child cell editors, it
> > intercepts the keyFocusChange event and handles tabbing itself.
> > >
> > > Other components are "containers" and do not directly receive
> focus
> > and have tabChildren=true and tabEnabled=false
> > >
> > > Alex Harui
> > > Flex SDK Developer
> > > Adobe Systems Inc.<http://www.adobe.com/>
> > > Blog: http://blogs.adobe.com/aharui
> > >
> > > From:
>
[email protected]<mailto:flexcomponents%40yahoogroups.com
><mailto:flexcomponents%40yahoogroups.com
> >
> >
>
[mailto:[email protected]<mailto:flexcomponents%40yahoogr
oups.com><mailto:flexcomponents%40yahoogr
> oups.com>] On Behalf Of cksachdev
> > > Sent: Sunday, February 08, 2009 9:14 PM
> > > To:
>
[email protected]<mailto:flexcomponents%40yahoogroups.com
><mailto:flexcomponents%40yahoogroups.com
> >
> > > Subject: [flexcomponents] Problem with Keyboard navigation in
> custom
> > component
> > >
> > >
> > > Hi to all,
> > >
> > > I have developed a few set of custom components and I am facing
> > > problem with tab navigation. Here is a brief description about
it.
> > >
> > > Problem:
> > > I have a class which extends UIComponent, inside it there are 2
> more
> > > UIComponent created at runtime (inside createChildren). These
are
> > used
> > > as container for subchild components. You can assume a chatbox
> where
> > > message box is inside a UIComponent and a textinput and a button
> is
> > in
> > > another UIComponent. Now problem is related to focus and
> > > tabnavigation. It gets focus on the entire component, instead of
> > > textinput, then on tab navigation I need to cycle it between,
> > > textinput and button, but when it reaches on button, it should
> move
> > to
> > > next UIComponent available on screen, may be a button or any
other
> > > component available. How to know that a subcomponent is the last
> > > component in "MY CUSTOM COMPONENT" and now focus rectangle
should
> > move
> > > to next component available in DisplayList ?
> > >
> > > Please point me to the
> > resources(presentations/videos/documentation).
> > > I have seen ACDS(Adobe Component Developer Summit) slides but
not
> > able
> > > to get the point. Are those presentations being recorded ?
> > >
> > > Looking forward to a solution :)
> > >
> > > --
> > > chetan
> > > http://www.riageeks.com
> > >
> >
>