ItemRenderer for TreeColumn in AdvancedDataGrid in Flex

Can I use the renderer for treecolumn in advanceddatagrid and maintain hierarchical functionality? If I use a visualization provider, I lose the arrow for the tree drop-down list. I want to keep the functionality of the tree and change the display of the column. (Not just a folder image)

<mx:AdvancedDataGridRendererProvider column="{titleCol}" depth="1" renderer="com.something.titleColumnRenderer"/> 

titleColumnRenderer:

 <mx:VBox width="100%" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Label id="titleLabel" textAlign="center" text="sometext" width="100"/></mx:VBox> 
+4
source share
1 answer

Here is what I did for this:

  • Create a class extending AdvancedDataGridGroupItemRenderer
  • In the new class, override updateDisplayList and do what you need to do
  • Assign a new class to the groupItemRenderer property in AdvancedDataGrid

Here your new class might look like

 public class CustomGroupRenderer extends AdvancedDataGridGroupItemRenderer { override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); var listData:AdvancedDataGridListData = listData as AdvancedDataGridListData; var advancedDataGrid:AdvancedDataGridDataGrid = listData.owner as AdvancedDataGrid; var cellBackgroundColor:uint = 0xFF0000; var g:Graphics = graphics; g.clear(); if (!advancedDataGrid.isItemSelected(data) && !advancedDataGrid.isItemHighlighted(data)) { g.beginFill(cellBackgroundColor); g.drawRect(0, 0, unscaledWidth, unscaledHeight); g.endFill(); } } } 

And then set the classItemRenderer property for AdvancedDataGrid to this class:

 <mx:AdvancedDataGrid groupItemRenderer="com.whereever.CustomGroupRenderer"/> 

Or, in ActionScript:

 myAdvancedDataGrid.groupItemRenderer = new ClassFactory(com.whereever.CustomGroupRenderer); 
+10
source

Source: https://habr.com/ru/post/1306945/


All Articles