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], Alex Harui <aha...@...> 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:[email protected]] On Behalf Of cksachdev > Sent: Monday, February 09, 2009 11:57 AM > To: [email protected] > 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 >, 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:[email protected]<mailto:flexcomponents%40yahoogr oups.com>] On Behalf Of cksachdev > > Sent: Sunday, February 08, 2009 9:14 PM > > To: [email protected]<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 > > >
