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%7C835b99b029af47936d8508d54 >0ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636486039218879495&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%2FHhWWEU6ZgOsNo9jqlqtEdE7nNF9 >>>P >> y >> >A%3D&reserved=0 >> >> > > >-- > >Piotr Zarzycki > >Patreon: >*https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr >eon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com%7C835b99b029af4793 >6d8508d540ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636486039218 >879495&sdata=PmoDkP7b2qvJ%2Fq%2Btkoht2i1buQXEp%2FjSR%2Ftc9OXMUno%3D&reserv >ed=0 ><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr >eon.com%2Fpiotrzarzycki&data=02%7C01%7Cpent%40adobe.com%7C835b99b029af4793 >6d8508d540ae2eda%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636486039218 >879495&sdata=PmoDkP7b2qvJ%2Fq%2Btkoht2i1buQXEp%2FjSR%2Ftc9OXMUno%3D&reserv >ed=0>*