Error: Error #1023: Stack overflow occurred.
Hi,
I'm running into this error when trying to display a modal window using popupmanager and .
Here's my code: the stack overflow happens on the line PopUpManager.addPopUp(detailedAXWindow, this, true);
package com.ppdi.dashboard.view.isysmon
{
import com.ppdi.dashboard.view.AXGrid;
import com.ppdi.dashboard.view.AXGridTitleWindow;
import mx.collections.ArrayCollection;
import mx.controls.AdvancedDataGrid;
import mx.controls.Text;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
import mx.events.ListEvent;
import mx.managers.PopUpManager;
public class ISYSMonTable extends AXGrid
{
private var printColumns:Array;
private var mother:ISYSMonContent;
private var procId:String;
private var vInt:int;
private var hdrStudyNumber:String;
private var hdrStudyGroup:String;
private var hdrPeriod:String;
private var hdrStudyDay:String;
private var hdrTimepoint:String;
private var hdrProcedure:String;
import mx.events.CloseEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.controls.Alert;
import com.ppdi.dashboard.tools.Tools;
import mx.managers.CursorManager;
import mx.collections.XMLListCollection;
// Embed the icon for the groups.
[Bindable]
[Embed(source="assets/right_arrow_up.gif")]
public var icn:Class;
private var clickCount:int = 0;
private var prevValueStr:String = "";
private var httpServiceDrillDown:HTTPService;
function ISYSMonTable(dP:ArrayCollection, mother:ISYSMonContent)
{
super(dP);
super.showPrintExport(false);
//super.showSearchBox(false);
this.mother = mother;
//Initialize the HTTP Service
this.httpServiceDrillDown = new HTTPService();
//DON'T HARD CODE URL
//this.httpServiceDrillDown.url= mother.getDrillDownURL();
this.httpServiceDrillDown.url= "http://ausecas02.americas.ppdi.local/flexchart/htdocs/flexchart/ISYSSubjects.jsp";
this.httpServiceDrillDown.resultFormat = "e4x";
this.httpServiceDrillDown.addEventListener(FaultEvent.FAULT, onFaultHttpServiceDrillDown);
this.httpServiceDrillDown.addEventListener(ResultEvent.RESULT, onResultHttpServiceDrillDown);
}
private function onFaultHttpServiceDrillDown(e:FaultEvent):void
{
Alert.show("Unable to load data for Drill Down. \nPlease contact eClinics Development Group. Fault Reason :\n" + e.message);
}
private function onResultHttpServiceDrillDown(e:ResultEvent):void
{
//WRITE THE DRILL DOWN CODE
var dArr:Array = Tools.xmlListToObjectArray(e.result.item);
var mappingArr:Array = new Array(dArr.length);
if (dArr == null)
{
Alert.show("Can not initialize due to NULL data array.");
}
else if (dArr.length == 0)
{
Alert.show("Can not initialize as no data could be retrieved.");
}
else
{
//POPULATE THE MAPPING ARRAY
// var detailArr:Array = new Array(this.dataArray.length);
for (var i:int = 0; i < dArr.length; i++)
{
mappingArr = new Array(19);
mappingArr["Rando"] = dArr["SUBJECT_NUMBER"];
mappingArr["SID"] = dArr["SCREENING_NUMBER"];
mappingArr["Initials"] = dArr["INITIALS"];
mappingArr["Type"] = dArr["SCHEDULE_PROCEDURE_TYPE"];
mappingArr["Scheduled Start Time"] = dArr["SCHEDULED_START_TIME"];
mappingArr["Scheduled End Time"] = dArr["SCHEDULED_END_TIME"];
mappingArr["Actual Time"] = dArr["ACTUAL_TIME"];
mappingArr["Status"] = dArr["STATUS"];
mappingArr["Flag"] = "";
if (dArr["PROCEDURE_STATUS"] == "P")
mappingArr["Procedure Status"] = "Pending";
else if (dArr["PROCEDURE_STATUS"] == "C")
mappingArr["Procedure Status"] = "Complete";
else if (dArr["PROCEDURE_STATUS"] == "I")
mappingArr["Procedure Status"] = "Incomplete";
}
var dP:ArrayCollection = new ArrayCollection(mappingArr);
//OPEN THE POPUP TITLE WINDOW WITH DATA
//mx.controls.Alert.show("GENERATED ");
var popupAX:ISYSMonPopUpTable = new ISYSMonPopUpTable(dP);
//mx.controls.Alert.show("TABLE CREATED ");
var detailedAXWindow:AXGridTitleWindow = new AXGridTitleWindow(popupAX);
var titleText:Text = new Text();
var htmlString:String = "<font color='#000000'>Procedure ON TIME</font> <b><font color='#FF0000'>Procedure LATE</font></b>";
titleText.htmlText = htmlString;
//mx.controls.Alert.show("WINDOW CREATED ");
detailedAXWindow.addEventListener(CloseEvent.CLOSE,closePopUp);
//var detailedPopup:IFlexDisplayObject = PopUpManager.createPopUp(this, Class(detailedAXWindow), true);
detailedAXWindow.setStyle("borderAlpha",1.0);
detailedAXWindow.height = 380;
detailedAXWindow.width = 780;
detailedAXWindow.title = "Study: " + hdrStudyNumber + " Group: " + hdrStudyGroup + " Period: " + hdrPeriod + " Study Day: " + hdrStudyDay +
" Timepoint: " + hdrTimepoint + " Procedure: " + hdrProcedure;
detailedAXWindow.setStyle("headerHeight",50);
detailedAXWindow.setStyle("borderColor","#FFFFFF");
PopUpManager.addPopUp(detailedAXWindow, this, true);
PopUpManager.centerPopUp(detailedAXWindow);
}
}
private function closePopUp(e:CloseEvent):void
{
mother.autoFresh.delay = mother.autoRefreshMinute * 60 * 1000;
mother.autoFresh.start();
}
/**
* First column is a flag. Hence, first two column can be locked
*/
override protected function setLockedColumnCount():void
{
super.dataGrid.lockedColumnCount = 2;
}
override public function createDataGrid():AdvancedDataGrid
{
var myDGrid:AdvancedDataGrid = new AdvancedDataGrid();
//myDGrid.itemRenderer = new ClassFactory(com.ppdi.dashboard.view.ADGItemRendererEx);
myDGrid.dataProvider = super.dataProvider;
myDGrid.id = "detailedGrid";
myDGrid.name ="ISYS Monitoring Table";
var procStatus:AdvancedDataGridColumn = new AdvancedDataGridColumn();
procStatus.headerText = "Procedure Status";
procStatus.dataField = "Procedure Status";
procStatus.headerWordWrap = true;
procStatus.wordWrap = true;
procStatus.width = 80;
var studyNumber:AdvancedDataGridColumn = new AdvancedDataGridColumn();
studyNumber.headerText = "Study Number";
studyNumber.dataField = "Study";
studyNumber.headerWordWrap = true;
studyNumber.wordWrap = true;
studyNumber.width = 80;
var studyGroup:AdvancedDataGridColumn = new AdvancedDataGridColumn();
studyGroup.headerText = "Study Group";
studyGroup.dataField = "Study Group";
studyGroup.headerWordWrap = true;
studyGroup.wordWrap = true;
studyGroup.width = 60;
var period:AdvancedDataGridColumn = new AdvancedDataGridColumn();
period.headerText = "Period";
period.dataField = "Period";
period.width = 60;
var studyDay:AdvancedDataGridColumn = new AdvancedDataGridColumn();
studyDay.headerText = "Study Day";
studyDay.dataField = "Study Day";
studyDay.headerWordWrap = true;
studyDay.width = 60;
var timepoint:AdvancedDataGridColumn = new AdvancedDataGridColumn();
timepoint.headerText = "Timepoint";
timepoint.dataField = "Timepoint";
timepoint.width = 85;
var procName:AdvancedDataGridColumn = new AdvancedDataGridColumn();
procName.headerText = "Procedure";
procName.dataField = "Procedure";
procName.width = 220;
procName.wordWrap = true;
var hasRepeats:AdvancedDataGridColumn = new AdvancedDataGridColumn();
hasRepeats.headerText = "Repeats";
hasRepeats.dataField = "Repeats";
hasRepeats.width = 70;
hasRepeats.wordWrap = true;
var procDate:AdvancedDataGridColumn = new AdvancedDataGridColumn();
procDate.headerText = "Procedure Date";
procDate.headerWordWrap = true;
procDate.dataField = "Procedure Date";
procDate.width = 90;
procDate.wordWrap = true;
var beginTime:AdvancedDataGridColumn = new AdvancedDataGridColumn();
beginTime.headerText = "Begin Time";
beginTime.headerWordWrap = true;
beginTime.dataField = "Begin Time";
beginTime.width = 60;
var endTime:AdvancedDataGridColumn = new AdvancedDataGridColumn();
endTime.headerText = "End Time";
endTime.headerWordWrap = true;
endTime.dataField = "End Time";
endTime.width = 60;
var schedTechs:AdvancedDataGridColumn = new AdvancedDataGridColumn();
schedTechs.headerText = "Scheduled Technicians";
schedTechs.headerWordWrap = true;
schedTechs.dataField = "Scheduled Technicians";
schedTechs.width = 230;
schedTechs.wordWrap = true;
var actualTech:AdvancedDataGridColumn = new AdvancedDataGridColumn();
actualTech.headerText = "Actual Technician / Logon Time";
actualTech.headerWordWrap = true;
actualTech.dataField = "Actual Technician";
actualTech.width = 130;
actualTech.wordWrap = true;
myDGrid.groupedColumns = [procStatus, studyNumber, studyGroup, period, studyDay, timepoint, procName, hasRepeats, procDate, beginTime, endTime, schedTechs, actualTech];
myDGrid.addEventListener(ListEvent.ITEM_CLICK, dataClicked);
myDGrid.styleFunction = styleISYSMonTable;
return myDGrid;
}
public function styleISYSMonTable(data:Object, col:AdvancedDataGridColumn):Object
{
var status:String = data["Status"];
procId = data["procedureId"];
vInt = data["interval"];
hdrStudyNumber = data["Study"];
hdrStudyGroup = data["Study Group"];
hdrPeriod = data["Period"];
hdrStudyDay = data["Study Day"];
hdrTimepoint = data["Timepoint"];
hdrProcedure = data["Procedure"].toString().substring(0,25);
if (status.substring(0,1).toUpperCase() == "L")
return {color:0xFF0000, fontWeight:"bold"};
else
return null;
}
override public function updateDataProvider(dP:ArrayCollection):void
{
//this.clickCount = 0;
super.updateDataProvider(dP);
}
private function dataClicked(event:ListEvent):void
{
var selectedColumn:AdvancedDataGridColumn = this.dataGrid.columns[event.columnIndex];
var arr:Array= super.dataProvider.toArray();
var value:String = arr[event.rowIndex][selectedColumn.dataField];
var params:Object = { procedureId: procId , interval: vInt};
mother.autoFresh.stop();
this.httpServiceDrillDown.send(params);
}
override public function getPrintGridColumns():Array
{
var flag:AdvancedDataGridColumn = new AdvancedDataGridColumn();
flag.headerText = "Flag";
flag.dataField = "Flag";
flag.width = 30;
var studyGroup:AdvancedDataGridColumn = new AdvancedDataGridColumn();
studyGroup.headerText = "Study Group";
studyGroup.dataField = "Study Group";
studyGroup.wordWrap = true;
studyGroup.width = 70;
var period:AdvancedDataGridColumn = new AdvancedDataGridColumn();
period.headerText = "Period";
period.dataField = "Period";
period.width = 70;
var studyDay:AdvancedDataGridColumn = new AdvancedDataGridColumn();
studyDay.headerText = "Study Day";
studyDay.dataField = "Study Day";
studyDay.width = 50;
var timepoint:AdvancedDataGridColumn = new AdvancedDataGridColumn();
timepoint.headerText = "Timepoint";
timepoint.dataField = "Timepoint";
timepoint.width = 50;
var procName:AdvancedDataGridColumn = new AdvancedDataGridColumn();
procName.headerText = "Procedure";
procName.dataField = "Procedure";
procName.width = 80;
procName.wordWrap = true;
var procDate:AdvancedDataGridColumn = new AdvancedDataGridColumn();
procDate.headerText = "Procedure Date";
procDate.dataField = "Procedure Date";
procDate.width = 70;
procDate.wordWrap = true;
var schedTechs:AdvancedDataGridColumn = new AdvancedDataGridColumn();
schedTechs.headerText = "Scheduled Technicians";
schedTechs.dataField = "Scheduled Technicians";
schedTechs.width = 80;
schedTechs.wordWrap = true;
this.printColumns = [flag, studyGroup, period, studyDay, timepoint, procName, procDate, schedTechs];
return this.printColumns;
}
override public function getPrintHdr():String
{
return "ISYS Monitoring";
}
}
}
Here's the error message:
Error: Error #1023: Stack overflow occurred.
at mx.controls.listClasses::BaseListData()
at mx.controls.dataGridClasses::DataGridListData()
at mx.controls.advancedDataGridClasses::AdvancedDataGridListData()
at mx.controls.advancedDataGridClasses::AdvancedDataGridBase/makeListData()
at mx.controls::AdvancedDataGrid/makeListData()
at mx.controls::AdvancedDataGrid/createHeaderItems()
at mx.controls::AdvancedDataGrid/createHeaders()
at mx.controls::AdvancedDataGrid/calculateHeaderHeight()
at mx.controls::AdvancedDataGridBaseEx/makeRowsAndColumns()
at mx.controls::AdvancedDataGrid/makeRowsAndColumns()
at mx.controls.listClasses::AdvancedListBase/makeRowsAndColumnsWithExtraRows()
at mx.controls.listClasses::AdvancedListBase/updateDisplayList()
at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()
at mx.controls::AdvancedDataGrid/updateDisplayList()
at mx.core::ScrollControlBase/setScrollBarProperties()
at mx.controls::AdvancedDataGridBaseEx/configureScrollBars()
at mx.controls.listClasses::AdvancedListBase/updateDisplayList()
at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()
at mx.controls::AdvancedDataGrid/updateDisplayList()
at mx.core::ScrollControlBase/setScrollBarProperties()
at mx.controls::AdvancedDataGridBaseEx/configureScrollBars()
at mx.controls.listClasses::AdvancedListBase/updateDisplayList()
at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()
at mx.controls::AdvancedDataGrid/updateDisplayList()
at mx.core::ScrollControlBase/setScrollBarProperties()
Any help will be appreciated