This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new e5162a2  jewel-listitemrenderer: use new label function capabilities 
so users can add custom functions
e5162a2 is described below

commit e5162a2853604f03cd8c02d585d19a211efca00c
Author: Carlos Rovira <[email protected]>
AuthorDate: Mon Aug 10 13:47:14 2020 +0200

    jewel-listitemrenderer: use new label function capabilities so users can 
add custom functions
---
 .../royale/jewel/itemRenderers/ListItemRenderer.as | 27 +++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
index 1e44284..75091ea 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
@@ -24,6 +24,7 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.html.util.addElementToWrapper;
        }
     import org.apache.royale.core.IBeadLayout;
+    import org.apache.royale.core.ILabelFunction;
     import org.apache.royale.core.StyledMXMLItemRenderer;
     import org.apache.royale.events.Event;
     import org.apache.royale.html.util.getLabelFromData;
@@ -113,8 +114,20 @@ package org.apache.royale.jewel.itemRenderers
                        textAlign.align = value;
                }
 
+               private var _labelFunctionBead:ILabelFunction;
+               /**
+                * Get the ILabelFunction bead if provided
+                */
+               public function get labelFunctionBead():ILabelFunction {
+                       if(!_labelFunctionBead) {
+                               _labelFunctionBead = 
itemRendererOwnerView.host.getBeadByType(ILabelFunction) as ILabelFunction;
+                       }
+                       return _labelFunctionBead;
+               }
+
                /**
                 *  Sets the data value and uses the String version of the data 
for display.
+                *  If the user provided a LabelFunction bead and set a custom 
labelFunction, then use it instead
                 * 
                 *  @param Object data The object being displayed by the 
itemRenderer instance.
                 *
@@ -125,7 +138,11 @@ package org.apache.royale.jewel.itemRenderers
                 */
         override public function set data(value:Object):void
         {
-            text = getLabelFromData(this, value);
+                       if(labelFunctionBead && 
labelFunctionBead.labelFunction) {
+                               text = labelFunctionBead.labelFunction(value);
+                       }
+                       else
+               text = getLabelFromData(this, value);
             super.data = value;
         }
 
@@ -156,6 +173,14 @@ package org.apache.royale.jewel.itemRenderers
                        addLayoutBead();
                }
 
+               /**
+                *  load the bead layout for this renderer
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.7
+                */
                public function addLayoutBead():void {
                        loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", 
this);
                }

Reply via email to