I’d just create my own ItemRenderer with the custom label behavior. I have MANY custom renderers in my apps.
> On Jun 8, 2022, at 12:16 AM, Hugo Ferreira <hferreira...@gmail.com> wrote: > > 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. >>>> >> >>