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

Reply via email to