Hi Alex I expect just to use as in flex. In flex we just assign the LCV in the same way as we use/assign an ArrayCollection. There's really no different between AC and LCV in usage. for example for a list:
list.dataProvider = lcv; or maybe are you suggesting that we must create a mapper that access lcv.localIndex and susbstitute the current mapper? Thanks El jue., 25 oct. 2018 a las 19:28, Alex Harui (<[email protected]>) escribió: > Hi Carlos, > > So once the LCV has a localIndex, what code are you using to access the > LCV's filtered items? You should be able to step into that code and it > should end up in LCV.getItemAt and access the localIndex. > > -Alex > > On 10/25/18, 6:04 AM, "Carlos Rovira" <[email protected]> wrote: > > Hi Alex, > > El mié., 24 oct. 2018 a las 23:00, Alex Harui > (<[email protected]>) > escribió: > > > Hi Carlos, > > > > I just looked myself. The Royale LIstCollectionView's getItemAt does > > check the localIndex first. I thought that check might have been > commented > > out. It isn't so I think you'll have to see if getItemAt gets > called at > > all. > > > > I put some traces in MX lib and I see that localIndex is undefined and > it > enter in the else > return list.getItemAt(index, prefetch); > > > > > > One important piece in Royale is strong typing. ListCollectionView > is a > > Proxy, so if you are accessing it via array indexing instead of > calling > > getItemAt, you must make sure the LCV is strongly typed. IOW, > > > > myRemoteObjectOperation.lastResult[0] > > > > will not work, but > > > > (myRemoteObjectOperation.lastResult as ListCollectionView)[0] > > > > should work and result in a call to getProperty which should call > > getItemAt. > > > > I'm doing this code (not related to MX RO), is a simple test with no > UI or > controls involved to test it quickly : > > //sourceList is an ArrayCollection > var lcv:ListCollectionView = new ListCollectionView(sourceList); > lcv.filterFunction = someFilterLogic; // Note: this only works in this > way, > try to assign the complete function here as anonymous will fail, this > is > not a problem, but I think is ok to expose this since it could be a > colateral problem not related to this > lcv.refresh(); > trace(lcv) > > function someFilterLogic(param:String):Boolean { > // this logic returns true or false, since is not > important for this explanation > }; > > The trace of lcv shows the same items than sourceList ArrayCollection > (in > my example 3 items) > > I see in the trace that > * The object is a ListCollectionView > * it has localIndex with filtered right items (is no more undefined > and is > an Array, in my example just 2 items, as I expected) > > So while this code in flex is ok (since is almost the same as in > royale), > in Royale something is working wrong and LCV is returning the > collection > not filtered. > > Maybe could it be something related to the Proxy not properly set for > LCV? > > Thanks > > > > > > > > > -- > > Carlos Rovira > > > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc0fb5e4657904ae9167708d63a7a5612%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636760694433448030&sdata=OMaRVGm05%2FVKFaGrtg9LeM3NcT%2B%2BmwzhVTWbV26igJQ%3D&reserved=0 > > > > > > > > > > > -- Carlos Rovira http://about.me/carlosrovira
