@Tim:
Well, not exactly really, I ended up implementing the calculation itself in
the calculateStartValue and calculateEndValue functions in your example and
called them exactly like your example in the labelFunctions...

On Sun, Aug 24, 2008 at 12:14 PM, Sefi Ninio <[EMAIL PROTECTED]> wrote:

> @Tim:
> Yeah, that's exactly what I ended up implementing.. I was just puzzled,
> that's all really... :)
>
> @Alex:
> Hmm...  I tried to use the owner property without subclassing the
> DataGridColumn with no success...
> Maybe I'll try that.
>
> Thanks a lot for all the responses!
>
> Sefi
>
>
>
> On Sun, Aug 24, 2008 at 5:56 AM, Alex Harui <[EMAIL PROTECTED]> wrote:
>
>>    Note that, if you subclass the DataGrid and add your labelFunctions to
>> the subclass, then the this pointer during the call is the datagrid and you
>> can rummage through the column set all you want.
>>
>>
>>
>> Also note that, if you subclass DataGridColumn, as I often did in the
>> examples on my blog (blogs.adobe.com/aharui), the this pointer is the
>> column and you can use its owner property to get back out to the DataGrid
>> and the rest of the columns.
>>
>>
>>
>> I haven't been following the thread too closely, so I may be out of
>> context.
>>
>>
>>  ------------------------------
>>
>> *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On
>> Behalf Of *Tim Hoff
>> *Sent:* Saturday, August 23, 2008 10:22 AM
>> *To:* flexcoders@yahoogroups.com
>> *Subject:* [flexcoders] Re: DataGridColumn trouble...
>>
>>
>>
>> Sefi,
>>
>> If you really wanted to try to get at the calculated values in another
>> column, in the same row, you would have to use an itemRenderer.  Because an
>> itemRenderer implements IDropInListItemRenderer, it has access to the
>> listData property.  This property contains the rowIndex and the columnIndex
>> of the cell that it is rendering.  While it would clearly be a pain in the
>> ass, you could use the rowIndex property to locate and reference the other
>> itemRenderer values in the same row, for the columns that are desired.  My
>> opinion is that for something simple like this, it would be overkill and
>> probably require more processing overhead for locating the other
>> itemRenderers.  Instead, this is the solution that I would use.  Don't bang
>> too hard. :-)
>>
>> *private* *function* calculateStartValue(item:Object):Number
>> {
>> *     var* startValue:Number = Number(item.start); *// complex calcs here
>> **     return* startValue;
>> }
>>
>> *private* *function* startLabelFunction(item:Object,
>> column:DataGridColumn):Number
>> {
>> *     return* calculateStartValue(item);
>> }
>>
>> *private* *function* calculateEndValue(item:Object):Number
>> {
>> *    var* endValue:Number = Number(item.end); *// complex calcs here
>> **    return* endValue;
>> }
>>
>> *private* *function* endLabelFunction(item:Object,
>> column:DataGridColumn):Number
>> {
>> *    return* calculateEndValue(item);
>> }
>>
>> *private* *function* diffLabelFunction(item:Object,
>> column:DataGridColumn):Number
>> {
>> *    return* calculateEndValue(item) - calculateStartValue(item);
>> }
>>
>> <mx:DataGrid dataProvider="{ myArrayCollection }">
>>      <mx:columns>
>>           <mx:DataGridColumn headerText="Start" labelFunction="
>> startLabelFunction"/>
>>           <mx:DataGridColumn headerText="End" labelFunction="endLabelF!
>> unction"/>
>>           <mx:DataGridColumn headerText="Diff" labelFunction="
>> diffLabelFunction"/>
>>      </mx:columns>
>> </mx:DataGrid>
>>
>> -TH
>>
>> --- In flexcoders@yahoogroups.com, "Sefi Ninio" <[EMAIL PROTECTED]> wrote:
>> >
>> > Exactly what I was thinking...
>> >
>> > So, to make sure I get this straight - There is no way to get to the
>> other
>> > DataGridColumns from the DataGridColumn passed to it's labelFunction.
>> >
>> > There is no getting around to making the same calculation for multiple
>> > column except for keeping an external map (at least the size of the grid
>> -
>> > which chould be quite big) for the calculations results. This, of
>> course, is
>> > a mess. More so when you need to update the map when the dataProvider
>> > changes...
>> >
>> > Ugh... Coding in Flex is a real joy, but every now and then I find
>> myself
>> > banging my head against the wall...
>> >
>> > Sefi
>> >
>> > On Sat, Aug 23, 2008 at 3:20 AM, mknuttall [EMAIL PROTECTED] wrote:
>> >
>> > > Because then it wouldn't be a VO. :)
>> > >
>> > >
>> > > --- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>,
>> "Tracy
>> > > Spratt" tspratt@ wrote:
>> > > >
>> > > > If you are usign VOs, why not just add properties and have the VO do
>> the
>> > > > calculation internally, and forget the labelFunctions entirely?
>> > > >
>> > > > Tracy
>> > > >
>> > >
>> > >
>> > >
>> >
>>
>>  
>>
>
>

Reply via email to