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 15:16:35 GMT
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 <pent@adobe.com.invalid> 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" <piotrzarzycki21@gmail.com> 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 <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%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
> >> >>>>*
> >> >
> >>
> >>
>
>

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