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/28 19:09:34 UTC

[royale-asjs] branch develop updated: jewel-viewport: simplify some mehtods and solve a RTE with non StyledUIBase containers

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 725acbb  jewel-viewport: simplify some mehtods and solve a RTE with non StyledUIBase containers
725acbb is described below

commit 725acbb32ea3bc3ccb06ad8b25e3f2e6a2f7ffab
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sat Mar 28 20:09:29 2020 +0100

    jewel-viewport: simplify some mehtods and solve a RTE with non StyledUIBase containers
---
 .../apache/royale/html/supportClasses/Viewport.as  | 13 +++----
 .../apache/royale/jewel/supportClasses/Viewport.as | 36 +++++++++---------
 .../supportClasses/scrollbar/ScrollingViewport.as  | 44 +++++-----------------
 3 files changed, 34 insertions(+), 59 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
index 63e012e..a5ff441 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
@@ -18,22 +18,21 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.supportClasses
 {
+	COMPILE::SWF
+	{
+	import flash.geom.Rectangle;
+	import org.apache.royale.geom.Rectangle;
+	}
 	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IContentView;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IUIBase;
-	import org.apache.royale.core.IViewport;
 	import org.apache.royale.core.UIBase;
+	import org.apache.royale.core.IViewport;
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.EventDispatcher;
-	import org.apache.royale.geom.Rectangle;
 	import org.apache.royale.geom.Size;
 
-	COMPILE::SWF
-	{
-		import flash.geom.Rectangle;
-	}
 
     /**
      * A Viewport is the area of a Container set aside for displaying
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/Viewport.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/Viewport.as
index 405d44c..968c8ab 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/Viewport.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/Viewport.as
@@ -22,10 +22,9 @@ package org.apache.royale.jewel.supportClasses
 	{
 	import org.apache.royale.core.IContentView;
 	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
 	}
-	import org.apache.royale.core.StyledUIBase;
+	import org.apache.royale.core.UIBase;
 	import org.apache.royale.html.supportClasses.Viewport;
 
     /**
@@ -53,14 +52,6 @@ package org.apache.royale.jewel.supportClasses
             super();
 		}
 		
-		protected var styledContentArea:StyledUIBase;
-
-		COMPILE::JS
-		override public function get contentView():IUIBase
-        {
-            return styledContentArea as IUIBase;
-        }
-		
         /**
 		 * @royaleignorecoercion Class
 		 * @royaleignorecoercion org.apache.royale.core.UIBase
@@ -70,21 +61,28 @@ package org.apache.royale.jewel.supportClasses
 		{
 			_strand = value;
 			
-			styledContentArea = loadBeadFromValuesManager(IContentView, "iContentView", _strand) as StyledUIBase;
+			contentArea = loadBeadFromValuesManager(IContentView, "iContentView", _strand) as UIBase;
 
-			if (!styledContentArea)
-				styledContentArea = value as StyledUIBase;
+			if (!contentArea)
+				contentArea = value as UIBase;
 			
 			setScrollStyle();
 		}
 		
 		/**
-		 * Subclasses override this method to change scrolling behavior
+		 *  Subclasses override this method to change scrolling behavior
+		 *  We use classList, since we can affect UIBase components (not only StyledUIBase)
+		 *  like for example and html:Div or html:Pre
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.7
 		 */
 		COMPILE::JS
 		override protected function setScrollStyle():void
 		{
-			styledContentArea.addClass("viewport");
+			contentArea.element.classList.add("viewport");
 			clipContent = true;
 		}
 
@@ -105,17 +103,19 @@ package org.apache.royale.jewel.supportClasses
 		{
 			return _clipContent;
 		}
-
     	public function set clipContent(value:Boolean):void
 		{
 			if(_clipContent != value)
 			{
 				_clipContent = value;
 
+				COMPILE::JS
+				{
 				if(_clipContent)
-					styledContentArea.addClass("clipped");
+					contentArea.element.classList.add("clipped");
 				else
-					styledContentArea.removeClass("clipped");
+					contentArea.element.classList.remove("clipped");
+				}
 			}
 		}
     }
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/scrollbar/ScrollingViewport.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/scrollbar/ScrollingViewport.as
index cef6266..899b9fa 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/scrollbar/ScrollingViewport.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/scrollbar/ScrollingViewport.as
@@ -26,19 +26,15 @@ package org.apache.royale.jewel.supportClasses.scrollbar
 	import org.apache.royale.core.IContainer;
 	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.core.IViewportScroller;
+	import org.apache.royale.core.UIBase;
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.core.layout.EdgeData;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.geom.Rectangle;
 	import org.apache.royale.jewel.beads.models.ScrollBarModel;
     }
-	COMPILE::JS
-    {
-	import org.apache.royale.core.IStrand;
-	}
 	import org.apache.royale.core.IBead;
 	import org.apache.royale.core.IScrollingViewport;
-	import org.apache.royale.core.UIBase;
 	import org.apache.royale.geom.Size;
 	import org.apache.royale.jewel.supportClasses.Viewport;
 
@@ -86,16 +82,6 @@ package org.apache.royale.jewel.supportClasses.scrollbar
 		{
 			this.contentView.positioner.scrollLeft = value;
 		}
-		
-		/**
-		 * @royaleignorecoercion HTMLElement
-		 * @royaleignorecoercion org.apache.royale.core.UIBase
-		 */
-		override public function set strand(value:IStrand):void
-		{
-			super.strand = value;
-			updateScroll();
-		}
 
 		private var _scroll:Boolean = true;
 		/**
@@ -117,23 +103,26 @@ package org.apache.royale.jewel.supportClasses.scrollbar
 			if(value != _scroll)
 			{
 				_scroll = value;
-				updateScroll();
+				if(contentArea)
+					setScrollStyle();
 			}
 		}
 
 		/**
-		 *  adds or remove the scroll
+		 * Subclasses override this method to change scrolling behavior
 		 * 
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
 		 */
-		public function updateScroll():void
+		override protected function setScrollStyle():void
 		{
+			super.setScrollStyle();
+
 			_scroll ?
-				styledContentArea.addClass("scroll") :
-				styledContentArea.removeClass("scroll");
+				contentArea.positioner.classList.add("scroll") :
+				contentArea.positioner.classList.remove("scroll");
 		}
 		
 		/**
@@ -402,21 +391,8 @@ package org.apache.royale.jewel.supportClasses.scrollbar
 			if(value != _scroll)
 			{
 				_scroll = value;
-				updateScroll();
+				// implement setScrollStyle() in SWF
 			}
 		}
-
-		/**
-		 * adds or remove the scroll
-		 * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		public function updateScroll():void
-		{
-			// todo 
-		}
 	}
 }