Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
Adobe Flex SDK Previous
-
None
-
Affected OS(s): All OS Platforms
Affected OS(s): All OS Platforms
Language Found: English
Description
The AdvancedDataGrid.makeListData() function incorrectly checks "iterator" against the HierarchicalCollectionViewCursor class, when it should check against the IHierarchicalCollectionViewCursor interface instead. This means that custom cursors that "extend" HierarchicalCollectionViewCursor will be recognized correctly as being hierarchical, but custom cursors that directly "implement" the IHierarchicalCollectionViewCursor interface instead will not.
The solution is clear: change all references to HierarchicalCollectionViewCursor in AdvancedDataGrid.makeListData() to IHierarchicalCollectionViewCursor instead. Note, this bug was also present in the AdvancedDataGrid.getItemDepth() / getCurrentCursorDepth() function chain back in build 184505, but that has since been fixed... this bug should probably have been fixed at the same time
Workaround:
Subclass the AdvancedDataGrid, adding the following override:
override protected function makeListData(data:Object, uid:String, rowNum:int, columnNum:int, column:AdvancedDataGridColumn):BaseListData
{ var advancedDataGridListData:AdvancedDataGridListData = super.makeListData(data,uid,rowNum,columnNum,column) as AdvancedDataGridListData; if (iterator && iterator is IHierarchicalCollectionViewCursor && !(iterator is HierarchicalCollectionViewCursor) && columnNum == treeColumnIndex && !(data is AdvancedDataGridColumn)) initListData(data, advancedDataGridListData); return advancedDataGridListData; }