You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by gr...@apache.org on 2022/01/27 03:19:34 UTC
[royale-asjs] 02/02: Trying to get more of DataGrid emulation aligned with the original Flex - using DataGridColumn.itemToLabel for DataGridListData.label
This is an automated email from the ASF dual-hosted git repository.
gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit f4622aeb976b8bef9b1832ca1e71c59e8e02536c
Author: greg-dove <gr...@gmail.com>
AuthorDate: Thu Jan 27 16:19:20 2022 +1300
Trying to get more of DataGrid emulation aligned with the original Flex - using DataGridColumn.itemToLabel for DataGridListData.label
---
.../beads/DataGridItemRendererInitializer.as | 16 +++++++----
.../main/royale/mx/controls/beads/DataGridView.as | 4 ++-
.../mx/controls/dataGridClasses/DataGridColumn.as | 32 ++++++++++++++--------
3 files changed, 34 insertions(+), 18 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as
index c3d1eb2..39314d2 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as
@@ -22,6 +22,7 @@ package mx.controls.beads
import mx.controls.DataGrid;
import mx.controls.beads.models.DataGridColumnICollectionViewModel;
+ import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.dataGridClasses.DataGridColumnList;
import mx.controls.dataGridClasses.DataGridListData;
import mx.core.UIComponent;
@@ -55,6 +56,8 @@ package mx.controls.beads
/**
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
+ *
+ * @royaleignorecoercion mx.controls.dataGridClasses.DataGridColumn
*/
override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
@@ -70,15 +73,18 @@ package mx.controls.beads
var dgColumnListModel:DataGridColumnICollectionViewModel = dgColumnList.model as DataGridColumnICollectionViewModel;
var dg:DataGrid = (dgColumnList.grid as DataGrid);
- var dataField:String = dg.columns[dgColumnListModel.columnIndex].dataField;
+ var dgColumn:DataGridColumn = dg.columns[dgColumnListModel.columnIndex] as DataGridColumn;
var text:String = "";
- try {
- text = data[dataField];
+
+ /*try {
+ text = dgColumn.labelFunction !=null ? dgColumn.labelFunction(data, dgColumn) : data[dgColumn.dataField];
} catch (e:Error)
{
- }
+ }*/
+ text = dgColumn.itemToLabel(data);
+
// Set the listData with the depth of this item
- var listData:DataGridListData = new DataGridListData(text, dataField, dgColumnListModel.columnIndex, "", (dgColumnList.grid as DataGrid), index);
+ var listData:DataGridListData = new DataGridListData(text, dgColumn.dataField, dgColumnListModel.columnIndex, "", dg, index);
(ir as IListDataItemRenderer).listData = listData;
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as
index e271e45..106e9f4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as
@@ -355,11 +355,13 @@ COMPILE::JS{
* @royaleignorecoercion mx.controls.listClasses.ListBase
* @royaleignorecoercion mx.controls.dataGridClasses.DataGridColumnList
* @royaleignorecoercion mx.controls.dataGridClasses.DataGridColumn
- * @royaleignorecoercion org.apache.royale.core.UIBase;
+ * @royaleignorecoercion org.apache.royale.core.UIBase
+ * @royaleignorecoercion mx.controls.beads.models.DataGridColumnICollectionViewModel
*/
override protected function onCreatedList(list:IDataGridColumnList, forColumn:IDataGridColumn):void{
(list as DataGridColumnList).grid = _strand as ListBase;
DataGridColumn(forColumn).list = list as UIBase;
+ ((list as DataGridColumnList).model as DataGridColumnICollectionViewModel).columnIndex = DataGridColumn(forColumn).colNum;
}
protected function preDestroyList(list:IDataGridColumnList):void{
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumn.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumn.as
index c2fa17d..70dda04 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumn.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumn.as
@@ -207,7 +207,7 @@ import org.apache.royale.core.IHasLabelField;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
-public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGridColumn implements IHasLabelField // IIMESupport
+public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGridColumn /*implements IHasLabelField */// IIMESupport
{
//--------------------------------------------------------------------------
//
@@ -364,22 +364,29 @@ public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGr
// labelFunction
//----------------------------------
+ /**
+ *
+ * @param data
+ * @return stringified value of data
+ *
+ * @royaleignorecoercion XML
+ * @royaleignorecoercion String
+ *
+ */
public function itemToLabel(data:Object):String
{
if (data == null)
return " ";
- /*
- if (labelFunction != null)
- return labelFunction(data);
- */
-
+ if (_labelFunction != null)
+ return _labelFunction(data, this);
+
if (data is XML)
{
try
{
- if ((data as XML)[labelField].length() != 0)
- data = (data as XML)[labelField];
+ if ((data as XML)[dataField].length() != 0)
+ data = (data as XML)[dataField];
//by popular demand, this is a default XML labelField
//else if (data.@label.length() != 0)
// data = data.@label;
@@ -392,8 +399,8 @@ public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGr
{
try
{
- if (data[labelField] != null)
- data = data[labelField];
+ if (data[dataField] != null)
+ data = data[dataField];
}
catch(e:Error)
{
@@ -414,7 +421,8 @@ public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGr
return " ";
}
- private var _labelField:String;
+ //DataGridColumn does not have 'labelField'
+ /* private var _labelField:String;
public function get labelField():String
{
return _labelField;
@@ -423,7 +431,7 @@ public class DataGridColumn extends org.apache.royale.html.supportClasses.DataGr
public function set labelField(value:String):void
{
_labelField = value;
- }
+ }*/
/**
* @private