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 2019/12/30 17:58:14 UTC

[royale-asjs] branch develop updated: jewel-datagrid-table: refactor interfaces and columns. TableColumn is now the base of DataGridColumn since the later has more advanced functionality and shares the same API

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 710a0b3  jewel-datagrid-table: refactor interfaces and columns. TableColumn is now the base of DataGridColumn since the later has more advanced functionality and shares the same API
710a0b3 is described below

commit 710a0b399553c5a54dd1e3310111f1ec0a252a1f
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Mon Dec 30 18:58:01 2019 +0100

    jewel-datagrid-table: refactor interfaces and columns. TableColumn is now the base of DataGridColumn since the later has more advanced functionality and shares the same API
---
 .../src/main/royale/DataGridPlayGround.mxml        |   8 +-
 .../projects/Jewel/src/main/resources/defaults.css |   5 +-
 .../supportClasses/datagrid/DataGridColumn.as      | 145 +------------------
 .../supportClasses/datagrid/IDataGridColumn.as     |  88 +-----------
 .../IDataGridColumn.as => table/ITableColumn.as}   |  32 ++---
 .../jewel/supportClasses/table/TableColumn.as      | 153 ++++++++++++++++++++-
 .../Jewel/src/main/sass/components/_datagrid.sass  |   4 +-
 7 files changed, 178 insertions(+), 257 deletions(-)

diff --git a/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml b/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
index b7a7c52..fac65bb 100644
--- a/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
+++ b/examples/royale/TourDeJewel/src/main/royale/DataGridPlayGround.mxml
@@ -76,7 +76,7 @@ limitations under the License.
 						<js:ConstantBinding
 							sourceID="productModel"
 							sourcePropertyName="productList"
-							destinationPropertyName="dataProvider" />
+							destinationPropertyName="dataProvider"/>
 					</j:beads>
 					<j:columns>
 						<j:DataGridColumn label="Images" dataField="image" 
@@ -102,8 +102,8 @@ limitations under the License.
 					<j:columns>
 						<j:DataGridColumn label="Images" dataField="image" columnWidth="90" 
 											itemRenderer="itemRenderers.ImageListItemRenderer"/>
-						<j:DataGridColumn label="Title" dataField="title" columnWidth="120" />
-						<j:DataGridColumn label="Sales" dataField="sales" columnWidth="70" />
+						<j:DataGridColumn label="Title" dataField="title" columnWidth="120"/>
+						<j:DataGridColumn label="Sales" dataField="sales" columnWidth="70"/>
 					</j:columns>
 				</j:DataGrid>
 
@@ -154,7 +154,7 @@ limitations under the License.
 					<j:columns>
 						<j:DataGridColumn label="Icon" dataField="icon" columnWidth="90" 
 											itemRenderer="itemRenderers.IconItemRenderer"/>
-						<j:DataGridColumn label="Label" dataField="label" columnWidth="200" />
+						<j:DataGridColumn label="Label" dataField="label" columnWidth="200"/>
 					</j:columns>
 				</j:DataGrid>
 
diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css
index dd552bb..96e5bf8 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -509,7 +509,6 @@ j|DataGrid {
   IBeadView: ClassReference("org.apache.royale.jewel.beads.views.DataGridView");
   IBeadModel: ClassReference("org.apache.royale.html.beads.models.DataGridCollectionViewModel");
   IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.DataGridLayout");
-  IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer");
   headerClass: ClassReference("org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar");
   headerLayoutClass: ClassReference("org.apache.royale.jewel.beads.layouts.ButtonBarLayout");
   listAreaClass: ClassReference("org.apache.royale.jewel.supportClasses.datagrid.DataGridListArea");
@@ -523,6 +522,10 @@ j|DataGridListArea {
   IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 }
 
+j|DataGridColumnList {
+  IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer");
+}
+
 .jewel.datechooser .jewel.table {
   min-width: 324px;
   min-height: 364px;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumn.as
index 7de9212..a3170fd 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/DataGridColumn.as
@@ -18,23 +18,22 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.supportClasses.datagrid
 {
-	import org.apache.royale.core.IFactory;
 	import org.apache.royale.core.IStyledUIBase;
-	import org.apache.royale.jewel.List;
+	import org.apache.royale.jewel.supportClasses.table.TableColumn;
 
 	/**
 	 *  The DataGridColumn class is the collection of properties that describe
 	 *  a column of the org.apache.royale.jewel.DataGrid: which renderer 
 	 *  to use for each cell in the column, the width of the column, the label for the 
 	 *  column, and the name of the field in the data containing the value to display 
-	 *  in the column. 
+	 *  in the column.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.7
 	 */
-	public class DataGridColumn implements IDataGridColumn
+	public class DataGridColumn extends TableColumn implements IDataGridColumn
 	{
 		/**
 		 *  constructor.
@@ -59,143 +58,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 */
 		public function createColumn():IStyledUIBase
 		{
-			return new List();
-		}
-		
-		private var _itemRenderer:IFactory;
-		
-		/**
-		 *  The itemRenderer class or factory to use to make instances of itemRenderers for
-		 *  display of data.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get itemRenderer():IFactory
-		{
-			return _itemRenderer;
-		}
-		public function set itemRenderer(value:IFactory):void
-		{
-			_itemRenderer = value;
-		}
-		
-		private var _columnWidth:Number = Number.NaN;
-		
-		/**
-		 *  The width of the column (default is 100 pixels).
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get columnWidth():Number
-		{
-			return _columnWidth;
-		}
-		public function set columnWidth(value:Number):void
-		{
-			_columnWidth = value;
-		}
-		
-		private var _label:String;
-		
-		/**
-		 *  The label for the column (appears in the header area).
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get label():String
-		{
-			return _label;
-		}
-		public function set label(value:String):void
-		{
-			_label = value;
-		}
-		
-		private var _dataField:String;
-		
-		/**
-		 *  The name of the field containing the data value presented by the column. This value is used
-		 *  by the itemRenderer is select the property from the data.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get dataField():String
-		{
-			return _dataField;
-		}
-		public function set dataField(value:String):void
-		{
-			_dataField = value;
-		}
-		
-		private var _className:String;
-		
-		/**
-		 * The name of the style class to use for this column. If this is not set
-		 * it defaults to DataGridColumnList.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get className():String
-		{
-			return _className;
-		}
-		public function set className(value:String):void
-		{
-			_className = value;
-		}
-
-		private var _align:String = ""
-		/**
-		 *  How text align in the column
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function get align():String
-		{
-			return _align;
-		}
-
-		public function set align(value:String):void
-		{
-			_align = value;
-		}
-
-		private var _columnLabelAlign:String = ""
-		/**
-		 *  How column label text align in the header
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		public function get columnLabelAlign():String
-		{
-			return _columnLabelAlign;
-		}
-
-		public function set columnLabelAlign(value:String):void
-		{
-			_columnLabelAlign = value;
+			return new DataGridColumnList();
 		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as
index ce530f0..2e70f75 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as
@@ -18,8 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.supportClasses.datagrid
 {
-	import org.apache.royale.core.IFactory;
 	import org.apache.royale.core.IStyledUIBase;
+	import org.apache.royale.jewel.supportClasses.table.ITableColumn;
 
 	/**
 	 *  Jewel IDataGridColumn is the interface used by Jewel DataGridColumn in the Jewel DataGrid.
@@ -28,67 +28,8 @@ package org.apache.royale.jewel.supportClasses.datagrid
 	 *  the width, the label (used in header), and the name of the field in the data containing the value to display 
 	 *  in the column (for the simplest ItemRenderer).
 	 */
-	public interface IDataGridColumn
-	{
-		/**
-		 *  The ItemRenderer class or factory to use to make instances of itemRenderers for
-		 *  display of data.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get itemRenderer():IFactory;
-		function set itemRenderer(value:IFactory):void;
-		
-		/**
-		 *  The width of the column.
-		 *  DataGrid defaults to "numColumns/n %", where n is the number of columns
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get columnWidth():Number;
-		function set columnWidth(value:Number):void;
-		
-		/**
-		 *  The label for the column (appears in the header area).
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get label():String;
-		function set label(value:String):void;
-		
-		/**
-		 *  The name of the field containing the data value presented by the column. This value is used
-		 *  by the itemRenderer is select the property from the data.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get dataField():String;
-		function set dataField(value:String):void;
-		
-		/**
-		 *  The name of the style class to use for this column.
-		 *  DataGrid uses ".jewel.list.column"
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get className():String;
-		function set className(value:String):void;
-		
+	public interface IDataGridColumn extends ITableColumn
+	{	
 		/**
 		 *  Returns a new instance of a UIBase component to be used as the actual
 		 *  column in the grid.
@@ -99,28 +40,5 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @productversion Royale 0.9.4
 		 */
 		function createColumn():IStyledUIBase;
-
-		/**
-		 * The name of the style class to use for this column. If this is not set
-		 * it defaults to DataGridColumnList.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		function get align():String;
-		function set align(value:String):void;
-
-		/**
-		 *  How column label text align in the header
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function get columnLabelAlign():String;
-		function set columnLabelAlign(value:String):void;
 	}
 }
\ No newline at end of file
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/ITableColumn.as
similarity index 79%
copy from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as
copy to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/ITableColumn.as
index ce530f0..d07c930 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/datagrid/IDataGridColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/ITableColumn.as
@@ -16,19 +16,18 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.supportClasses.datagrid
+package org.apache.royale.jewel.supportClasses.table
 {
 	import org.apache.royale.core.IFactory;
-	import org.apache.royale.core.IStyledUIBase;
 
 	/**
-	 *  Jewel IDataGridColumn is the interface used by Jewel DataGridColumn in the Jewel DataGrid.
+	 *  Jewel ITableColumn is the interface used by Jewel TableColumn in the Jewel Table.
 	 * 
-	 *  Define which renderer to use for each cell in the column, and other optional data like
+	 *  Define which renderer to use for each cell in the table, and other optional data like
 	 *  the width, the label (used in header), and the name of the field in the data containing the value to display 
 	 *  in the column (for the simplest ItemRenderer).
 	 */
-	public interface IDataGridColumn
+	public interface ITableColumn
 	{
 		/**
 		 *  The ItemRenderer class or factory to use to make instances of itemRenderers for
@@ -37,7 +36,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get itemRenderer():IFactory;
 		function set itemRenderer(value:IFactory):void;
@@ -49,7 +48,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get columnWidth():Number;
 		function set columnWidth(value:Number):void;
@@ -60,7 +59,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get label():String;
 		function set label(value:String):void;
@@ -72,7 +71,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get dataField():String;
 		function set dataField(value:String):void;
@@ -84,23 +83,12 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get className():String;
 		function set className(value:String):void;
 		
 		/**
-		 *  Returns a new instance of a UIBase component to be used as the actual
-		 *  column in the grid.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 */
-		function createColumn():IStyledUIBase;
-
-		/**
 		 * The name of the style class to use for this column. If this is not set
 		 * it defaults to DataGridColumnList.
 		 *
@@ -118,7 +106,7 @@ package org.apache.royale.jewel.supportClasses.datagrid
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
+		 *  @productversion Royale 0.9.7
 		 */
 		function get columnLabelAlign():String;
 		function set columnLabelAlign(value:String):void;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
index 67c43de..f03837d 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
@@ -18,10 +18,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.supportClasses.table
 {
-	import org.apache.royale.jewel.supportClasses.datagrid.DataGridColumn;
+	import org.apache.royale.core.IFactory;
 	
 	/**
-	 *  TableColumn is a DataGridColumn used in Jewel Table component
+	 *  TableColumn define a column for a Jewel Table component
 	 *  with special table properties.
 	 *  
 	 *  @langversion 3.0
@@ -29,7 +29,154 @@ package org.apache.royale.jewel.supportClasses.table
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class TableColumn extends DataGridColumn
+	public class TableColumn implements ITableColumn
 	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function TableColumn()
+		{
+		}
+		
+		private var _itemRenderer:IFactory;
+		
+		/**
+		 *  The itemRenderer class or factory to use to make instances of itemRenderers for
+		 *  display of data.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get itemRenderer():IFactory
+		{
+			return _itemRenderer;
+		}
+		public function set itemRenderer(value:IFactory):void
+		{
+			_itemRenderer = value;
+		}
+		
+		private var _columnWidth:Number = Number.NaN;
+		
+		/**
+		 *  The width of the column (default is 100 pixels).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get columnWidth():Number
+		{
+			return _columnWidth;
+		}
+		public function set columnWidth(value:Number):void
+		{
+			_columnWidth = value;
+		}
+		
+		private var _label:String;
+		
+		/**
+		 *  The label for the column (appears in the header area).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get label():String
+		{
+			return _label;
+		}
+		public function set label(value:String):void
+		{
+			_label = value;
+		}
+		
+		private var _dataField:String;
+		
+		/**
+		 *  The name of the field containing the data value presented by the column. This value is used
+		 *  by the itemRenderer is select the property from the data.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get dataField():String
+		{
+			return _dataField;
+		}
+		public function set dataField(value:String):void
+		{
+			_dataField = value;
+		}
+		
+		private var _className:String;
+		
+		/**
+		 * The name of the style class to use for this column. If this is not set
+		 * it defaults to DataGridColumnList.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get className():String
+		{
+			return _className;
+		}
+		public function set className(value:String):void
+		{
+			_className = value;
+		}
+
+		private var _align:String = ""
+		/**
+		 *  How text align in the column
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get align():String
+		{
+			return _align;
+		}
+
+		public function set align(value:String):void
+		{
+			_align = value;
+		}
+
+		private var _columnLabelAlign:String = ""
+		/**
+		 *  How column label text align in the header
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.4
+		 */
+		public function get columnLabelAlign():String
+		{
+			return _columnLabelAlign;
+		}
+
+		public function set columnLabelAlign(value:String):void
+		{
+			_columnLabelAlign = value;
+		}
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
index 7b7b5d4..685f4bc 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass
@@ -49,7 +49,6 @@ j|DataGrid
     IBeadView: ClassReference("org.apache.royale.jewel.beads.views.DataGridView")
     IBeadModel: ClassReference("org.apache.royale.html.beads.models.DataGridCollectionViewModel")
     IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.DataGridLayout")
-    IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer")
     headerClass: ClassReference("org.apache.royale.jewel.supportClasses.datagrid.DataGridButtonBar")
     headerLayoutClass: ClassReference("org.apache.royale.jewel.beads.layouts.ButtonBarLayout")
     listAreaClass: ClassReference("org.apache.royale.jewel.supportClasses.datagrid.DataGridListArea")
@@ -61,5 +60,8 @@ j|DataGridListArea
     IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport")
     IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel")
 
+j|DataGridColumnList
+    IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer")
+
 //Nothing to change from j|ButtonBar
 j|DataGridButtonBar