I'm hoping others will chime in. Try this presentation on Flex debugging: http://www.authorstream.com/Presentation/Edolf-30961-flex-builder-debugger-Debugging-Applications-Beginning-trace-Beyond-happen-as-Entertainment-ppt-powerpoint/
-Alex --- In [email protected], Adrian Williams <[EMAIL PROTECTED]> wrote: > > Alex, > > when you say a "debug build" what do you mean? and how do I access > the stack trace? whenever I've heard/used stack trace before, its always > been on the C# side and the entire listing that's provided when an > exception is thrown...which in this case was included in the original > thread (at the bottom of this email). > > Thanks, > Adrian > > oneworld95 wrote: > > > > Hi, Adrian, > > > > Wow. That's a doozey of an issue. When you're on the bleeding edge, > > you tend to bleed a lot. My recent experience with the ADG wasn't > > pretty or pleasant, and I bled a lot. But by posting to this group and > > various blogs, I found kind souls who helped and finally, through > > trial-and-error, found the solution. > > > > Some thoughts on the problem, > > - Could it be that after the first (and each) delete, you might need > > to refresh your dataprovider for the ADG? It might be worth a try. > > - I know the myADG.invalidateDisplayList() helped a lot. It forced > > the ADG to fetch the latest data. I overrode the set data() method in > > the itemRenderer. No explicit validateDisplayList() method. > > - I also used the myADG.invalidateList() elsewhere when the screen > > wasn't refreshing. > > > > As Alex Harui suggested, do a debug build and post the entire stack > > trace with the linenumbers here. Good luck :) > > > > Alex > > > > --- In [email protected] > > <mailto:flexcoders%40yahoogroups.com>, Adrian Williams <adrianw@> > > wrote: > > > > > > Ok, I have spent the morning pouring through the debugging trying to > > > figure out what this error is and am completely stymied. I have been > > > able to determine it has nothing to do with my delete functions...the > > > code never makes it to them anyway...I suspect it may be a bug in the > > > core AdvancedDataGridBaseEx code. The actions that are being done are: > > > > > > 1.) A user drags a grouped node off the 6-column ADG to the trash can > > > image on the app control bar... > > > > > > <mx:Image source="{trashImage}" right="80" > > buttonMode="true" > > > toolTip="drag a subgroup here to delete them from the project" > > > dragDrop="deleteSubgroupDrop(event)" > > > dragEnter="deleteSubgroupEnter(event)" id="image2"/> > > > > > > 2.) my drag manager is listening and accepts the dragEnter: > > > > > > private function deleteSubgroupEnter(evt:DragEvent):void > > > { > > > var obj:IUIComponent = IUIComponent(evt.currentTarget); > > > DragManager.acceptDragDrop(obj); > > > } > > > > > > 2.) and then accepts the dragDrop. On the drop, I am throwing an alert > > > box up to confirm that the user wants to do this: > > > > > > private function deleteSubgroupDrop(event:DragEvent):void > > > { > > > partsToDelete = new Array; > > > partsToDelete = currentSubgroups.selectedItems; > > > subgroupToRemove = > > currentSubgroups.selectedItem.GroupLabel; > > > alert.confirm("Are you sure you want to delete this > > > subgroup: '" + subgroupToRemove + > > > "' from the project?? This cannot be reversed!!", > > > deleteSubgroupAction); > > > } > > > > > > 3.) When it hits the alert box, the code then jumps into the core to > > > render the alert box. The code eventually ends up in the > > > LayoutManager.as code on line 592, function validateDisplayList():void. > > > > > > 4.) The logic steps thru all of the objects that are on the stage and > > > for each of them calls the obj.validateDisplayList(); function. All > > goes > > > well until it gets to my ADG. Via the validate leg, it goes to the > > > ADGBaseEx.as code to the function > > > commitEditedItemPosition(coord:Object):void. During the course of this > > > function, the columnIndex is manhandled all over the place. > > Eventually, > > > it gets to line 4406 where it is checking: > > > > > > if(colIndex > lockedColumnCount) > > > > > > and passes this check, stepping to the next line of > > > > > > if (colIndex < horizontalScrollPosition + lockedColumnCount) > > > > > > which fails, then executing a loop against the colIndex. Once the > > > loop is completed, the final line > > > > > > actualColIndex = > > > absoluteToVisibleColumnIndex(displayToAbsoluteColumnIndex(colIndex)); > > > > > > is called, which is on line 7164 of the AdvancedDataGridBaseEx.as > > > code. Within this function is a single method: > > > > > > return displayableColumns[columnIndex].colNum; > > > > > > As I stepped thru the code, I watched the values. columnIndex == 6 > > > and on the execution of this line, the error is thrown. When I hover > > > the mouse over the components of the line, I get tooltips on > > > "displayableColumns (Array displayableColumns - > > > mx.controls.AdvancedDataGridBaseEx) and over [columnIndex] (columnIndex > > > = 6). However, when I hover over the .colNum...I get nothing. In this > > > case, the error is: > > > > > > TypeError: Error #1010: A term is undefined and has no properties. > > > > > > I am really hoping that someone, especially Alex or the like, can > > > provide some insight to what the heck is happening here because I > > > really, really need to get past this error. > > > > > > Best, > > > Adrian > > > > > > oneworld95 wrote: > > > > > > > > What does your delete method look like? Try adding some IF statements > > > > to check for null or undefined values before you run the delete. If > > > > it's null or undefined, do a return. > > > > > > > > --- In [email protected] > > <mailto:flexcoders%40yahoogroups.com> > > > > <mailto:flexcoders%40yahoogroups.com>, Adrian Williams <adrianw@> > > > > wrote: > > > > > > > > > > All, > > > > > > > > > > I could really use some help in identifying where even to begin > > > > > looking to figure out what's causing this problem. > > > > > > > > > > I have a ADG that is displaying a GroupingCollection. > > > > > > > > > > I have an application control bar that has a "trash" image. A user > > > > > can drag a node from the ADG and drop it in the trash to delete the > > > > node > > > > > and all it's children. > > > > > > > > > > When you initially get into the application and drag the first node > > > > > of the tree to the trash, the delete fires correctly and without > > error. > > > > > > > > > > When you try to drag the (now) first node of the tree into the > > > > > trash, I get the following error: > > > > > > > > > > TypeError: Error #1010: A term is undefined and has no properties. > > > > > at > > > > > > > > > > > mx.controls::AdvancedDataGridBaseEx/displayToAbsoluteColumnIndex()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\controls\AdvancedDataGridBaseEx.as:7166] > > > > > at > > > > > > > > > > > mx.controls::AdvancedDataGridBaseEx/commitEditedItemPosition()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\controls\AdvancedDataGridBaseEx.as:4426] > > > > > at > > > > > > > > > > > mx.controls::AdvancedDataGridBaseEx/updateDisplayList()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\controls\AdvancedDataGridBaseEx.as:1807] > > > > > at > > > > > > > > > > > mx.controls::AdvancedDataGrid/updateDisplayList()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\controls\AdvancedDataGrid.as:5924] > > > > > at > > > > > > > > > > > mx.controls.listClasses::AdvancedListBase/validateDisplayList()[C:\Work\flex\dmv_automation\projects\datavisualisation\src\mx\controls\listClasses\AdvancedListBase.as:3071] > > > > > at > > > > > > > > > > > mx.managers::LayoutManager/validateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:602] > > > > > at > > > > > > > > > > > mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:675] > > > > > at Function/http://adobe.com/AS3/2006/builtin::apply > > <http://adobe.com/AS3/2006/builtin::apply> > > > > <http://adobe.com/AS3/2006/builtin::apply > > <http://adobe.com/AS3/2006/builtin::apply>>() > > > > > at > > > > > > > > > > > mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8460] > > > > > at > > > > > > > > > > > mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8403] > > > > > > > > > > This only errors when manipulating the second time you try to > > > > delete > > > > > the first node. You can delete any of the other nodes, repeatedly, > > > > > without error. I suspect there is some kind of out of index problem > > > > > happening but the dump gives me no ideas on where to look. > > > > > > > > > > Anyone?! > > > > > > > > > > Thanks, > > > > > Adrian > > > > > > > > > > > > > > > > > > > > >

