Thanks for the tip >From your blog entry I read "Recycle" to mean that I need an else clause >wherever I have an if to ensure that the 'unhandled' condition is handled and some value for an attribute is always set.
The renderer I have coded either always returns a value from its methods (i.e., no conditional statements) or where there IS an if clause there also needs to be an else to ensure that a value for the desired attribute is always provided. If my interpretation of 'recycle' is not correct please let me know. Thanks! Alex --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > Are you using a custom renderer? Sounds like it doesn't know how to be > recycled. More about renderer recycling on my blog > (blogs.adobe.com/aharui) > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Alex > Sent: Friday, December 21, 2007 2:11 PM > To: [email protected] > Subject: [flexcoders] tileList displaying items order other than that > represented by dataProvider > > > > I have a problem with a viewStack that has 2 views, a dataGrid and a > tileList view both of which which share a common dataProvider. > > - The tileList uses an itemRenderer to draw an icon/name for each item. > - The datagrid affords the ability to sort the displayed items by > clicking on the column headers. > > The initial display of both views is as expected, the sort order in > the tileList view matches that of the items in the dataGrid view. > > A "trace" of the data items in the dataProvider invoked whenever I > switch between views [via trace(datagrid.dataProvider) and > trace(tilelist.dataProvider)] both show the items in the list in the > order expected regardless of how many times I switch views back and > forth. > > The items (a ListCollectionView of items of type "Foo") listed by the > trace as expected reflect the format of the "toString" function in the > Foo class. > > Now the problem... > > 1) When I click a header in the dataGrid view to re-sort the data > subsequent trace output of the dataProvider's list of objects changes > to another format: > > (Array)#0 > [0] (com.emc.sspg.cem.data::Foo)#1 > attribute1_name = value1 > attribute2_name = value2 > [1] (com.emc.sspg.cem.data::Foo)#1 > > etc. > > I'm not sure why this happens.. > > 2) The array elements in the trace output are reordered to reflect the > expected sort order as displayed in the dataGrid view AND the tileList > view BUT the order of the actual icons drawn in the tileList view does > not match the order of the items traced. (In fact I've yet to be able > to discern what order they are now drawn in, its not the original > "pre-sorted" order either.) > > --------- > > Another subtlety my trace statements have pointed out is that only the > 1st time the icon view is drawn do the item renderers get called to > actually get the icon and name to display. > > Solution-wise, while not a great solution I've tried to insert various > functions to invalidate the drawing such that subsequent views of the > icon view would re-call the renderers to prove to me that they are > being drawn in the order that I'm seeing them left-to-right, > top-to-bottom in the tileList but none of the following cause that to > occur. > > tilelist.invalidateDisplayList(); > tilelist.invalidateList(); > tilelist.invalidateProperties(); > tilelist.dataProvider.refresh(); > > Any thoughts regarding this would be appreciated. > > Thanks >

