Harbs, Give me couple of days and I will pick up that branch and try it out. I will also review those changes and give the feedback.
Thanks! 2017-09-26 20:50 GMT+02:00 Harbs <harbs.li...@gmail.com>: > I think I’m done. Any reason to not merge into develop? > > > On Sep 26, 2017, at 7:01 PM, Piotr Zarzycki <piotrzarzyck...@gmail.com> > wrote: > > > > Harbs, > > > > Please push those changes into separate branch "feature/" no matter how > non > > serious it look. I hope your changes will simplify things. > > > > Thank you! > > > > > > 2017-09-26 17:54 GMT+02:00 Harbs <harbs.li...@gmail.com>: > > > >> I’m working on refactoring this. > >> > >> Is there a reason for the null check in UIBase.createElement()? > >> > >> Why would createElement be called if the element is already created? > None > >> of the subclasses have this null check. > >> > >> if (element == null) > >> element = document.createElement('div') as WrappedHTMLElement; > >> > >> Do you think it’s safe to remove the check? > >> > >>> On Sep 26, 2017, at 6:42 PM, Alex Harui <aha...@adobe.com.INVALID> > >> wrote: > >>> > >>> I believe there are components where more than one HTMLElement is > created > >>> but only one is (and can be) assigned as "element" but all have > >>> flexjs_wrapper assigned to the wrapping IUIBase. > >>> > >>> If in fact no components need a separate positioner, it is fine to > remove > >>> it. But if we keep it, even as a getter returning element, we have to > >>> make sure our code that positions things uses positioner and not > element > >>> in case someone does try to override positioner some day. > >>> > >>> As Peter mentioned, the original thinking was that element would be the > >>> HTMLElement that defines the node in the DOM that dispatches > interaction > >>> events, but positioner might be some parent of the element like a Div > >> used > >>> to give the element appropriate visuals, chrome, accessory widgets, > etc, > >>> like NumericStepper, ComboBox, DateField, and maybe more sophisticated > >>> components like a RichTextEditor where the "element" is a Div that gets > >>> focus and holds the text lines, but is a child of a positioner Div that > >>> also contains child buttons for bold/italic/underline. Another example > >>> may be VideoPlayback. The element might be some sort of video widget > but > >>> the positioner might be a div that also contains child buttons for > >>> stop/pause/rewind/forward. > >>> > >>> Of course, I could be wrong... > >>> -Alex > >>> > >>> On 9/26/17, 6:27 AM, "Peter Ent" <p...@adobe.com.INVALID> wrote: > >>> > >>>> @Harbs: yes on get positioner returning element. This way someone > could > >>>> override the getter and return something else if it suited their > needs. > >>>> > >>>> —peter > >>>> > >>>> On 9/26/17, 9:25 AM, "Harbs" <harbs.li...@gmail.com> wrote: > >>>> > >>>>> I looked at MDL and I don’t see any problem there. > >>>>> > >>>>> I’m talking about simplifying things across the board. I don’t see > how > >> it > >>>>> could effect anything. > >>>>> > >>>>> @Peter I think removing positioner might not be a bad idea, but > keeping > >>>>> it and using it as a pointer to element is basically just as cheap. > >>>>> > >>>>>> On Sep 26, 2017, at 4:12 PM, Piotr Zarzycki < > >> piotrzarzyck...@gmail.com> > >>>>>> wrote: > >>>>>> > >>>>>> Hi Harbs, > >>>>>> > >>>>>> If you will do such changes like moving to set flexjs_wrapper in the > >>>>>> setter > >>>>>> of element - please make it on the separate branch. Let me test with > >> my > >>>>>> app > >>>>>> whether MDL will not breaking up. I hope that we could avoid this > one, > >>>>>> even > >>>>>> if I think that it seems to be quite reasonable to do that. > >>>>>> > >>>>>> Can you for example do this only for your custom component not for > the > >>>>>> global IUIBase class ? > >>>>>> > >>>>>> Let see what Peter say. > >>>>>> > >>>>>> Thanks, Piotr > >>>>>> > >>>>>> > >>>>>> 2017-09-26 15:02 GMT+02:00 Harbs <harbs.li...@gmail.com>: > >>>>>> > >>>>>>> Yishay and I were working on drag/drop today and we were modifying > >> one > >>>>>>> of > >>>>>>> the classes you wrote for generating the drag image. > >>>>>>> > >>>>>>> The code can be simplified by using cloneNode() and stuffing the > >>>>>>> results > >>>>>>> into the element. The thing is, it does not work until you assign > the > >>>>>>> flexjs_wrapper to the element. IMO, calling the element setter > should > >>>>>>> do > >>>>>>> that automatically. > >>>>>>> > >>>>>>> On a similar note, Every IUIBase object has a positioner set. I > don’t > >>>>>>> know > >>>>>>> of a single class which has a different positioner than the > element. > >>>>>>> It > >>>>>>> seems to me that positioner should be a getter (which normally > >> returns > >>>>>>> the > >>>>>>> element) that’s overridden for classes which need a different one. > >>>>>>> That > >>>>>>> will save memory for every IUIBase created. > >>>>>>> > >>>>>>> Harbs > >>>>>>> > >>>>>>>> On Sep 26, 2017, at 3:23 PM, Peter Ent <p...@adobe.com.INVALID> > >>>>>>>> wrote: > >>>>>>>> > >>>>>>>> The setter for element is in HTMLElementWrapper, the super class > for > >>>>>>>> UIBase. The setter for flexes_wrapper is in UIBase. So if the > >> element > >>>>>>>> setter were to also set the flexjs_wrapper, it would have to be an > >>>>>>>> override in UIBase to do it. At least that¹s how I understand it. > >>>>>>>> > >>>>>>>> Could you elaborate a little more on the issue that is raising > this > >>>>>>>> concern? > >>>>>>>> > >>>>>>>> Your question made me scan through these classes. Looking at this > >>>>>>>> code > >>>>>>> now > >>>>>>>> makes me think we can do a better and more consistent job > organizing > >>>>>>>> it > >>>>>>>> for Royale. After all, having code that can be quickly understood > >> and > >>>>>>>> modified is important. > >>>>>>>> > >>>>>>>> ‹peter > >>>>>>>> > >>>>>>>> On 9/26/17, 7:13 AM, "Harbs" <harbs.li...@gmail.com> wrote: > >>>>>>>> > >>>>>>>>> Currently, setting the element of a IUIBase will not work > correctly > >>>>>>>>> because the flexjs_wrapper is not set. This makes it error prone > >>>>>>>>> when > >>>>>>>>> there¹s a need to work with the underlying DOM elements for HTML > >>>>>>>>> output. > >>>>>>>>> > >>>>>>>>> I cannot think of a reason why the wrapper should not be set when > >>>>>>> calling > >>>>>>>>> the element setter. Instead of setting the flexjs_wrapper in > >>>>>>>>> createElement(), it seems to me that it should be set in the > >> element > >>>>>>>>> setter in HTMLElementWrapper. > >>>>>>>>> > >>>>>>>>> Anyone have a reason not to do this? > >>>>>>>>> > >>>>>>>>> Harbs > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> > >>>>>> Piotr Zarzycki > >>>>>> > >>>>>> mobile: +48 880 859 557 > >>>>>> skype: zarzycki10 > >>>>>> > >>>>>> LinkedIn: > >>>>>> https://na01.safelinks.protection.outlook.com/?url= > >> http%3A%2F%2Fwww.link > >>>>>> e > >>>>>> din.com%2Fpiotrzarzycki&data=02%7C01%7C% > >> 7C6716901213624a0e804708d504e203 > >>>>>> 9 > >>>>>> f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% > >> 7C636420291136295544&sdata= > >>>>>> f > >>>>>> Q1CjLGkCpNKxSQBmZn%2BnKZEplQpGl25XACOqq0gO2o%3D&reserved=0 > >>>>>> > >>>>>> <https://na01.safelinks.protection.outlook.com/?url= > >> https%3A%2F%2Fpl.lin > >>>>>> k > >>>>>> edin.com%2Fin%2Fpiotr-zarzycki-92a53552&data=02% > >> 7C01%7C%7C6716901213624a > >>>>>> 0 > >>>>>> e804708d504e2039f%7Cfa7b1b5a7b34438794aed2c178de > >> cee1%7C0%7C0%7C636420291 > >>>>>> 1 > >>>>>> 36295544&sdata=LzIej2n6WVnm9AG1Hi4NqIZjOQS% > >> 2Byo4w%2BPYTX0Rq8Gc%3D&reserv > >>>>>> e > >>>>>> d=0> > >>>>>> > >>>>>> GitHub: > >>>>>> https://na01.safelinks.protection.outlook.com/?url= > >> https%3A%2F%2Fgithub. > >>>>>> c > >>>>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7C6716901213624a0e804708d504e2 > >> 039f% > >>>>>> 7 > >>>>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% > >> 7C636420291136295544&sdata=WeI > >>>>>> l > >>>>>> LzVsJzRKniD1r9F2xb%2BwljhCLHnurBnl03kBM9E%3D&reserved=0 > >>>>> > >>>> > >>> > >> > >> > > > > > > -- > > > > Piotr Zarzycki > > > > mobile: +48 880 859 557 > > skype: zarzycki10 > > > > LinkedIn: http://www.linkedin.com/piotrzarzycki > > <https://pl.linkedin.com/in/piotr-zarzycki-92a53552> > > > > GitHub: https://github.com/piotrzarzycki21 > > -- Piotr Zarzycki mobile: +48 880 859 557 skype: zarzycki10 LinkedIn: http://www.linkedin.com/piotrzarzycki <https://pl.linkedin.com/in/piotr-zarzycki-92a53552> GitHub: https://github.com/piotrzarzycki21