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