I use itemRenders for more visual complex things (images, text with bold, etc ...) On this case I have a generic itemRender (visual aspect) and what's different it's the content. Doing an itemRender for each ComboBox seems to much work and a simple formula it's something in between for a less complex code structure.
But I understand what you mean, that's why I asked in the first place before commit. So, what's the best option to have this implemented only on my side (if there is this option) ? I would like to have this behaviour without put on the SDK and without using itemRenderers. For another word, how to have a copy of the custom getLabelFromData and use this instead of the SDK ? Harbs <harbs.li...@gmail.com> escreveu no dia terça, 7/06/2022 à(s) 22:04: > Hard coding it into a function which is widely used by ItemRenderers does > not seem like a good idea or very PAYG. > > Id suggest creating ItemRenderers which have this behavior. > > If there’s some way to inject the behavior into existing functions that > would be fine too, but I can’t think off hand of a good way of doing that. > > > On Jun 7, 2022, at 11:48 PM, Hugo Ferreira <hferreira...@gmail.com> > wrote: > > > > Method getLabelFromData from getLabelFromData.as > > > > I just added a new if block that seek for "[" and thread the keys. > > If it's OK, I can commit, otherwise I ask what's the best alternative > > solution to achive the same result. > > > > public function getLabelFromData(obj:Object,data:Object):String > > { > > // slightly more code, but we bail early if it's a string which is > > often > > if (data is String) return "" + data; > > if(!data) return ""; > > if(data is ILabeledData) return (data as ILabeledData).label; > > > > if (obj is IHasLabelField && > > (obj as IHasLabelField).labelField && > > (obj as IHasLabelField).labelField.indexOf("[") > -1) > > { > > var result:String = (obj as IHasLabelField).labelField; > > for each (var item:String in result.split("[")) > > { > > if (item.indexOf("]") > -1) > > { > > var field:String = item.split("]")[0]; > > result = result.replace("[" + field + "]", > data[field]); > > } > > } > > return result; > > } > > > > if (obj is IHasLabelField && > > (obj as IHasLabelField).labelField && > > data[(obj as IHasLabelField).labelField] != null) > > { > > return "" + data[(obj as IHasLabelField).labelField]; > > } > > > > if (obj is IHasDataField && > > (obj as IHasDataField).dataField && > > data[(obj as IHasDataField).dataField] != null) > > { > > return "" + data[(obj as IHasDataField).dataField]; > > } > > > > var label:String = data["label"]; > > if(label != null){ > > return label; > > } > > return "" + data; > > > > } > > > > Maria Jose Esteve <mjest...@iest.com> escreveu no dia terça, 7/06/2022 > à(s) > > 21:44: > > > >> Hugo, could it be seen? Maybe a branch or a PR? > >> > >> Hiedra > >> > >> -----Mensaje original----- > >> De: Hugo Ferreira <hferreira...@gmail.com> > >> Enviado el: martes, 7 de junio de 2022 21:58 > >> Para: Apache Royale Development <dev@royale.apache.org> > >> Asunto: Proposal for labelField with expression support > >> > >> Hi, > >> > >> In Flex "world" one can use labelField and labelFunction. > >> Here in Royale we have only labelField (at least I didn't see so far > >> support for labelFunction), however I'm not a big fan of labelFunction > >> anyway. > >> > >> I always wanted support for something in between of labelField and > >> labelFunction (labelFunction with multiple fields and fixed strings) > and I > >> implement it on my side. > >> > >> Ex: > >> model: > >> public class User > >> { > >> public var Code:String; > >> public var Name:String; > >> } > >> > >> With this model, one can use Code (user code) or Name but not the > combined > >> fields. > >> > >> With a little adition I can now do something like this: > labelField="[Code] > >> - [Name]" and at runtime every field delimited by [] it's replaced for > his > >> value, allowing multiple fields and complex expressions. > >> > >> Can I commit this or there is a reason to not do so ? > >> > >> Thank you, > >> Hugo. > >> > >