royale-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Piotr Zarzycki <piotrzarzyck...@gmail.com>
Subject Re: List, MDL Table - How to remove all content
Date Tue, 05 Dec 2017 14:51:34 GMT
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 <pent@adobe.com.invalid> 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" <aharui@adobe.com.INVALID> 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" <pent@adobe.com.INVALID> 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 <piotrzarzycki21@gmail.com>
> >>>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%2Fpaste
> .
> >>>a
> >>>pache.org%2F6qVy&data=02%7C01%7Cpent%40adobe.com
> %7C05ca01d43a8448485bd50
> >>>8
> >>>d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364802121644991
> >>>9
> >>>9&sdata=6mmrQ1g5CRuRmRyRpSLNil3LUn93jAKTJVI6RHSocL8%3D&reserved=0
> >>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpaste
> .
> >>>a
> >>>pache.org%2F6qVy&data=02%7C01%7Cpent%40adobe.com
> %7C05ca01d43a8448485bd50
> >>>8
> >>>d53b617760%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364802121644991
> >>>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%7C63648021
> >>>2
> >>>164499199&sdata=Lh5NSyP1MPIG6h5X4eG9RW3MWcQMiMBDevLzt8WoPS4%3D&reserved=
> >>>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%7C63648021
> >>>2
> >>>164499199&sdata=Lh5NSyP1MPIG6h5X4eG9RW3MWcQMiMBDevLzt8WoPS4%3D&reserved=
> >>>0
> >>>>*
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message