Renaming to separate feedback on the wiki page. One comment inline below.
On 5/15/18, 3:17 AM, "[email protected] on behalf of Carlos Rovira" <[email protected] on behalf of [email protected]> wrote: * Exploded Component:This should be really great, but I think in components and I think is difficult for most of them. Think in a TextButton, if you exploded in UIBase and its beads, you'll not have text or html properties. I'm interested in how I can explain this better in the wiki because actually it does work. Using Basic.SWC, if I do: <js:TextButton text="foo"/> It really can be re-created by doing: <js:UIBase> <js:beads> <!-- these are the model and view beads for TextButton in specified in defaults.css --> <js:TextModel text="foo" /> <js:CSSTextButtonView /> </js:beads> </js:UIBase> It used to work. I haven't tried it in a while. If it doesn't, we should fix it so it does. We should want Jewel to work as exploded components. Because if the Jewel views do not make assumptions on the Jewel TLCs then we can reuse Jewel views and themes in the emulation components. The reason that we don't mandate that TLCs in one component set must subclass TLCs in another component set is because the emulation component set has a higher priority goal, which is to emulate the class hierarchy of Flex. So the emulation for mx:Button cannot subclass js:Button. Instead, there is an emulation for UIComponent that subclasses UIBase, and ALL emulation components MUST eventually subclass UIComponent. The backward compatibility goal outweighs the goal of reusing what should be little bits of proxy code in the Basic TLCs. If you look at changes I've been making in the MXRoyale branch, it is to further reduce assumptions of beads on the TLCs. But as the emulation components become operational, they will still look like Basic components and I think we want them to look like Jewel components. So the ability to use Jewel views and other beads on other strands is important and the exploded component test is a good way to keep from making too many assumptions when making view and other beads. All we should need to do is copy the classreferences the Jewel defaults.css and the proxy code from the Jewel TLCs. That is essentially what we are doing to make the emulation components operational now. We are copying classreferences from Basic's defaults.css and proxy code from the Basic TLCs. Thoughts? -Alex
