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. >>