Peter, Your changes exposed an issue in MDL Table. Each rows should be added to tbody, but it were included outside. I have fixed issue and everything is working nicely - at least in the apache example MDLDynamicTableExample.
Still you should compare those beads DynamicItemsRendererFactoryForArrayListData and DataItemRendererFactoryForArrayList. Thanks a lot! 2017-12-11 23:19 GMT+01:00 Piotr Zarzycki <piotrzarzyck...@gmail.com>: > Peter, > > I see issue in MDL Table after your changes, but in general they should > work once I fix it. > > Thanks, Piotr > > 2017-12-11 18:56 GMT+01:00 Piotr Zarzycki <piotrzarzyck...@gmail.com>: > >> Peter, >> >> I will try your changes soon. I was thinking what you did write earlier >> and maybe I wasn't enough clear. I'm talking right now about following >> cases. Let's say that you have list or MDL Table doesn't matter and you did >> specify in your css file following class: >> >> .myList >> { >> IDataProviderItemRendererMapper: ClassReference("org.apache.roy >> ale.html.beads.DataItemRendererFactoryForArrayList"); >> } >> >> and in your MXML: >> >> <js:List className="myList"> >> <js:beads> >> <js:DynamicItemsRendererFactoryForArrayListData /> >> </js:beads> >> </js:List> >> >> It means that apart of the code which is handling adding to us in >> DynamicItemsRendererFactoryForArrayListData - we have right now in both >> beads duplicated code, which is doing exactly the same. - I'm not sure what >> can happen if we have both beads added. >> >> However I do understand also other use cases. >> >> Thanks, Piotr >> >> >> 2017-12-11 17:16 GMT+01:00 Peter Ent <p...@adobe.com.invalid>: >> >>> I committed the change to the remove bead after running the MDLExample >>> with no errors in the browser console. >>> >>> Hope this works! >>> —peter >>> >>> On 12/11/17, 10:45 AM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com> >>> wrote: >>> >>> >Hi Peter, >>> > >>> >If I remember correctly I was using those beads [1] and as >>> >IDataProviderItemRendererMapper: >>> >DynamicItemsRendererFactoryForArrayListData >>> >- declared in CSS. You can take a look into the example >>> >MDLDynamicTableExample. >>> > >>> >With your solution where we are looking actually into the events from >>> >dataProvider, I just thought that code which creates item renderers is >>> not >>> >needed in DynamicItemsRendererFactoryForArrayListData. >>> > >>> >Looking forward to the results of your investigation. >>> > >>> >[1] >>> >https://na01.safelinks.protection.outlook.com/?url=https%3A >>> %2F%2Fpaste.apa >>> >che.org%2F07m8&data=02%7C01%7Cpent%40adobe.com%7C835b99b029 >>> af47936d8508d54 >>> >0ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636486 >>> 039218879495&sd >>> >ata=cghdpJo101E1sgl%2FgG2VFahFno78Y8nwfiks7bbPdHE%3D&reserved=0 >>> > >>> >Thanks, Piotr >>> > >>> > >>> >2017-12-11 16:29 GMT+01:00 Peter Ent <p...@adobe.com.invalid>: >>> > >>> >> In the PAYG world of Royale, we need to keep a number of features >>> >>separate >>> >> so apps are not weighed down by unused code. I originally had a bead >>> >>that >>> >> refreshed all item renderers by deleting them from the DataGroup and >>> >> re-creating them. I also had a bead that just created itemRenderers on >>> >> demand when it detected an ItemAdded event. Likewise, a bead to remove >>> >> them on demand. To avoid duplicating code, I had the refresh bead look >>> >>for >>> >> the add bead and use it (there was a public function to create an >>> >> itemRenderer). This kept things very separate. However, the refresh >>> bead >>> >> required the add bead so Alex suggested combining the two since there >>> >>was >>> >> really nothing being gained by the separation. Removal is considered >>> an >>> >> "extra" since many apps do not need to remove things. I don't know if >>> >> that's really true, but it fits the PAYG model. >>> >> >>> >> The ArrayList itself emits events. It is also a dataProvider that can >>> be >>> >> used with a model. I find this to be confusing sometimes, but that's >>> >>just >>> >> me. >>> >> >>> >> Piotr, I don't see how your original version of >>> >> DynamicItemsRendererFactoryForArrayListData could have worked since >>> the >>> >> model does not dispatch ItemAdded events; only ArrayList (the model's >>> >> dataProvider) does that. In my tests, the DynamicŠData bead never >>> >>received >>> >> the event until I changed it. >>> >> >>> >> Personally, I think the collection classes should emit their own >>> events, >>> >> but when used within a model, the model should intercept them and >>> >> re-dispatch the events as their own. This would make writing beads >>> >>cleaner >>> >> and we would not need as many variations that only differ by how the >>> >> dataProvider is accessed as all access to the dataProvider would go >>> >> through the model via a standard interface. >>> >> >>> >> I will figure out why the removal bead is failing and then re-test >>> with >>> >> MDL but I won't change anything else unless there is no other choice. >>> >> >>> >> ‹peter >>> >> >>> >> On 12/10/17, 2:53 PM, "piotrz" <pio...@apache.org> wrote: >>> >> >>> >> >Hi Peter, >>> >> > >>> >> >Ok DynamicItemsRendererFactoryForArrayListData is now working >>> >>perfectly. >>> >> >Unfortunately I just tried DynamicRemoveItemRendererForArrayListData >>> >>and >>> >> >got >>> >> >NPE. This time dataProviderModel is being null >>> >> > >>> >> ><https://na01.safelinks.protection.outlook.com/?url= >>> >> http%3A%2F%2Fapache-ro >>> >> >yale-development.20373.n8.nabble.com%2Ffile%2Ft1% >>> >> 2Fdynamic_remove_null.png >>> >> >&data=02%7C01%7Cpent%40adobe.com%7C3e768dcacec447640aa208d54007 >>> >> a62b%7Cfa7b >>> >> >1b5a7b34438794aed2c178decee1%7C0%7C0%7C636485323953316454& >>> >> sdata=iktsZuL5sc >>> >> >DNbJu26jprPRlwA3Zx0w%2FJVriETkMQLqo%3D&reserved=0> >>> >> > >>> >> >There is in general something wrong and I think there a bit more >>> work. >>> >> >DynamicItemsRendererFactoryForArrayListData now is different than >>> >> >DynamicRemoveItemRendererForArrayListData, cause the first on have >>> >>logic >>> >> >which is not only adding item renderer, but also creates them which >>> is >>> >>not >>> >> >present in the Remove version. >>> >> > >>> >> >In the other words DynamicItemsRendererFactoryForArrayListData it is >>> >> >IDataProviderItemRendererMapper. I think we should go with following >>> >> >changes. >>> >> > >>> >> >1) DynamicItemsRendererFactoryForArrayListData - logic for creating >>> >>item >>> >> >renderers should be removed from that bead >>> >> >2) We should rename DynamicItemsRendererFactoryForArrayListData to >>> >> >DynamicAddItemRendererForArrayListData >>> >> >3) For List, MDL Table, MDL Tabs and all things inherited from List >>> >>should >>> >> >as IDataProviderItemRendererMapper we should use: >>> >> >DataItemRendererFactoryForArrayData or >>> >> >DataItemRendererFactoryForSeriesArrayListData (use this to have all >>> the >>> >> >advantages of above beads). >>> >> > >>> >> >What do you think ? >>> >> > >>> >> >If you will make above changes check all the MDL examples which have >>> >>Tabs, >>> >> >Tables etc. - Build MDLExample. >>> >> > >>> >> >Thanks, Piotr >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> >-- >>> >> >Sent from: >>> >> >https://na01.safelinks.protection.outlook.com/?url= >>> >> http%3A%2F%2Fapache-roy >>> >> >ale-development.20373.n8.nabble.com%2F&data=02%7C01%7Cpent% >>> 40adobe.com >>> >> %7C3 >>> >> >e768dcacec447640aa208d54007a62b%7Cfa7b1b5a7b34438794aed2c178de >>> >> cee1%7C0%7C0 >>> >> >>> >>>%7C636485323953316454&sdata=sRTfb3ro%2Fj66%2FHhWWEU6ZgOsN >>> o9jqlqtEdE7nNF9 >>> >>>P >>> >> y >>> >> >A%3D&reserved=0 >>> >> >>> >> >>> > >>> > >>> >-- >>> > >>> >Piotr Zarzycki >>> > >>> >Patreon: >>> >*https://na01.safelinks.protection.outlook.com/?url=https%3 >>> A%2F%2Fwww.patr >>> >eon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com%7C8 >>> 35b99b029af4793 >>> >6d8508d540ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0 >>> %7C636486039218 >>> >879495&sdata=PmoDkP7b2qvJ%2Fq%2Btkoht2i1buQXEp%2FjSR%2Ftc9O >>> XMUno%3D&reserv >>> >ed=0 >>> ><https://na01.safelinks.protection.outlook.com/?url=https%3 >>> A%2F%2Fwww.patr >>> >eon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com%7C8 >>> 35b99b029af4793 >>> >6d8508d540ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0 >>> %7C636486039218 >>> >879495&sdata=PmoDkP7b2qvJ%2Fq%2Btkoht2i1buQXEp%2FjSR%2Ftc9O >>> XMUno%3D&reserv >>> >ed=0>* >>> >>> >> >> >> -- >> >> Piotr Zarzycki >> >> Patreon: *https://www.patreon.com/piotrzarzycki >> <https://www.patreon.com/piotrzarzycki>* >> > > > > -- > > Piotr Zarzycki > > Patreon: *https://www.patreon.com/piotrzarzycki > <https://www.patreon.com/piotrzarzycki>* > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*