Repository: flex-asjs
Updated Branches:
  refs/heads/refactor-sprite 68ceca582 -> e246c2503


Use host as style source, now that display object is no longer the host.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/e246c250
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e246c250
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e246c250

Branch: refs/heads/refactor-sprite
Commit: e246c2503d7d32f934410270df35da9a3b401044
Parents: 68ceca5
Author: yishayw <[email protected]>
Authored: Mon Aug 1 13:25:20 2016 +0300
Committer: yishayw <[email protected]>
Committed: Mon Aug 1 13:25:20 2016 +0300

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/core/CSSShape.as  |   2 +-
 .../main/flex/org/apache/flex/core/CSSSprite.as | 142 ++++++++++++++++++-
 .../main/flex/org/apache/flex/core/UIBase.as    |   2 +-
 .../org/apache/flex/utils/CSSBorderUtils.as     |   2 +-
 .../org/apache/flex/html/beads/CSSButtonView.as |   2 +-
 .../apache/flex/html/beads/CSSTextButtonView.as |  33 +++--
 .../flex/html/beads/SingleLineBorderBead.as     |   4 +-
 .../flex/html/beads/SolidBackgroundBead.as      |  18 +--
 .../apache/flex/html/beads/TextFieldViewBase.as |   2 +-
 9 files changed, 173 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSShape.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSShape.as 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSShape.as
index 41e690b..c96ba84 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSShape.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSShape.as
@@ -254,7 +254,7 @@ package org.apache.flex.core
          */
         public function draw(w:Number, h:Number):void
         {
-            CSSBorderUtils.draw(_shape.graphics, w, h, _shape, state, true);   
         
+            CSSBorderUtils.draw(_shape.graphics, w, h, this, state, true);     
       
         }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSSprite.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSSprite.as 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSSprite.as
index 9ca030e..c9e0742 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSSprite.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/CSSSprite.as
@@ -18,10 +18,12 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
+    import flash.display.DisplayObject;
     import flash.display.Graphics;
     
     import org.apache.flex.core.IChild;
     import org.apache.flex.events.Event;
+    import org.apache.flex.events.IEventDispatcher;
     import org.apache.flex.utils.CSSBorderUtils;
     
     /**
@@ -35,7 +37,7 @@ package org.apache.flex.core
      *  @productversion FlexJS 0.0
      */
     COMPILE::SWF
-       public class CSSSprite extends HTMLElementWrapper implements 
IStyleableObject, IChild
+       public class CSSSprite extends HTMLElementWrapper implements 
IStyleableObject, IChild, IParentIUIBase
        {
         /**
          *  Constructor.
@@ -156,7 +158,141 @@ package org.apache.flex.core
          */
         public function draw(w:Number, h:Number):void
         {
-            CSSBorderUtils.draw($sprite.graphics, w, h, $sprite, state, true); 
           
+            CSSBorderUtils.draw($sprite.graphics, w, h,this, state, true);     
       
         }
-       }
+               
+               /**
+                *  @copy org.apache.flex.core.IParent#addElement()
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function addElement(c:Object, dispatchEvent:Boolean = 
true):void
+               {
+                       if(_elements == null)
+                               _elements = [];
+                       _elements[_elements.length] = c;
+                       $sprite.addChild(c.$displayObject);
+                       c.parent = this;
+                       if (c is IUIBase)
+                       {
+                               IUIBase(c).addedToParent();
+                       }
+                       
+               }
+               
+               /**
+                *  @copy org.apache.flex.core.IParent#addElementAt()
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function addElementAt(c:Object, index:int, 
dispatchEvent:Boolean = true):void
+               {
+                       if(_elements == null)
+                               _elements = [];
+                       _elements.splice(index,0,c);
+                       
+                       $sprite.addChildAt(c.$displayObject,index);
+                       c.parent = this;
+                       if (c is IUIBase)
+                       {
+                               IUIBase(c).addedToParent();
+                       }
+               }
+               
+               /**
+                *  @copy org.apache.flex.core.IParent#getElementAt()
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function getElementAt(index:int):Object
+               {
+                       if(_elements == null)
+                               return null;
+                       return _elements[index];
+               }        
+               
+               private var _elements:Array;
+               /**
+                *  @copy org.apache.flex.core.IParent#getElementIndex()
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function getElementIndex(c:Object):int
+               {
+                       if(_elements == null)
+                               return -1;
+                       return _elements.indexOf(c);
+               }
+               
+               /**
+                *  @copy org.apache.flex.core.IParent#removeElement()
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function removeElement(c:Object, dispatchEvent:Boolean = 
true):void
+               {
+                       if(_elements)
+                       {
+                               var idx:int = _elements.indexOf(c);
+                               if(idx>=0)
+                                       _elements.splice(idx,1);
+                               c.parent = null;
+                       }
+                       $sprite.removeChild(c.$displayObject);
+               }
+               
+               /**
+                *  @copy org.apache.flex.core.IParent#numElements
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function get numElements():int
+               {
+                       return _elements ? _elements.length : 0;
+               }
+               
+               public function getBeadByType(classOrInterface:Class):IBead
+               {
+                       // TODO Auto Generated method stub
+                       return null;
+               }
+               
+               public function removeBead(bead:IBead):IBead
+               {
+                       // TODO Auto Generated method stub
+                       return null;
+               }
+               
+               public function addedToParent():void
+               {
+                       // TODO Auto Generated method stub
+                       
+               }
+               
+               public function get topMostEventDispatcher():IEventDispatcher
+               {
+                       // TODO Auto Generated method stub
+                       return null;
+               }
+               
+
+       }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
index 3516b2b..7a583a1 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
@@ -1076,7 +1076,7 @@ package org.apache.flex.core
                 if(_elements == null)
                     _elements = [];
                 _elements[_elements.length] = c;
-                $sprite.addChild(c.$sprite);
+                $sprite.addChild(c.$displayObject);
                 c.parent = this;
                 if (c is IUIBase)
                 {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSBorderUtils.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSBorderUtils.as
 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSBorderUtils.as
index ef32e1a..25c9d08 100644
--- 
a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSBorderUtils.as
+++ 
b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/CSSBorderUtils.as
@@ -64,7 +64,7 @@ package org.apache.flex.utils
                 *  @productversion FlexJS 0.0
          */
         public static function draw(g:Graphics, width:Number, height:Number,
-                                    host:DisplayObject, state:String = null, 
+                                    host:Object, state:String = null, 
                                     drawBackground:Boolean = false, 
clear:Boolean = true):void
         {            
             if (clear)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSButtonView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSButtonView.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSButtonView.as
index fcd14cc..7775f03 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSButtonView.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSButtonView.as
@@ -127,7 +127,7 @@ package org.apache.flex.html.beads
                    CSSBorderUtils.draw(sprite.graphics, 
                                        DisplayObject(_strand).width + pl + pr, 
                                        DisplayObject(_strand).height + pt + pb,
-                    _strand as DisplayObject,
+                    _strand,
                     state, true);
                }
                

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSTextButtonView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSTextButtonView.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSTextButtonView.as
index 996296c..75d3023 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSTextButtonView.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/CSSTextButtonView.as
@@ -18,7 +18,6 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
-       import flash.display.DisplayObject;
        import flash.display.Loader;
        import flash.display.Shape;
        import flash.display.SimpleButton;
@@ -28,19 +27,19 @@ package org.apache.flex.html.beads
        import flash.text.TextField;
        import flash.text.TextFieldType;
        
-    import org.apache.flex.core.BeadViewBase;
+       import org.apache.flex.core.BeadViewBase;
        import org.apache.flex.core.CSSTextField;
        import org.apache.flex.core.IBeadView;
        import org.apache.flex.core.IStrand;
        import org.apache.flex.core.ITextModel;
        import org.apache.flex.core.IUIBase;
+       import org.apache.flex.core.UIButtonBase;
        import org.apache.flex.core.ValuesManager;
        import org.apache.flex.events.Event;
        import org.apache.flex.events.IEventDispatcher;
-       import org.apache.flex.html.TextButton;
        import org.apache.flex.utils.CSSUtils;
-    import org.apache.flex.utils.SolidBorderUtil;
-    import org.apache.flex.utils.StringTrimmer;
+       import org.apache.flex.utils.SolidBorderUtil;
+       import org.apache.flex.utils.StringTrimmer;
 
     /**
      *  The CSSTextButtonView class is the default view for
@@ -87,6 +86,10 @@ package org.apache.flex.html.beads
                        overSprite.addChild(overTextField.$textField);
                }
                
+               private function get host():IUIBase
+               {
+                       return _strand as IUIBase;
+               }
                private var textModel:ITextModel;
                
                private var shape:Shape;
@@ -118,10 +121,10 @@ package org.apache.flex.html.beads
             upTextField.parentHandlesPadding = true;
             downTextField.parentHandlesPadding = true;
             overTextField.parentHandlesPadding = true;
-                       SimpleButton(value).upState = upSprite;
-                       SimpleButton(value).downState = downSprite;
-                       SimpleButton(value).overState = overSprite;
-                       SimpleButton(value).hitTestState = shape;
+                       (value as UIButtonBase).$button.upState = upSprite;
+                       (value as UIButtonBase).$button.downState = downSprite;
+                       (value as UIButtonBase).$button.overState = overSprite;
+                       (value as UIButtonBase).$button.hitTestState = shape;
                        if (textModel.text !== null)
                                text = textModel.text;
                        if (textModel.html !== null)
@@ -202,10 +205,10 @@ package org.apache.flex.html.beads
                        var paddingRight:Object = 
ValuesManager.valuesImpl.getValue(_strand, "padding-right", state);
                        var paddingTop:Object = 
ValuesManager.valuesImpl.getValue(_strand, "padding-top", state);
                        var paddingBottom:Object = 
ValuesManager.valuesImpl.getValue(_strand, "padding-bottom", state);
-            var pl:Number = CSSUtils.getLeftValue(paddingLeft, padding, 
DisplayObject(_strand).width);
-            var pr:Number = CSSUtils.getRightValue(paddingRight, padding, 
DisplayObject(_strand).width);
-            var pt:Number = CSSUtils.getTopValue(paddingTop, padding, 
DisplayObject(_strand).height);
-            var pb:Number = CSSUtils.getBottomValue(paddingBottom, padding, 
DisplayObject(_strand).height);
+            var pl:Number = CSSUtils.getLeftValue(paddingLeft, padding, 
host.$displayObject.width);
+            var pr:Number = CSSUtils.getRightValue(paddingRight, padding, 
host.$displayObject.width);
+            var pt:Number = CSSUtils.getTopValue(paddingTop, padding, 
host.$displayObject.height);
+            var pb:Number = CSSUtils.getBottomValue(paddingBottom, padding, 
host.$displayObject.height);
             
                        var backgroundColor:Object = 
ValuesManager.valuesImpl.getValue(_strand, "background-color", state);
             var bgColor:uint;
@@ -315,8 +318,8 @@ package org.apache.flex.html.beads
                
                private function updateHitArea():void
                {
-                       var useWidth:uint = 
Math.max(DisplayObject(_strand).width, upTextField.textWidth);
-                       var useHeight:uint = 
Math.max(DisplayObject(_strand).height, upTextField.textHeight);
+                       var useWidth:uint = Math.max(host.$displayObject.width, 
upTextField.textWidth);
+                       var useHeight:uint = 
Math.max(host.$displayObject.height, upTextField.textHeight);
                        
                        shape.graphics.clear();
                        shape.graphics.beginFill(0xCCCCCC);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SingleLineBorderBead.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SingleLineBorderBead.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SingleLineBorderBead.as
index 03bb682..3663b56 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SingleLineBorderBead.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SingleLineBorderBead.as
@@ -75,7 +75,7 @@ package org.apache.flex.html.beads
                private function changeHandler(event:Event):void
                {
             var host:UIBase = UIBase(_strand);
-            var g:Graphics = host.$sprite.graphics;
+            var g:Graphics = (host.$displayObject as Object).graphics as 
Graphics;
             var w:Number = host.width;
             var h:Number = host.height;
             var state:String;
@@ -85,7 +85,7 @@ package org.apache.flex.html.beads
                        var gd:IGraphicsDrawing = 
_strand.getBeadByType(IGraphicsDrawing) as IGraphicsDrawing;
                        if( this == gd ) g.clear();
             
-            CSSBorderUtils.draw(g, w, h, host.$sprite, state, false, false);
+            CSSBorderUtils.draw(g, w, h, host, state, false, false);
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SolidBackgroundBead.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SolidBackgroundBead.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SolidBackgroundBead.as
index a162669..6dade4d 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SolidBackgroundBead.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/SolidBackgroundBead.as
@@ -18,17 +18,17 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
+    import flash.display.Graphics;
     import flash.display.Sprite;
-       import flash.display.Graphics;
-       
-       import org.apache.flex.core.IBead;
+    
+    import org.apache.flex.core.IBead;
     import org.apache.flex.core.IBeadView;
     import org.apache.flex.core.ILayoutChild;
-       import org.apache.flex.core.IStrand;
-       import org.apache.flex.core.IUIBase;
-       import org.apache.flex.core.ValuesManager;
-       import org.apache.flex.events.Event;
-       import org.apache.flex.events.IEventDispatcher;
+    import org.apache.flex.core.IStrand;
+    import org.apache.flex.core.IUIBase;
+    import org.apache.flex.core.ValuesManager;
+    import org.apache.flex.events.Event;
+    import org.apache.flex.events.IEventDispatcher;
 
     /**
      *  The SolidBackgroundBead class draws a solid filled background.
@@ -177,7 +177,7 @@ package org.apache.flex.html.beads
         
                private function changeHandler(event:Event):void
                {
-            var g:Graphics = Sprite(host).graphics;
+            var g:Graphics = (host.$displayObject as Object).graphics as 
Graphics;
             var w:Number = host.width;
             var h:Number = host.height;
                        

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e246c250/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextFieldViewBase.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextFieldViewBase.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextFieldViewBase.as
index 6ccbd43..ead9d7b 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextFieldViewBase.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextFieldViewBase.as
@@ -95,7 +95,7 @@ package org.apache.flex.html.beads
             IEventDispatcher(_strand).addEventListener("widthChanged", 
widthChangeHandler);
             IEventDispatcher(_strand).addEventListener("heightChanged", 
heightChangeHandler);
             IEventDispatcher(_strand).addEventListener("sizeChanged", 
sizeChangeHandler);
-                       UIBase(value).$sprite.addChild(_textField.$textField);
+                       UIBase(value).addElement(_textField);
                        if (_textModel.text !== null)
                                text = _textModel.text;
                        if (_textModel.html !== null)

Reply via email to