Those two beads will handle remove/add, so will I be able to use it for list?
It look like all your upcoming changes is something which I need for. I'm look forward to your commit! Thanks, Piotr On Tue, Dec 5, 2017, 16:03 Peter Ent <[email protected]> wrote: > I am working on an AddItemBead and RemoveItemBead. These beads assume the > dataProvider in the model are ArrayList since that collection dispatches > CollectionEvents with itemAdded and itemRemoved events. So these beads > will either add an item to the DataGroup or remove one. Then they will > adjust the model's selectedItem and selectedIndex accordingly. > > These will be beads of the DataItemRendererFactoryForArrayList and not > beads on the List itself. I'm having to change > DataItemRendererFactoryForArrayList to make things more public since it > isn't trivial to add or remove an itemRenderer. > > —peter > > On 12/5/17, 9:51 AM, "Piotr Zarzycki" <[email protected]> wrote: > > >Hi Peter, > > > >I see that and there is question whether I can put that code as a separate > >bead to our repo and whether you are not going to do this? > >You have started other thread about Tree Grid and beads mentioned by you > >seems to be the answer. Let me know before I create something. > > > >Thanks, Piotr > > > >On Tue, Dec 5, 2017, 15:43 Peter Ent <[email protected]> wrote: > > > >> I think some of this changes when you are running in the browser. Does > >>our > >> framework code really need to know if an item is visible or not to > >>remove > >> it? You want it gone from the DOM so you need to remove it and the > >>browser > >> takes care of the visuals. Depending on the CSS for that container, > >>things > >> would probably just sort themselves out - no need to fool with > >>scrollbars > >> either as they are the responsibility of the browser. On the browser > >> platform, adding a remove function would not, I think, be as costly as > >>it > >> would on the Flash platform. > >> > >> Now the selectedItem and selectedIndex are, of course, Royale things so > >> that would need to be considered. But that's the same as for adding or > >> inserting an item into a list. Again, the browser should take care of > >>the > >> visuals once the item is added to the DOM. If the item has been tagged > >> properly for CSS, you wouldn't even need to trigger the Royale layout. > >> > >> As a side note, the reason the Group does not have a default layout is > >>to > >> allow you to make a DIV (the Group), put stuff into it, and style it so > >> that the "layout" is handled in CSS. This way added, removing, changing > >>is > >> left up the browser with no need for Royale code support since the > >>browser > >> has all the code already and your Royale payload can be smaller. You > >>only > >> need to "pay" if you want a layout that cannot be accomplished with CSS. > >> > >> Supporting virtualized list is a completely different matter. HTML > >>doesn't > >> support that and then what Alex says really comes into play there. > >> > >> Back the question about removing all the rows. The DataGroup has a > >> function to remove all of the itemRenderers. You need to trigger that > >> somehow - either in your own code or perhaps a bead. Then clean up the > >> selectedItem/selectedIndex in the model. > >> > >> ‹peter > >> > >> On 12/5/17, 12:03 AM, "Alex Harui" <[email protected]> wrote: > >> > >> >In general, removing stuff should be PAYG. Not every app needs to > >>remove > >> >things, and removal is often way more expensive than adding. > >> > > >> >For example, when an item is added to a sophisticated list, the various > >> >beads have to do these things: > >> >1) figure out if the item is on screen and a new renderer needs to be > >> >added. > >> >2) figure out if the item was added before the selectedIndex so the > >> >selectedIndex needs to be updated > >> >3) update the scrollbar (if any). > >> > > >> >When removing, the various beads have more to do: > >> >1) figure out if the item is on screen and its renderer needs to be > >> >removed. > >> >2) figure out if the renderer removed is on the last visible page of > >>the > >> >list and scrollbars are up and the item that will take up the removed > >> >renderer needs to come from a lower index in the data provider > >> >3) figure out if the item was added before the selectedIndex so the > >> >selectedIndex needs to be updated > >> >4) figure out if the item removed was the selectedIndex and thus decide > >> >what to do about selectedIndex and selectedItem > >> >5) update the scrollbar (if any). > >> > > >> >HTH, > >> >-Alex > >> > > >> > > >> >On 12/4/17, 5:08 PM, "Peter Ent" <[email protected]> wrote: > >> > > >> >>I need to think about this for a bit because I¹m fiddling with this > >>bit > >> >>of code in List. I¹ll get back to you in my tomorrow. > >> >> > >> >>Peter > >> >> > >> >> > >> >>> On Dec 4, 2017, at 4:53 PM, Piotr Zarzycki > >><[email protected]> > >> >>>wrote: > >> >>> Hi Guys, > >> >>> > >> >>> I have faced an issue where solution seems to be not so easy. I have > >> >>>MDL > >> >>> Table (issue affects also List) with some rows. > >> >>> > >> >>> If I simply assign to dataProvider = null it doesn't remove all > >> >>>content. It > >> >>> is because in our DataItemRendererFactoryForArrayData and other > >>type of > >> >>> that class we have in listeners of "dataProviderChanged" this code > >> >>>[1]. > >> >>> Basically if we assign null to dataProvider we are not cleaning up > >>item > >> >>> renderers, but should we ? > >> >>> > >> >>> Maybe there should be separate bead which allow to do such > >>operations ? > >> >>> > >> >>> Thoughts ? > >> >>> > >> >>> [1] > >> > >>>>>* > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpast > >>>>>e > >> . > >> >>>a > >> >>>pache.org%2F6qVy&data=02%7C01%7Cpent%40adobe.com > >> %7C05ca01d43a8448485bd50 > >> >>>8 > >> > >>>>>d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63648021216449 > >>>>>91 > >> >>>9 > >> >>>9&sdata=6mmrQ1g5CRuRmRyRpSLNil3LUn93jAKTJVI6RHSocL8%3D&reserved=0 > >> > >>>>>< > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpast > >>>>>e > >> . > >> >>>a > >> >>>pache.org%2F6qVy&data=02%7C01%7Cpent%40adobe.com > >> %7C05ca01d43a8448485bd50 > >> >>>8 > >> > >>>>>d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63648021216449 > >>>>>91 > >> >>>9 > >> >>>9&sdata=6mmrQ1g5CRuRmRyRpSLNil3LUn93jAKTJVI6RHSocL8%3D&reserved=0>* > >> >>> > >> >>> Thanks, > >> >>> -- > >> >>> > >> >>> Piotr Zarzycki > >> >>> > >> >>> Patreon: > >> >>>* > >> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pa > >> >>>t > >> >>>reon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com > >> %7C05ca01d43a844 > >> >>>8 > >> > >>>>>485bd508d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636480 > >>>>>21 > >> >>>2 > >> > >>>>>164499199&sdata=Lh5NSyP1MPIG6h5X4eG9RW3MWcQMiMBDevLzt8WoPS4%3D&reserve > >>>>>d= > >> >>>0 > >> >>> > >> >>>< > >> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pa > >> >>>t > >> >>>reon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com > >> %7C05ca01d43a844 > >> >>>8 > >> > >>>>>485bd508d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636480 > >>>>>21 > >> >>>2 > >> > >>>>>164499199&sdata=Lh5NSyP1MPIG6h5X4eG9RW3MWcQMiMBDevLzt8WoPS4%3D&reserve > >>>>>d= > >> >>>0 > >> >>>>* > >> > > >> > >> > >
