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()); 
                        }

Reply via email to