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/03/11 21:05:31 UTC

[royale-asjs] branch develop updated: jewel-list: refactor to use Basic DataItemRendererFactoryForCollectionView and create its own ListItemRendererInitializer and remove JewelListItemRendererInitializer

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 ad8392f  jewel-list: refactor to use Basic DataItemRendererFactoryForCollectionView and create its own ListItemRendererInitializer and remove JewelListItemRendererInitializer
     new 7dca67b  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
ad8392f is described below

commit ad8392fdd14a8e0448070645b4cb46835e2bed30
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Wed Mar 11 22:04:54 2020 +0100

    jewel-list: refactor to use Basic DataItemRendererFactoryForCollectionView and create its own ListItemRendererInitializer and remove JewelListItemRendererInitializer
---
 .../projects/Jewel/src/main/resources/defaults.css |  4 +-
 .../projects/Jewel/src/main/royale/JewelClasses.as |  2 +-
 .../main/royale/org/apache/royale/jewel/List.as    |  2 +
 ...itializer.as => ListItemRendererInitializer.as} | 51 +++++-----------------
 .../Jewel/src/main/sass/components/_list.sass      |  4 +-
 5 files changed, 17 insertions(+), 46 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css
index d8246f4..a005b9d 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -3207,12 +3207,12 @@ j|List {
   IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout");
   IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
   IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer");
-  IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
+  IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ListItemRendererInitializer");
   ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead");
   IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport");
   IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
   IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel");
-  IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView");
+  IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
 }
 
 j|ListItemRenderer {
diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index 612ce48..f5fb7e2 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -134,8 +134,8 @@ package
         import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead; ClassSelectorListSelectableItemRendererBead;
         import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverOnlySelectableItemRendererBead; ClassSelectorListHoverOnlySelectableItemRendererBead;
         
-        import org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer; JewelListItemRendererInitializer;
         import org.apache.royale.jewel.beads.itemRenderers.DataContainerItemRendererInitializer; DataContainerItemRendererInitializer;
+        import org.apache.royale.jewel.beads.itemRenderers.ListItemRendererInitializer; ListItemRendererInitializer;
         import org.apache.royale.jewel.beads.itemRenderers.ButtonBarItemRendererInitializer; ButtonBarItemRendererInitializer;
         import org.apache.royale.jewel.beads.itemRenderers.TabBarItemRendererInitializer; TabBarItemRendererInitializer;
         import org.apache.royale.jewel.beads.itemRenderers.NavigationItemRendererInitializer; NavigationItemRendererInitializer;
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
index 315d4db..4ddcf8e 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
@@ -79,6 +79,8 @@ package org.apache.royale.jewel
 		{
 			super();
             typeNames = "jewel list";
+			// rowHeight is not set by default, so set it to NaN
+			rowHeight = NaN;
 		}
 
         [Bindable("labelFieldChanged")]
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ListItemRendererInitializer.as
similarity index 64%
rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ListItemRendererInitializer.as
index f0166f7..a2d095a 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ListItemRendererInitializer.as
@@ -18,30 +18,27 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.itemRenderers
 {	
-	import org.apache.royale.core.Bead;
-	import org.apache.royale.core.IDataProviderModel;
 	import org.apache.royale.core.IIndexedItemRenderer;
 	import org.apache.royale.core.IIndexedItemRendererInitializer;
-	import org.apache.royale.core.IItemRenderer;
 	import org.apache.royale.core.IItemRendererOwnerView;
-	import org.apache.royale.core.ILabelFieldItemRenderer;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IStrandWithModelView;
 	import org.apache.royale.core.IStrandWithPresentationModel;
 	import org.apache.royale.core.StyledMXMLItemRenderer;
 	import org.apache.royale.core.UIBase;
+	import org.apache.royale.html.beads.IndexedItemRendererInitializer;
 	import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
 
 	/**
 	 *  The ListItemRendererInitializer class initializes item renderers
-     *  in list classes.
+     *  in list classes and use the base class of many other initializers based on lists
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
-	 *  @productversion Royale 0.0
+	 *  @productversion Royale 0.9.7
 	 */
-	public class JewelListItemRendererInitializer extends Bead implements IIndexedItemRendererInitializer
+	public class ListItemRendererInitializer extends IndexedItemRendererInitializer implements IIndexedItemRendererInitializer
 	{
 		/**
 		 *  constructor.
@@ -49,16 +46,14 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.0
+		 *  @productversion Royale 0.9.7
 		 */
-		public function JewelListItemRendererInitializer()
+		public function ListItemRendererInitializer()
 		{
 		}
 		
         protected var presentationModel:IListPresentationModel;
-        protected var dataProviderModel:IDataProviderModel;
-        protected var labelField:String;
-        private var ownerView:IItemRendererOwnerView;
+        protected var ownerView:IItemRendererOwnerView;
         
 		/**
 		 *  @copy org.apache.royale.core.IBead#strand
@@ -66,43 +61,18 @@ package org.apache.royale.jewel.beads.itemRenderers
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.0
+		 *  @productversion Royale 0.9.7
 		 *  @royaleignorecoercion HTMLInputElement
 		 *  @royaleignorecoercion org.apache.royale.core.UIBase;
 		 */
 		override public function set strand(value:IStrand):void
 		{	
-			_strand = value;
+			super.strand = value;
             ownerView = (value as IStrandWithModelView).view as IItemRendererOwnerView;
             presentationModel = (_strand as IStrandWithPresentationModel).presentationModel as IListPresentationModel;            
-            dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
-            labelField = dataProviderModel.labelField;            
 		}
-		
-		/**
-		 *  @private
-		 *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
-		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
-		 */
-		public function initializeItemRenderer(ir:IItemRenderer, data:Object):void
-		{
-            if (ir is ILabelFieldItemRenderer)
-                (ir as ILabelFieldItemRenderer).labelField = labelField;
-            
-            setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
-        }
         
-        /**
-         *  @private
-         *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
-         */
-        public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
-        {
-            ir.index = index;
-            initializeItemRenderer(ir, data);
-        }
-        
-        protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
+        override protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
         {
             if (presentationModel) {
                 UIBase(ir).height = presentationModel.rowHeight;
@@ -115,6 +85,5 @@ package org.apache.royale.jewel.beads.itemRenderers
             if (ir is StyledMXMLItemRenderer && ownerView)
                 (ir as StyledMXMLItemRenderer).itemRendererOwnerView = ownerView;
 		}
-
 	}
 }
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_list.sass b/frameworks/projects/Jewel/src/main/sass/components/_list.sass
index ec5fe2a..a6dac28 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_list.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_list.sass
@@ -41,12 +41,12 @@ j|List
     IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout")
     IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory")
     IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer")
-    IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer")
+    IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ListItemRendererInitializer")
     ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead")
     IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport")
     IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel")
     IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel")
-    IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView")
+    IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView")
     //IBeadModel: ClassReference("org.apache.royale.html.beads.models.ArraySelectionModel")
     //IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData")