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 <[email protected]>
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 
-               }
        }
 }

Reply via email to