My thoughts on this: 1. In the Basic component set, there is a DropDownList and a ComboBox. They are separate components and do not inherit from each other because for Basic, the DropDownList is an HTML <select/> tag that cannot have an editable "display" field. ComboBox must be composited some other way. It doesn't have to be this way in Jewel, but PAYG implies that a Jewel DropDownList would use a Label instead of a TextInput with editable=false.
2. The main tag in MXML is the base class for the MXML component, so anyone should be able to describe an MXML view for any component by starting with an MXML-enabled base class. MXMLBeadView was created to do that, but I just looked at it and it subclasses GroupView. That doesn't seem right to me so you might try having MXMLBeadView subclass BeadViewBase and a new MXMLGroupBeadView would bring in the GroupView pieces for those customizing views in Groups. 3. For PAYG, the current ComboBoxView should probably stick around as the default. It will not incur the overhead cost of asking ValuesManager for its pieces. But some more generic ComboBoxView can certain ask ValuesManager for its pieces. You can ask ValuesManager for an value, not just beads. HTH, -Alex On 5/31/18, 8:28 AM, "Harbs" <[email protected]> wrote: An additional wrinkle in this problem is wether there’s any way to specify the parts of the view using MXML, or it has to be in CSS. If they are beads, that problem is simplified. If not, is there a way to add to ValueManager via MXML? Harbs > On May 31, 2018, at 6:09 PM, Harbs <[email protected]> wrote: > > I don’t think so. The List is a component within ComboBox. I think the basic structure of ComboBox makes sense as is. I think it’s the View which needs work. > > It’s possible that an Express ComboBox might have additional properties to make it easier to set the labelField, listHeight, etc. > > I’m primarily trying to figure out the best way to declare the “skin pieces” of the view. > > Harbs > >> On May 31, 2018, at 5:17 PM, Piotr Zarzycki <[email protected]> wrote: >> >> Hi Harbs, >> >> What if ComboBox will extend DataContainer? It will be at some point list >> itself. Than the rest responsibility is in View. We know that ComboBox is >> always list, so if someone would like to change the other parts need to >> have dive into view. >> >> On the other hand this solution probably is less flexible than having >> through css some parts of that component. >> >> Thanks, >> Piotr >> >> >> czw., 31 maj 2018 o 15:35 Harbs <[email protected]> napisał(a): >> >>> I’m working on redoing ComboBox and I could use some input on best >>> practices. >>> >>> Right now, ComboBox has ComboBox view which has three components >>> hard-wired in. It has TextInput, TextButton, and List. If any visuals or >>> behavior need to be changed, the entire view needs to be rewritten. We’ve >>> already had two cases where I needed a new view. One was to disable the >>> TextInput input and change the button appearance. The second was to support >>> images in a dropdown. >>> >>> It seems to me like the ComboBoxView should add the three components based >>> on declared classes. I think there should be 1. A “Button” component. 2. An >>> ItemRenderer component for the “input” which displays the selected item. 3. >>> A List component for displaying the dropdown. The question I’m struggling >>> with is how to declare these. >>> >>> I don’t think it makes sense to make these all beads. Currently Buttons >>> are not beads. >>> >>> Should we add interfaces (i.e. IButton) and declare the classes using >>> interfaces? I mean something similar to IItemRenderer. >>> >>> Maybe just use ValuesManager to just lookup some other “name”? We’re >>> currently doing something similar with ColumnClassName in DynamicDataGrid. >>> >>> Other ideas? >>> >>> Thanks, >>> Harbs >> >> >> >> -- >> >> Piotr Zarzycki >> >> Patreon: *https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C11420f00b73946ac852408d5c70b3253%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636633773269480226&sdata=WlvpUXXxjb5f6D7UQJUNKKpDM44oCfbPKPOHiMOkkFM%3D&reserved=0 >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C11420f00b73946ac852408d5c70b3253%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636633773269480226&sdata=WlvpUXXxjb5f6D7UQJUNKKpDM44oCfbPKPOHiMOkkFM%3D&reserved=0>* >
