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 9caf15f  jewel-datagrid: support LabelFunction at DataGrid level, 
still no support at column (DataGridColumnList) level
9caf15f is described below

commit 9caf15fb80c889d2e8512b125f8392bb185b3fb1
Author: Carlos Rovira <[email protected]>
AuthorDate: Mon Aug 10 16:36:40 2020 +0200

    jewel-datagrid: support LabelFunction at DataGrid level, still no support 
at column (DataGridColumnList) level
---
 .../jewel/itemRenderers/DataGridItemRenderer.as    | 37 ++++++++++++++++++++++
 .../royale/jewel/itemRenderers/ListItemRenderer.as |  5 ++-
 .../supportClasses/datagrid/DataGridColumnList.as  |  2 +-
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DataGridItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DataGridItemRenderer.as
index 22887f6..ebef955 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DataGridItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DataGridItemRenderer.as
@@ -18,6 +18,12 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.itemRenderers
 {
+    import org.apache.royale.core.IChild;
+    import org.apache.royale.core.ILabelFunction;
+    import org.apache.royale.core.IStrand;
+    import org.apache.royale.html.util.getLabelFromData;
+    import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumnList;
+
     /**
         *  The DataGridItemRenderer defines the basic Item Renderer for a 
Jewel DataGrid Component.
      *  For now is just a ListItemRenderer that populates some values from 
Jewel DataGridColumn.
@@ -35,5 +41,36 @@ package org.apache.royale.jewel.itemRenderers
 
                        typeNames = "jewel item datagrid";
         }
+
+               /**
+                * Proxy the ILabelFunction bead if provided in the DataGrid to 
the DataGridListColumn
+                */
+               override public function get labelFunctionBead():ILabelFunction 
{
+                       if(!_labelFunctionBead) {
+                               //itemRendererOwnerView.host is 
DataGridColumnList -> parent is DataGridListArea -> parent is DataGrid
+                               _labelFunctionBead = 
((itemRendererOwnerView.host.parent as IChild).parent as 
IStrand).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.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.4
+                */
+        override public function set data(value:Object):void
+        {
+                       if(labelFunctionBead && labelFunctionBead.labelFunction)
+                               text = labelFunctionBead.labelFunction(value, 
itemRendererOwnerView.host);
+                       else
+               text = getLabelFromData(this, value);
+            _data = value;
+        }
     }
 }
\ No newline at end of file
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 57feba3..7f02d1c 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
@@ -138,12 +138,11 @@ package org.apache.royale.jewel.itemRenderers
                 */
         override public function set data(value:Object):void
         {
-                       if(labelFunctionBead && 
labelFunctionBead.labelFunction) {
+                       if(labelFunctionBead && labelFunctionBead.labelFunction)
                                text = labelFunctionBead.labelFunction(value);
-                       }
                        else
                text = getLabelFromData(this, value);
-            super.data = value;
+            _data = value;
         }
 
         /**
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumnList.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumnList.as
index 3a42af4..0fc28db 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumnList.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumnList.as
@@ -20,8 +20,8 @@ package org.apache.royale.jewel.supportClasses.datagrid
 {
     import org.apache.royale.jewel.DataGrid;
     import org.apache.royale.jewel.List;
-    import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
     import org.apache.royale.jewel.beads.models.ListPresentationModel;
+    import org.apache.royale.jewel.supportClasses.datagrid.IDataGridColumnList;
     
     //--------------------------------------
     //  Events

Reply via email to