You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/08/10 14:39:23 UTC
[royale-asjs] branch develop updated: jewel-datagrid: support
LabelFunction at DataGrid level,
still no support at column (DataGridColumnList) level
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 <ca...@apache.org>
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