Doug: What my current problem is;
When do anything anything that makes the popup close (PopUpManager.removePopUp) when I subsequently press the tab key focus goes to a textInput in another module. I assume that tab loops are module specific aren't they? Paul --- In [email protected], "prljamdm" <[EMAIL PROTECTED]> wrote: > > What do you mean by "leave my popup"? Mouse out of it or click on a > field outside of it? > > -Doug > > --- In [email protected], "aceoohay" <pauls@> wrote: > > > > Alex: > > > > Thanks, that seems to have done it. > > > > Now on to the next problem, why when I leave my popup, and strike > > the tab key does it go to a field in a different module... > > > > Paul > > > > --- In [email protected], Alex Harui <aharui@> wrote: > > > > > > Before you do all of that, try delaying your focus setting > > function using callLater. It might just be a timing problem. > > > > > > From: [email protected] > > [mailto:[EMAIL PROTECTED] On Behalf Of aceoohay > > > Sent: Monday, September 15, 2008 1:26 PM > > > To: [email protected] > > > Subject: [flexcoders] Re: How can I set focus to a field in a > > programatically created popup? > > > > > > > > > Kenneth: > > > > > > I'm not sure that I know how to do all the things I would need to > > do. > > > > > > In the current code I create a titlewindow, add all of the bits and > > > pices such as horizontal boxes, textinputs, and datagrids, which > > are > > > all dynamic and can change based on content, and then I use the > > > popup manager to display it. > > > > > > I don't know how to accomplish the same thing starting out with a > > > mxml component. > > > > > > Paul > > > > > > --- In [email protected]<mailto:flexcoders% > > 40yahoogroups.com>, "Kenneth Sutherland" > > > <kenneth.sutherland@> wrote: > > > > > > > > Why don't you try > > > > > > > > ttlwQuery.addEventListener(FlexEvent.SHOW, functionToSetFocus); > > > > > > > > > > > > > > > > I'd also recommend not creating the titleWindow inside the > > > > loadQueryCanvas, it would be better to create as separate class > > > which is > > > > a titlewindow that you can then create and show. See > > > > http://blog.flexexamples.com/2008/08/16/creating-an- undraggable- > > > titlewin > > > > dow-container-in-flex/ for an example if I'm not making sense J > > > > > > > > > > > > > > > > > > > > > > > > P.S I've know people to use private paste to show there code. > > > > http://privatepaste.com/ > > > > > > > > Handy especially as pasting code into an email normally makes it > > > > unreadable. > > > > > > > > > > > > > > > > HTH, > > > > > > > > Kenneth. > > > > > > > > > > > > > > > > From: [email protected]<mailto:flexcoders% > > 40yahoogroups.com> > > > [mailto:[email protected]<mailto:flexcoders% > > 40yahoogroups.com>] On > > > > Behalf Of aceoohay > > > > Sent: 15 September 2008 15:36 > > > > To: [email protected]<mailto:flexcoders% > > 40yahoogroups.com> > > > > Subject: [flexcoders] Re: How can I set focus to a field in a > > > > programatically created popup? > > > > > > > > > > > > > > > > Kenneth: > > > > > > > > Thanks for the response. That is precisely how I have done it in > > > the > > > > past as well. Unfortunately, I do not know how to create > > > > functions "on-the-fly." I am creating the entire object using AS > > > > code and then displaying it in a popup. Is there a way of > > creating > > > a > > > > new function in an object as you create it? If so I could create > > > an > > > > initApp() function and call it from creationComplete. > > > > > > > > Also is there a better way of posting code so that it doesn't > > lose > > > > its formatting? > > > > > > > > Paul > > > > --- In [email protected]<mailto:flexcoders% > > 40yahoogroups.com> <mailto:flexcoders% > > > 40yahoogroups.com> > > > > , "Kenneth Sutherland" > > > > <kenneth.sutherland@> wrote: > > > > > > > > > > I haven't tried your code but I would normally do what you're > > > doing > > > > > using the show event. > > > > > > > > > > > > > > > > > > > > e.g. show="fieldToGetFocus.setFocus();" > > > > > > > > > > > > > > > > > > > > this would go inside of your popup code. > > > > > > > > > > > > > > > > > > > > From: [email protected]<mailto:flexcoders% > > 40yahoogroups.com> <mailto:flexcoders% > > > 40yahoogroups.com> > > > > > > > > [mailto:[email protected]<mailto:flexcoders% > > 40yahoogroups.com> <mailto:flexcoders% > > > 40yahoogroups.com> > > > > ] On > > > > > Behalf Of aceoohay > > > > > Sent: 15 September 2008 07:38 > > > > > To: [email protected]<mailto:flexcoders% > > 40yahoogroups.com> <mailto:flexcoders% > > > 40yahoogroups.com> > > > > > Subject: [flexcoders] How can I set focus to a field in a > > > > > programatically created popup? > > > > > > > > > > > > > > > > > > > > I am creating a titlewindow with some fields completely in AS3 > > > > > script. I then display this object using a popup. I want to set > > > > focus > > > > > to the very first field in the popped up titlewindow. > > > > > > > > > > I have tried a number of things, the most promising (I thought) > > > > was > > > > > to add a creation complete event listener. This did not work. > > > > > > > > > > All ideas welcome, here is the code; > > > > > > > > > > public function loadQueryCanvas():void > > > > > { > > > > > _ttlwQuery = new TitleWindow; > > > > > _hbQuery = new HBox; > > > > > _dgDisplay = new DataGrid; > > > > > // _ttlwQuery.width = 200; > > > > > // _ttlwQuery.height = 200; > > > > > _ttlwQuery.showCloseButton = true; > > > > > _ttlwQuery.title = _title; > > > > > _ttlwQuery.addEventListener > > > > > (CloseEvent.CLOSE,closePopup); > > > > > /* var intX:int = _targetTextBox["x"]; > > > > > var intY:int = _targetTextBox["y"] + > > > > > _targetTextBox["height"] + 2; > > > > > _ttlwQuery.x = intX; > > > > > _ttlwQuery.y = intY; > > > > > */ > > > > > var cvsQuery:Canvas = new Canvas; > > > > > _hbQuery.height = 25; > > > > > var txtField:ValidatedTextInput; > > > > > var lblField:Label; > > > > > var dgColumn:DataGridColumn; > > > > > var aryColumns:Array = new Array; > > > > > var intTabIndex:int = 0; > > > > > for each (var objItem:Object in > > > > > _searchFields) > > > > > { > > > > > if (objItem["Input"] == "Y") > > > > > { > > > > > lblField = new Label > > > > > lblField.text = > > > > > objItem["Label"] + ":"; > > > > > lblField.id > > > > > = "lbl" + objItem["Field"]; > > > > > lblField..setStyle > > > > > ("fontWeight","bold"); > > > > > _hbQuery.addChild > > > > > (lblField); > > > > > txtField = new > > > > > ValidatedTextInput; > > > > > txtField.name > > > > > = "txt" + objItem["Field"]; > > > > > txtField.width = > > > > > objItem["Width"]; > > > > > txtField.maxChars = > > > > > objItem["MaxChars"]; > > > > > txtField.dataType = > > > > > objItem["DataType"]; > > > > > > > > > > txtField.charactersAlsoPermitted = "%_"; > > > > > txtField.tabIndex = > > > > > intTabIndex; > > > > > intTabIndex++; > > > > > if (!_txtFirstField) > > > > > _txtFirstField = txtField; > > > > > _hbQuery.addChild > > > > > (txtField); > > > > > } > > > > > dgColumn = new DataGridColumn > > > > > (); > > > > > dgColumn.dataField = objItem > > > > > ["Field"]; > > > > > dgColumn.width = objItem > > > > > ["Width"]; > > > > > dgColumn.headerText = objItem > > > > > ["Label"]; > > > > > aryColumns.push(dgColumn); > > > > > } > > > > > var btnSearch:Button = new Button; > > > > > btnSearch.id = "btnSearch"; > > > > > btnSearch.label = "Search" > > > > > btnSearch.addEventListener > > > > > (MouseEvent.CLICK,doSearch); > > > > > _hbQuery.addChild(btnSearch); > > > > > _hbQuery.defaultButton = btnSearch; > > > > > _dgDisplay.id = "_dgDisplay"; > > > > > _dgDisplay.columns = aryColumns; > > > > > // _dgDisplay.dataProvider = > > > > > _acDataTable; > > > > > _dgDisplay.x = 0; > > > > > _dgDisplay.y = 26; > > > > > _dgDisplay.height = > > > > > _targetTextBox.parent.height - 100; > > > > > _dgDisplay.percentWidth = 100; > > > > > _dgDisplay.addEventListener > > > > > (ListEvent.ITEM_CLICK,_dgDisplaySelected); > > > > > // _dgDisplay.addEventListener > > > > > (DataGridEvent.HEADER_RELEASE,headerReleaseHandler); > > > > > cvsQuery.addChild(_hbQuery); > > > > > cvsQuery.addChild(_dgDisplay); > > > > > _ttlwQuery.addChild(cvsQuery); > > > > > > > > > > _ttlwQuery.visible = true; > > > > > _ttlwQuery.addEventListener > > > > > (FlexEvent.CREATION_COMPLETE,setPopupFocus); > > > > > PopUpManager.addPopUp(_ttlwQuery, > > > > > _targetTextBox.parent, true); > > > > > PopUpManager.centerPopUp(_ttlwQuery); > > > > > > > > > > // var event:Event; > > > > > // doSearch(event); > > > > > // _targetTextBox.parent.addChild > > > > > (_ttlwQuery); > > > > > > > > > > } > > > > > public function setPopupFocus > > > > > (event:Event):void > > > > > { > > > > > _ttlwQuery.focusManager.setFocus > > > > > (_ttlwQuery.focusManager.getNextFocusManagerComponent()); > > > > > } > > > > > > > > > > > > > > > > > > > > Disclaimer > > > > > ---------------------------------------------------------- > > > > ------------------------ > > > > > This electronic message contains information which may be > > > > privileged and confidential. The information is intended to be > > for > > > > the use of the individual(s) or entity named above. If you are > > not > > > > the intended recipient, be aware that any disclosure, copying, > > > > distribution or use of the contents of this information is > > > > prohibited. If you have received this electronic message in > > error, > > > > please notify us by telephone on 0131 476 6000 and delete the > > > > material from your computer. > > > > > Registered in Scotland number: SC 172507. > > > > > Registered office address: Quay House 142 Commercial Street > > > > Edinburgh EH6 6LB. > > > > > > > > > > This email message has been scanned for viruses by Mimecast. > > > > > ---------------------------------------------------------- > > > > ------------------------ > > > > > > > > > > > > > > > > > > > > > Disclaimer > > > > ---------------------------------------------------------- > > > ------------------------ > > > > This electronic message contains information which may be > > > privileged and confidential. The information is intended to be for > > > the use of the individual(s) or entity named above. If you are not > > > the intended recipient, be aware that any disclosure, copying, > > > distribution or use of the contents of this information is > > > prohibited. If you have received this electronic message in error, > > > please notify us by telephone on 0131 476 6000 and delete the > > > material from your computer. > > > > Registered in Scotland number: SC 172507. > > > > Registered office address: Quay House 142 Commercial Street > > > Edinburgh EH6 6LB. > > > > > > > > This email message has been scanned for viruses by Mimecast. > > > > ---------------------------------------------------------- > > > ------------------------ > > > > > > > > > >

