Thanks for the link Alex....
I am quite familiar with the flex builder debugger and have used it
extensively...in fact used it to help nail down where the problem was
occurring and why.
As fate would have it, the error is now gone. My coding partner and
I both merged in some changes we were making to that particular ADG
(persisting re-ordering nodes via drag and drop and adding another
column to the grid) and something we've done has made this error
disappear...when we get a breathe, we'll take a look at what we did to
see if we can figure out what made the error disappear.
I can post the code for the page in here if that's what would
help...but keep in mind it's a couple thousand lines...
Finally, here is the stack dump that is created when the exception
was thrown:
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()
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]
Thanks a ton!!!
Adrian
oneworld95 wrote:
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/
<http://www.authorstream.com/Presentation/Edolf-30961-flex-builder-debugger-Debugging-Applications-Beginning-trace-Beyond-happen-as-Entertainment-ppt-powerpoint/>
-Alex
--- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>, 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 flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
> > <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 flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
> > <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>>
> > > > <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
> > > > >
> > > >
> > > >
> > >
> >
> >
>