well done, I was half through telling you about the data override... :-)
On 2 Jun 2008, at 19:10, Dominic Watson wrote: > Phew, I finally found the solution. In my custom control, I needed to > override the set data function and perform updates on the item in > there. I ended up creating an mxml component for the renderer that > looked like this: > > <?xml version="1.0" encoding="utf-8"?> > <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> > <mx:Script> > <![CDATA[ > import mx.events.FlexEvent; > > override public function set data(value:Object):void { > if(value != null) { > super.data = value; > itemBullet.source = value.bullet; > itemTitle.setStyle('color', value.color); > } > > // Dispatch the dataChange event. > dispatchEvent(new > FlexEvent(FlexEvent.DATA_CHANGE)); > } > ]]> > </mx:Script> > > <mx:Label id="itemTitle" text="{data.title}" /> > <mx:Image id="itemBullet" right="0" y="2"/> > </mx:Canvas> > > In the calling application, when an item is selected, a function > updates the data so that the selected row has the 'selected' icon and > color and the non-selected items have the 'non-selected' icon and > color - the change in the data automatically triggers the overridden > set data method (above). > > It would be better if I could figure out whether the item was selected > or not within the renderer component thus not needing the nonsense > outside code. This works for now though and it's time for tea :) > > Dominic > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;192386516;25150098;k Archive: http://www.houseoffusion.com/groups/Flex/message.cfm/messageid:5283 Subscription: http://www.houseoffusion.com/groups/Flex/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.37
