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/07/23 18:35:49 UTC

[royale-asjs] branch feature/dataprovider-extensiblity created (now 0bb036e)

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

carlosrovira pushed a change to branch feature/dataprovider-extensiblity
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


      at 0bb036e  jewel-table-factory: refactor to use dataitemrendererfactorybase first step

This branch includes the following new commits:

     new 4c16889  dataprovider factory: little refactor to make it more extensible for more complex components (jewel table)
     new 8e4ff6e  jewel: fix mappers
     new 0bb036e  jewel-table-factory: refactor to use dataitemrendererfactorybase first step

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[royale-asjs] 02/03: jewel: fix mappers

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8e4ff6ef5cf47869d00275c6103f1da529b876db
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Jul 23 20:25:34 2020 +0200

    jewel: fix mappers
---
 .../DropDownListItemRendererFactoryForCollectionView.as              | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DropDownListItemRendererFactoryForCollectionView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DropDownListItemRendererFactoryForCollectionView.as
index fb3558f..e2186a1 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DropDownListItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DropDownListItemRendererFactoryForCollectionView.as
@@ -57,8 +57,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 			
 			removeAllItemRenderers(dataGroup);
 
-			dp = dataProviderModel.dataProvider;
-			if (!dp)
+			if (!dataProviderModel.dataProvider)
 				return;
 			
 			var offset:int = (dataProviderModel as IDropDownListModel).offset;
@@ -91,7 +90,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 				dped.removeEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
 			}
 			// listen for individual items being added in the future.
-			dped = dp as IEventDispatcher;
+			dped = dataProviderModel.dataProvider as IEventDispatcher;
 			dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
 			dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
 			dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);


[royale-asjs] 01/03: dataprovider factory: little refactor to make it more extensible for more complex components (jewel table)

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4c168894a5c2f3e420bb806525e340bf6883e130
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Jul 23 19:34:02 2020 +0200

    dataprovider factory: little refactor to make it more extensible for more complex components (jewel table)
    
    (cherry picked from commit a0e490c88b4b453bed9e59184a224de112888161)
---
 .../html/beads/DataItemRendererFactoryBase.as      | 27 ++++++++-------
 .../DataItemRendererFactoryForCollectionView.as    | 38 +++++++++++-----------
 .../royale/html/beads/ItemRendererFactoryBase.as   |  9 +++--
 3 files changed, 40 insertions(+), 34 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
index fc0758f..2f8cbd8 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
@@ -52,11 +52,6 @@ package org.apache.royale.html.beads
 		}
 
 		/**
-		 * the dataProvider
-		 */
-		protected var dp:Object;
-						
-		/**
 		 *  This Factory deletes all renderers, and generates a renderer
 		 *  for every data provider item.
 		 *  
@@ -67,8 +62,7 @@ package org.apache.royale.html.beads
 		 *  @royaleignorecoercion Array
 		 *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
 		 *  @royaleignorecoercion org.apache.royale.html.beads.IListView
-		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
-		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRendererInitializer
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
 		 */		
 		override protected function dataProviderChangeHandler(event:Event):void
 		{			
@@ -77,10 +71,22 @@ package org.apache.royale.html.beads
 			
 			removeAllItemRenderers(dataGroup);
 			
-			dp = dataProviderModel.dataProvider;
-			if (!dp)
+			if (!dataProviderModel.dataProvider)
 				return;
 			
+			createAllItemRenderers(dataGroup);
+			
+			dispatchItemCreatedEvent();
+		}
+
+		/**
+		 *  create all item renderers
+		 *  
+		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
+		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRendererInitializer
+		 */
+		protected function createAllItemRenderers(dataGroup:IItemRendererOwnerView):void
+		{
 			var n:int = dataProviderLength; 
 			for (var i:int = 0; i < n; i++)
 			{				
@@ -91,14 +97,11 @@ package org.apache.royale.html.beads
 				(itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, i);
 				ir.data = data;				
 			}
-			
-			dispatchItemCreatedEvent();
 		}
 
 		protected function dispatchItemCreatedEvent():void
 		{
 			sendStrandEvent(_strand,"itemsCreated");
 		}
-
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
index d532595..01f3156 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
@@ -18,7 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads
 {
-	import org.apache.royale.collections.ICollectionView;
 	import org.apache.royale.core.IIndexedItemRenderer;
 	import org.apache.royale.core.IIndexedItemRendererInitializer;
 	import org.apache.royale.core.IItemRendererOwnerView;
@@ -58,7 +57,7 @@ package org.apache.royale.html.beads
 			
 			super.dataProviderChangeHandler(event);
 			
-			if (!dp)
+			if (!dataProviderModel.dataProvider)
 				return;
 			
 			if(dped)
@@ -68,13 +67,25 @@ package org.apache.royale.html.beads
 				dped.removeEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
 			}
 			// listen for individual items being added in the future.
-			dped = dp as IEventDispatcher;
+			dped = dataProviderModel.dataProvider as IEventDispatcher;
 			dped.addEventListener(CollectionEvent.ITEM_ADDED, itemAddedHandler);
 			dped.addEventListener(CollectionEvent.ITEM_REMOVED, itemRemovedHandler);
 			dped.addEventListener(CollectionEvent.ITEM_UPDATED, itemUpdatedHandler);
 		}
 		
 		/**
+		 * check if model and dataprovider exists. This check is done through all methods
+		 * @private
+		 */
+		private function get dataProviderExist():Boolean
+		{
+			if (!dataProviderModel || !dataProviderModel.dataProvider)
+				return false;
+			
+			return true;
+		}
+
+		/**
 		 * @private
 		 * @royaleignorecoercion org.apache.royale.collections.ICollectionView
 		 * @royaleignorecoercion org.apache.royale.core.IListPresentationModel
@@ -82,12 +93,8 @@ package org.apache.royale.html.beads
 		 */
 		protected function itemAddedHandler(event:CollectionEvent):void
 		{
-			if (!dataProviderModel)
+			if(!dataProviderExist)
 				return;
-			dp = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
-				return;
-			
 			var view:IListView = (_strand as IStrandWithModelView).view as IListView;
 			var dataGroup:IItemRendererOwnerView = view.dataGroup;
 			
@@ -123,10 +130,7 @@ package org.apache.royale.html.beads
 		 */
 		protected function itemRemovedHandler(event:CollectionEvent):void
 		{
-			if (!dataProviderModel)
-				return;
-			dp = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
+			if(!dataProviderExist)
 				return;
 			
 			var view:IListView = (_strand as IStrandWithModelView).view as IListView;
@@ -160,10 +164,7 @@ package org.apache.royale.html.beads
 		 */
 		protected function itemUpdatedHandler(event:CollectionEvent):void
 		{
-			if (!dataProviderModel)
-				return;
-			dp = dataProviderModel.dataProvider as ICollectionView;
-			if (!dp)
+			if(dataProviderExist)
 				return;
 
 			var view:IListView = (_strand as IStrandWithModelView).view as IListView;
@@ -180,13 +181,12 @@ package org.apache.royale.html.beads
 
 		override protected function get dataProviderLength():int
 		{
-			return dp.length;
+			return dataProviderModel.dataProvider.length;
 		}
 		
 		override protected function getItemAt(i:int):Object
 		{
-			return dp.getItemAt(i);
+			return dataProviderModel.dataProvider.getItemAt(i);
 		}
-		
 	}
 }
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
index 7a3f00d..0cb509e 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
@@ -18,17 +18,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads
 {
-	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.DispatcherBead;
 	import org.apache.royale.core.IDataProviderModel;
 	import org.apache.royale.core.IItemRendererClassFactory;
 	import org.apache.royale.core.IItemRendererInitializer;
 	import org.apache.royale.core.IItemRendererOwnerView;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.events.Event;
-	import org.apache.royale.events.EventDispatcher;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
-	import org.apache.royale.core.DispatcherBead;
 
     /**
      *  The DataItemRendererFactoryBase class is a base class
@@ -162,6 +160,11 @@ package org.apache.royale.html.beads
 		{
 		}
         
+        /**
+         *  Remove all itemrenderers
+         * 
+         *  @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
+         */
         protected function removeAllItemRenderers(dataGroup:IItemRendererOwnerView):void
         {
             dataGroup.removeAllItemRenderers();            


Fwd: [royale-asjs] 03/03: jewel-table-factory: refactor to use dataitemrendererfactorybase first step

Posted by Carlos Rovira <ca...@apache.org>.
Hi,

I'm doing a little refactor in DataItemRendererFactoryBase
so I can refactor TableItemRendererFactoryForCollectionView
and use it to remove lots of repeated code.

I think it should not affect anything, but since the latest times my
changes affect Harbs code, I thought this one better done in a branch.
I'm still doing work in the branch, but want to share it with you so you
can check the first commit that is the one that does some changes.

In summary, there's two things:

1.- introduce dataProviderExist to remove repeated code in lots of methods
in the class
2.- Move the creation of the renderers to createAllItemRenderers new method
so I can use it in table refactor.

The factory is about removing all renders and creating the new ones (as the
comment section says), we have a method for the removal but not for the
creation which makes extension difficult.


---------- Forwarded message ---------
De: <ca...@apache.org>
Date: jue., 23 jul. 2020 a las 20:35
Subject: [royale-asjs] 03/03: jewel-table-factory: refactor to use
dataitemrendererfactorybase first step
To: commits@royale.apache.org <co...@royale.apache.org>


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

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

commit 0bb036ee80c3db66601d78fdd294c3a95aee152d
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Jul 23 20:35:14 2020 +0200

    jewel-table-factory: refactor to use dataitemrendererfactorybase first
step
---
 .../TableItemRendererFactoryForCollectionView.as   | 88
++--------------------
 1 file changed, 5 insertions(+), 83 deletions(-)

diff --git
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
index e0a51d5..091cf53 100644
---
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
+++
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
@@ -19,21 +19,17 @@
 package org.apache.royale.jewel.beads.itemRenderers
 {
     import org.apache.royale.collections.ICollectionView;
-    import org.apache.royale.core.IBead;
     import org.apache.royale.core.IBeadModel;
     import org.apache.royale.core.IChild;
     import org.apache.royale.core.IDataProviderItemRendererMapper;
     import org.apache.royale.core.IIndexedItemRenderer;
     import org.apache.royale.core.IIndexedItemRendererInitializer;
-    import org.apache.royale.core.IItemRendererClassFactory;
-    import org.apache.royale.core.IItemRendererInitializer;
     import org.apache.royale.core.ILabelFieldItemRenderer;
     import org.apache.royale.core.IParent;
-    import org.apache.royale.core.IStrand;
     import org.apache.royale.core.UIBase;
     import org.apache.royale.events.Event;
-    import org.apache.royale.events.EventDispatcher;
     import org.apache.royale.events.IEventDispatcher;
+    import org.apache.royale.html.beads.DataItemRendererFactoryBase;
     import org.apache.royale.html.beads.IListView;
     import org.apache.royale.html.supportClasses.StyledDataItemRenderer;
     import org.apache.royale.jewel.Label;
@@ -48,37 +44,19 @@ package org.apache.royale.jewel.beads.itemRenderers
     import org.apache.royale.jewel.supportClasses.table.TableColumn;
     import org.apache.royale.jewel.supportClasses.table.TableHeaderCell;
     import org.apache.royale.jewel.supportClasses.table.TableRow;
-    import org.apache.royale.utils.loadBeadFromValuesManager;

     /**
         * This class creates itemRenderer instances from the data
contained within an ICollectionView
      * and generates the appropiate table structure with thead, tbody and
table rows and cells
      * to hold the columns and data in cells.
         */
-       public class TableItemRendererFactoryForCollectionView extends
EventDispatcher implements IBead, IDataProviderItemRendererMapper
+       public class TableItemRendererFactoryForCollectionView extends
DataItemRendererFactoryBase implements IDataProviderItemRendererMapper
        {
                public function
TableItemRendererFactoryForCollectionView(target:Object = null)
                {
                        super(target);
                }

-               protected var _strand:IStrand;
-
-               /**
-                *  @copy org.apache.royale.core.IBead#strand
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.4
-                *  @royaleignorecoercion
org.apache.royale.events.IEventDispatcher
-                */
-               public function set strand(value:IStrand):void
-               {
-                       _strand = value;
-
 IEventDispatcher(value).addEventListener("initComplete", initComplete);
-               }
-
                /**
                 *  finish setup
                 *
@@ -89,9 +67,9 @@ package org.apache.royale.jewel.beads.itemRenderers
                 *  @royaleignorecoercion
org.apache.royale.events.IEventDispatcher
                 *  @royaleignorecoercion
org.apache.royale.html.beads.IListView
                 */
-               protected function initComplete(event:Event):void
+               override protected function finishSetup(event:Event):void
                {
-
 IEventDispatcher(_strand).removeEventListener("initComplete",
initComplete);
+
 IEventDispatcher(_strand).removeEventListener("initComplete", finishSetup);

                        view = _strand.getBeadByType(IListView) as
TableView;
                        tbody = view.dataGroup as TBodyContentArea;
@@ -105,34 +83,6 @@ package org.apache.royale.jewel.beads.itemRenderers
                }

                protected var labelField:String;
-
-               private var _itemRendererFactory:IItemRendererClassFactory;
-
-               /**
-                *  The org.apache.royale.core.IItemRendererClassFactory
used
-                *  to generate instances of item renderers.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9.4
-                *  @royaleignorecoercion
org.apache.royale.core.IItemRendererClassFactory
-                */
-               public function get
itemRendererFactory():IItemRendererClassFactory
-               {
-                       if(!_itemRendererFactory)
-                               _itemRendererFactory =
loadBeadFromValuesManager(IItemRendererClassFactory,
"iItemRendererClassFactory", _strand) as IItemRendererClassFactory;
-
-                       return _itemRendererFactory;
-               }
-
-               /**
-                *  @private
-                */
-               public function set
itemRendererFactory(value:IItemRendererClassFactory):void
-               {
-                       _itemRendererFactory = value;
-               }

         protected var view:TableView;
         protected var model:TableModel;
@@ -147,7 +97,7 @@ package org.apache.royale.jewel.beads.itemRenderers
                 * @royaleignorecoercion
org.apache.royale.core.IIndexedItemRenderer
                 * @royaleignorecoercion
org.apache.royale.events.IEventDispatcher
                 */
-               protected function
dataProviderChangeHandler(event:Event):void
+               override protected function
dataProviderChangeHandler(event:Event):void
                {
                        // -- 1) CLEANING PHASE
             if (!model)
@@ -256,34 +206,6 @@ package org.apache.royale.jewel.beads.itemRenderers
                        setData(itemRenderer, item, index);
                }

-               private var
_itemRendererInitializer:IItemRendererInitializer;
-
-        /**
-         *  The org.apache.royale.core.IItemRendererInitializer used
-         *  to initialize instances of item renderers.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.8
-         *  @royaleignorecoercion
org.apache.royale.core.IItemRendererInitializer
-         */
-        public function get
itemRendererInitializer():IItemRendererInitializer
-        {
-            if(!_itemRendererInitializer)
-                _itemRendererInitializer =
loadBeadFromValuesManager(IItemRendererInitializer,
"iItemRendererInitializer", _strand) as IItemRendererInitializer;
-
-            return _itemRendererInitializer;
-        }
-
-        /**
-         *  @private
-         */
-        public function set
itemRendererInitializer(value:IItemRendererInitializer):void
-        {
-            _itemRendererInitializer = value;
-        }
-
                /**
                 * @private
                 */



-- 
Carlos Rovira
http://about.me/carlosrovira

[royale-asjs] 03/03: jewel-table-factory: refactor to use dataitemrendererfactorybase first step

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0bb036ee80c3db66601d78fdd294c3a95aee152d
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Thu Jul 23 20:35:14 2020 +0200

    jewel-table-factory: refactor to use dataitemrendererfactorybase first step
---
 .../TableItemRendererFactoryForCollectionView.as   | 88 ++--------------------
 1 file changed, 5 insertions(+), 83 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
index e0a51d5..091cf53 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TableItemRendererFactoryForCollectionView.as
@@ -19,21 +19,17 @@
 package org.apache.royale.jewel.beads.itemRenderers
 {
     import org.apache.royale.collections.ICollectionView;
-    import org.apache.royale.core.IBead;
     import org.apache.royale.core.IBeadModel;
     import org.apache.royale.core.IChild;
     import org.apache.royale.core.IDataProviderItemRendererMapper;
     import org.apache.royale.core.IIndexedItemRenderer;
     import org.apache.royale.core.IIndexedItemRendererInitializer;
-    import org.apache.royale.core.IItemRendererClassFactory;
-    import org.apache.royale.core.IItemRendererInitializer;
     import org.apache.royale.core.ILabelFieldItemRenderer;
     import org.apache.royale.core.IParent;
-    import org.apache.royale.core.IStrand;
     import org.apache.royale.core.UIBase;
     import org.apache.royale.events.Event;
-    import org.apache.royale.events.EventDispatcher;
     import org.apache.royale.events.IEventDispatcher;
+    import org.apache.royale.html.beads.DataItemRendererFactoryBase;
     import org.apache.royale.html.beads.IListView;
     import org.apache.royale.html.supportClasses.StyledDataItemRenderer;
     import org.apache.royale.jewel.Label;
@@ -48,37 +44,19 @@ package org.apache.royale.jewel.beads.itemRenderers
     import org.apache.royale.jewel.supportClasses.table.TableColumn;
     import org.apache.royale.jewel.supportClasses.table.TableHeaderCell;
     import org.apache.royale.jewel.supportClasses.table.TableRow;
-    import org.apache.royale.utils.loadBeadFromValuesManager;
 
     /**
 	 * This class creates itemRenderer instances from the data contained within an ICollectionView
      * and generates the appropiate table structure with thead, tbody and table rows and cells
      * to hold the columns and data in cells.
 	 */
-	public class TableItemRendererFactoryForCollectionView extends EventDispatcher implements IBead, IDataProviderItemRendererMapper
+	public class TableItemRendererFactoryForCollectionView extends DataItemRendererFactoryBase implements IDataProviderItemRendererMapper
 	{
 		public function TableItemRendererFactoryForCollectionView(target:Object = null)
 		{
 			super(target);
 		}
 
-		protected var _strand:IStrand;
-		
-		/**
-		 *  @copy org.apache.royale.core.IBead#strand
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
-		 */
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-			IEventDispatcher(value).addEventListener("initComplete", initComplete);
-		}
-
 		/**
 		 *  finish setup
 		 *
@@ -89,9 +67,9 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 *  @royaleignorecoercion org.apache.royale.html.beads.IListView
 		 */
-		protected function initComplete(event:Event):void
+		override protected function finishSetup(event:Event):void
 		{
-			IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
+			IEventDispatcher(_strand).removeEventListener("initComplete", finishSetup);
 
 			view = _strand.getBeadByType(IListView) as TableView;
 			tbody = view.dataGroup as TBodyContentArea;
@@ -105,34 +83,6 @@ package org.apache.royale.jewel.beads.itemRenderers
 		}
 		
 		protected var labelField:String;
-		
-		private var _itemRendererFactory:IItemRendererClassFactory;
-		
-		/**
-		 *  The org.apache.royale.core.IItemRendererClassFactory used
-		 *  to generate instances of item renderers.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.4
-		 *  @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory
-		 */
-		public function get itemRendererFactory():IItemRendererClassFactory
-		{
-			if(!_itemRendererFactory)
-				_itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory;
-			
-			return _itemRendererFactory;
-		}
-		
-		/**
-		 *  @private
-		 */
-		public function set itemRendererFactory(value:IItemRendererClassFactory):void
-		{
-			_itemRendererFactory = value;
-		}
 
         protected var view:TableView;
         protected var model:TableModel;
@@ -147,7 +97,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
 		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
-		protected function dataProviderChangeHandler(event:Event):void
+		override protected function dataProviderChangeHandler(event:Event):void
 		{
 			// -- 1) CLEANING PHASE
             if (!model)
@@ -256,34 +206,6 @@ package org.apache.royale.jewel.beads.itemRenderers
 			setData(itemRenderer, item, index);
 		}
 
-		private var _itemRendererInitializer:IItemRendererInitializer;
-        
-        /**
-         *  The org.apache.royale.core.IItemRendererInitializer used 
-         *  to initialize instances of item renderers.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.8
-         *  @royaleignorecoercion org.apache.royale.core.IItemRendererInitializer
-         */
-        public function get itemRendererInitializer():IItemRendererInitializer
-        {
-            if(!_itemRendererInitializer)
-                _itemRendererInitializer = loadBeadFromValuesManager(IItemRendererInitializer, "iItemRendererInitializer", _strand) as IItemRendererInitializer;
-            
-            return _itemRendererInitializer;
-        }
-        
-        /**
-         *  @private
-         */
-        public function set itemRendererInitializer(value:IItemRendererInitializer):void
-        {
-            _itemRendererInitializer = value;
-        }
-
 		/**
 		 * @private
 		 */