We may need to see a test case to fully understand what is going on.
________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of letterpigeon Sent: Wednesday, November 21, 2007 8:06 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Performance Impact when using custom item renderer Hi Alex, There were actually 2 checkboxes on the header. One from the header renderer, & another one is due to the item renderer. And if I switched it back to use my original item renderer (the hbox implementation), the problem goes away. --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "Alex Harui" <[EMAIL PROTECTED]> wrote: > > If you set the headerRenderer, then it will be in the header. > > > > ________________________________ > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> ] On > Behalf Of letterpigeon > Sent: Tuesday, November 20, 2007 11:37 AM > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > Subject: [flexcoders] Re: Performance Impact when using custom item > renderer > > > > Hi Scott, > > Somewhere in my code, I'm setting up the configuration of all the > columns, and I'm doing something like this: > > var ignoreColumnConfig:ColumnConfig = new > ColumnConfig; > ignoreColumnConfig.dataField = "ignore"; > ignoreColumnConfig.headerText = "Ignore"; > ignoreColumnConfig.editable = false; > ignoreColumnConfig.itemRenderer = new > ClassFactory(CenteredCheckBoxItemRenderer); > ignoreColumnConfig.headerRenderer = new > ClassFactory(CheckedBoxHeaderRenderer); > columnConfigs.push(ignoreColumnConfig); > var dynamicGrid:DynamicDataGrid = new > DynamicDataGrid > dynamicGrid.columnsConfig = columnConfigs; > > Then in my custom datagrid class, I'm constructing the data grid columns > as follow: > > public function set columnsConfig(value:Array):void > { > _columnsConfig = value; > var columnArray:Array = new Array(); > > for each (var config:ColumnConfig in _columnsConfig) > { > var newColumn:DataGridColumn = new DataGridColumn; > newColumn.headerText = config.headerText; > newColumn.dataField = config.dataField; > newColumn.editable = config.editable; > if(_columnFilterEnabled) > { > var headerRendererClassFactory:ClassFactory; > > headerRendererClassFactory = config.headerRenderer; > > newColumn.headerRenderer = > headerRendererClassFactory; > } > > if(config.itemRenderer!=null) > { > newColumn.itemRenderer = config.itemRenderer; > } > > columnArray.push(newColumn); > } > > this.columns = columnArray; > } > > I'm not sure how to post this code snippet in a code block. I apologize > if it's hard to read. Thanks a lot for your help. > > Ban > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > , Scott Melby <smelby@> wrote: > > > > Nope... I use it quite a bit. Must be a bug in the way you are > > specifying the renderer. Can you post a code snippet? > > > > Scott > > > > Scott Melby > > Founder, Fast Lane Software LLC > > http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > > > > > letterpigeon wrote: > > > > > > Hi Scott, > > > > > > Not sure why if I only use a checkbox (or CenteredCheckBox) as the > > > item renderer, a checkbox also appears on the header of that column. > > > Have you seen this problem before?? Thanks. > > > > > > Ban > > > > > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com>, Scott Melby smelby@ wrote: > > > > > > > > Should have mentioned a couple of quick cheats in case you have > not > > > > thought of them... if you use Alex's centered image renderer then > you > > > > could probably do either of the following very easily > > > > > > > > 1) Put the label in the column next to the image > > > > 2) Just show the image and set the data tip for the column to be > the > > > > label text. > > > > > > > > hth > > > > Scott > > > > > > > > Scott Melby > > > > Founder, Fast Lane Software LLC > > > > http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > > > > > > > > > > > > > > Scott Melby wrote: > > > > > Check out CenteredCheckBox on Alex's blog (assuming you want it > > > > > centered, otherwise just use CheckBox). I think Alex's blog also > has > > > > > something for a centered image which should be easily adaptable > to > > > add > > > > > the text next to it (if it doesn't already support it). You can > > > > > contact me off list if you want help with the image one. > > > > > > > > > > Scott > > > > > Scott Melby > > > > > Founder, Fast Lane Software LLC > > > > > http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > > > > > > > > > > > > > letterpigeon wrote: > > > > >> > > > > >> Hi Scott and Alex, > > > > >> > > > > >> Thanks for all your help. I adopted Alex's example of the > > > > >> backgroundColorRenderer and it worked really well. So now I'm > using > > > > >> this lightweight for most of the columns in my datagrid except > 2, > > > > >> which are both hbox'es. One to display a checkbox, and another > one to > > > > >> display an image along side with the text. What > components/classes do > > > > >> you think should be used to further improve performance? > Thanks. > > > > >> > > > > >> Ban > > > > >> > > > > >> --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > >> <mailto:flexcoders%40yahoogroups.com>, Scott Melby <smelby@> > wrote: > > > > >> > > > > > >> > Ban - > > > > >> > > > > > >> > I don't think TextInput is nearly as lightweight as you might > > > think. > > > > >> Do > > > > >> > you really need them all to be editable at all times? > Typically I > > > > >> use a > > > > >> > lightweight itemrenderer derived from UIComponent etc. and > use a > > > > >> > separate itemEditor (TextInput, ComboBox, DateField), etc. > when the > > > > >> user > > > > >> > clicks on a particular data value (row/column). > > > > >> > > > > > >> > hth > > > > >> > Scott > > > > >> > > > > > >> > Scott Melby > > > > >> > Founder, Fast Lane Software LLC > > > > >> > http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > >> > > > > >> > > > > > >> > > > > > >> > > > > > >> > letterpigeon wrote: > > > > >> > > > > > > >> > > Hi Scott, > > > > >> > > > > > > >> > > Thanks for your post. But I'm on flex 2 now so the > > > > >> > > AdvancedDataGridItemRenderer is not available to me. Also, > in > > > terms > > > > >> > > of keeping the item renderer as light weight as possible, > my item > > > > >> > > renderer is just a TextInput and I change its background > color by > > > > >> > > calling this.styleName = "ErrorCell" where "ErrorCell" is > > > defined in > > > > >> > > my stylesheet. But even if I comment all this out, & have > my item > > > > >> > > renderer just to renderer the text, I'm still seeing a > > > considerable > > > > >> > > performance hit just by using custom item renderers on all > the > > > > >> columns > > > > >> > > of my datagrid. Is this a limitation in flex that we must > > > trade off > > > > >> > > performance for using custom renderers heavily?? Thanks. > > > > >> > > > > > > >> > > Ban > > > > >> > > > > > > >> > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > >> <mailto:flexcoders%40yahoogroups.com> > > > > >> > > <mailto:flexcoders%40yahoogroups.com>, Scott Melby > <smelby@> > > > wrote: > > > > >> > > > > > > > >> > > > Check out this post <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > > > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > > > > > > >> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > >> > > > > >> > > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > > > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > > > > > > >> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > > > <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> <http://blog.fastlanesw.com/?p=25 <http://blog.fastlanesw.com/?p=25> > > >>>> on my blog > > > > >> > > where > > > > >> > > > I discuss and demonstrate performance diffs using various > item > > > > >> > > renderers > > > > >> > > > in Flex. Source code is available if you run the app and > right > > > > >> click. > > > > >> > > > Notice how the optimized renderer does not use layout > > > containers > > > > >> > > such as > > > > >> > > > HBox, etc. Instead it extends the > AdvancedDataGridItemRenderer > > > > >> class. > > > > >> > > > In general you want to make your renderers as light > weight as > > > > >> possible. > > > > >> > > > > > > > >> > > > hth > > > > >> > > > Scott > > > > >> > > > > > > > >> > > > Scott Melby > > > > >> > > > Founder, Fast Lane Software LLC > > > > >> > > > http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > >> > > > > >> <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > > > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > > <http://www.fastlanesw.com <http://www.fastlanesw.com> <http://www.fastlanesw.com <http://www.fastlanesw.com> > >>> > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > letterpigeon wrote: > > > > >> > > > > > > > > >> > > > > Hi all, > > > > >> > > > > > > > > >> > > > > I'm seeing a huge performance degradation while using > > > custom item > > > > >> > > > > renderer with a datagrid. My datagrid is using a custom > item > > > > >> renderer > > > > >> > > > > for all its column. And even if my item renderer does > > > nothing > > > > >> more > > > > >> > > > > than : > > > > >> > > > > > > > > >> > > > > public override function data(value:object) > > > > >> > > > > { > > > > >> > > > > super.data = value; > > > > >> > > > > } > > > > >> > > > > > > > > >> > > > > I'm still seeing a few more seconds delay compared to > not > > > > >> using custom > > > > >> > > > > item renderers for a data set of 50 rows or more. > > > > >> > > > > > > > > >> > > > > Just wondering if this is a known issue with flex due > to > > > heavy > > > > >> graphic > > > > >> > > > > rendering? Any pointers on how to speed things up a > > > little bit? > > > > >> > > Thanks. > > > > >> > > > > > > > > >> > > > > Ban > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > > > > > > > >