If you have not run across this already, the AdvancedDataGrid, and by extension the ExtendedAdvancedDataGrid have poor performance with large number of grouped columns. Another issue is that with really large column groups, you could not really set the width of the grid to a reasonable number. Yet another issue has been jumpy scrolling with the ADG. Since Ultimate has true smooth scrolling, it never had the problem with the width/scrolling. However, Up until 2.2, it shared similar performance issues. But never fear, 2.3 to the rescue.
Whenever you have a library that is used by a large number of developers, there are always corner cases that do not seem feasible at the very outset, but do turn out to be the exact pain point for some folks.
Well, we hit a corner case. Column Groups was a major addition to 2.2, and while they look pretty with and provide ability to group columns, they also come in very handy when you have a large number of columns. Prior to column groups, we had not really considered a case where you would have thousands or even hundreds of columns. Usually we see grids with a few dozen columns max. So, we never really bothered testing and optimizing for a very large number of columns.But in the past 2-3 weeks, we have had a number of folks come to us with this concern.
For those of you who like to know the internals, we do horizontal and vertical renderer recycling. But for the chrome area, we didnt do any. So if you have a 1000 columns, you are looking at creating 1000 cells. If you have 1000 footers, 2000 cells. You get the idea. Well, come 2.3, that's all changing! We've extended full renderer recycling to the chrome cells. So if you have a 100 columns, or a 1000, does not matter anymore.
In this example, we've created a 800X800 table with column groups, The init delay is caused by the instantiation of the actual data ( 640K calls to getrandom) but that should be asynchronous in a real world environment with the nice Flex wait clock. Also, newly added is a property to the columnGroup - enableExpand - draws a little expand collapse icon into the group. Nifty functionality. Watch this post for a live example to be uploaded soon.