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:52 UTC

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

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
 		 */


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