I create the full path on my project
org.apache.royale.html.util.getLabelFromData
with the custom code and seems to override the SDK.

Hugo Ferreira <hferreira...@gmail.com> escreveu no dia terça, 7/06/2022
à(s) 22:16:

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

Reply via email to