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
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > >
> > > > >> > >
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >>
> > > >
> > >
> > >
> >
>

 

Reply via email to