Great!
That worked. When I received the data, i just updated the detailed data in
the main collection, for specific item and this triggered  set data within
the renderer, where I handled the data display part.

Thanks Jude.... : )


On Sun, Jun 30, 2013 at 8:52 PM, jude <flexcapaci...@gmail.com> wrote:

> Once you've received the data for the specific item find the item in the
> collection and call itemUpdate on it.
>
> var item:MyItem = findItemByID(id, collection);
> item.extraInformation =  results.data;
> collection.itemUpdated(item);
>
> // when you're done you may need to call refresh
> collection.refresh();
>
> This will cause the data property to be set again in the List.
>
> CustomItemrenderer.as,
> override function set data(item:Object):void {
>     super.data = item;
>
>     if (item.extraInformation==true) {
>          // show extra information
>     }
> }
>
> You may lose your selected item when you call collection.refresh(). In
> which case you may need to validate the list and if the selection is not
> saved then set it back to the selected item.
>
>
> On Thu, Jun 27, 2013 at 6:42 AM, Deepak MS <megharajdee...@gmail.com>
> wrote:
>
> > Hi there,
> >
> >
> >
> > Just wanted to know if there is a better way to listen for an event in an
> > itemrenderer.
> >
> >
> >
> > I’m working on a mobile app, which uses sqlite database and cairngorm
> > framework.
> >
> >
> >
> > I have a list in my view which has my CustomRenderer.as as it’s
> > itemrenderer. This renderer initially loads basic data and displays
> it(data
> > is binded which we get in model).
> >
> >
> >
> > Now, I also have a button on this renderer on clicking of which, I need
> to
> > get some more details by querying the db (I avoided this query on initial
> > load as it degraded the performance) and display this detailed data only
> on
> > this renderer on which I click the button.
> >
> >
> >
> > Currently this is how I am achieving it:
> >
> > 1.       On click on button in the renderer, I am dispatching a cairngorm
> > event, which calls a command class, which is where I query db and receive
> > detailed data. This data is stored in a model variable.
> >
> > 2.       As soon as I store data in model variable, in next line I am
> > dispatching this event within same command class :
> >
> >
> FlexGlobals.topLevelApplication.systemManager.dispatchEvent(*new*Event(ApplicationModelLocator.ON_DETAILED_DATA));
> >
> > 3.       I have added a listerner in the constructor of
> > CustomRenderer.as:
> >
> >
> FlexGlobals.topLevelApplication.systemManager.addEventListener(ApplicationModelLocator.OVERVIEW_TREND_CLICK_DATA,
> > onOverviewTrendClickData, *false*,0,*true*);
> >
> > 4.       In onOverviewTrendClickData function I build the extra UI that
> is
> > needed to show the detailed data.
> >
> >
> >
> > However, in this approach, the onOverviewTrendClickData function gets
> > triggered many times(based on number of renderer items that are displayed
> > in the list).
> >
> >
> >
> > Can you kindly let me know if there is a way I can avoid it? Or any other
> > approach to achieve this?
> >
> >
> >
> >
> >
> > Warm regards,
> >
> > Deepak
> >
>

Reply via email to