You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by yi...@apache.org on 2016/10/10 08:01:36 UTC

[1/2] git commit: [flex-asjs] [refs/heads/refactor-sprite] - More refactoring - image view commonalities moved to core.

Repository: flex-asjs
Updated Branches:
  refs/heads/refactor-sprite dd28a9648 -> f469e1896


More refactoring - image view commonalities moved to core.


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

Branch: refs/heads/refactor-sprite
Commit: c15d36ca0f8fab36c464e6cdb7426d7b7819b769
Parents: dd28a96
Author: yishayw <yi...@hotmail.com>
Authored: Thu Oct 6 17:24:37 2016 +0300
Committer: yishayw <yi...@hotmail.com>
Committed: Thu Oct 6 17:24:37 2016 +0300

----------------------------------------------------------------------
 .../projects/Core/src/main/flex/CoreClasses.as  |   1 +
 .../flex/org/apache/flex/core/ImageViewBase.as  | 241 +++++++++++++++++++
 .../src/main/config/compile-as-config.xml       |   5 +
 .../Graphics/src/main/flex/GraphicsClasses.as   |   1 +
 .../flex/org/apache/flex/svg/beads/ImageView.as |   4 +-
 .../Graphics/src/main/resources/defaults.css    |   1 -
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   1 +
 .../org/apache/flex/html/beads/ImageView.as     | 200 +--------------
 .../HTML/src/main/resources/defaults.css        |   4 +-
 9 files changed, 256 insertions(+), 202 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Core/src/main/flex/CoreClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/CoreClasses.as b/frameworks/projects/Core/src/main/flex/CoreClasses.as
index e2b4197..76ee014 100644
--- a/frameworks/projects/Core/src/main/flex/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/flex/CoreClasses.as
@@ -104,6 +104,7 @@ internal class CoreClasses
     import org.apache.flex.core.DataBindingBase; DataBindingBase;
 	import org.apache.flex.core.UIBase; UIBase;
 	import org.apache.flex.core.ImageBase; ImageBase;
+	import org.apache.flex.core.ImageViewBase; ImageViewBase;
 	COMPILE::SWF
 	{
 	    import org.apache.flex.core.UIButtonBase; UIButtonBase;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
new file mode 100644
index 0000000..8973abe
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
@@ -0,0 +1,241 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.core
+{
+    COMPILE::SWF
+    {
+        import flash.display.Bitmap;
+        import flash.display.Loader;
+        import flash.display.LoaderInfo;
+        import flash.events.IOErrorEvent;
+        import flash.net.URLRequest;            
+    }
+    COMPILE::JS
+    {
+        import goog.events;
+        import org.apache.flex.utils.URLUtils;
+    }
+	
+	import org.apache.flex.core.BeadViewBase;
+	import org.apache.flex.core.IImageModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+    import org.apache.flex.core.IImageView;
+	
+	/**
+	 *  The ImageView class creates the visual elements of the org.apache.flex.html.Image component.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ImageViewBase extends BeadViewBase implements IImageView
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ImageViewBase()
+		{
+		}
+		
+        COMPILE::SWF
+		protected var bitmap:Bitmap;
+        COMPILE::SWF
+		private var _loader:Loader;
+		
+		protected var _model:IImageModel;
+		
+		COMPILE::SWF
+		public function get loader():Loader
+		{
+			return _loader;
+		}
+
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set strand(value:IStrand):void
+		{
+			super.strand = value;
+			
+            COMPILE::SWF
+            {
+                IEventDispatcher(_strand).addEventListener("widthChanged",handleSizeChange);
+                IEventDispatcher(_strand).addEventListener("heightChanged",handleSizeChange);                    
+            }
+			
+            _model = value.getBeadByType(IImageModel) as IImageModel;
+            _model.addEventListener("urlChanged",handleUrlChange);
+			handleUrlChange(null);
+		}
+		
+		/**
+		 * @private
+         * @flexjsignorecoercion HTMLImageELement
+		 */
+		protected function handleUrlChange(event:Event):void
+		{
+            COMPILE::SWF
+            {
+                if (_model.url) {
+                    setupLoader();
+                    loader.load(new URLRequest(_model.url));
+                }                    
+            }
+            COMPILE::JS
+            {
+				if (_model.url) {
+                    setupLoader();
+	                (host.element as HTMLImageElement).src = _model.url;
+				}
+            }
+		}
+
+        COMPILE::SWF
+        public function setupLoader():void
+        {
+            _loader = new Loader();
+            loader.contentLoaderInfo.addEventListener("complete",onComplete);
+            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
+                trace(e);
+                e.preventDefault();
+            });
+        }
+
+        COMPILE::JS
+		public function setupLoader():void
+        {
+            var host:IUIBase = _strand as IUIBase;
+            (host.element as HTMLImageElement).addEventListener('load',
+                loadHandler, false);
+            host.addEventListener('sizeChanged',
+                sizeChangedHandler);
+        }
+		
+		/**
+		 * @private
+		 */
+        COMPILE::SWF
+		private function onComplete(event:Object):void
+		{
+            var host:UIBase = UIBase(_strand);
+			if (bitmap) {
+				host.$sprite.removeChild(bitmap);
+			}
+			
+			bitmap = Bitmap(LoaderInfo(event.target).content);
+			
+			host.$sprite.addChild(bitmap);
+			
+            if (host.isWidthSizedToContent())
+            {
+                host.dispatchEvent(new Event("widthChanged"));
+                if (host.parent is IEventDispatcher)
+                    IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
+            }
+            else
+                bitmap.width = host.width;
+                
+            if (host.isHeightSizedToContent())
+            {
+                host.dispatchEvent(new Event("heightChanged"));
+                if (host.parent is IEventDispatcher)
+                    IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
+            }
+            else
+                bitmap.height = host.height;
+                
+		}
+		
+		/**
+		 * @private
+		 */
+        COMPILE::SWF
+		private function handleSizeChange(event:Object):void
+		{
+            var host:UIBase = UIBase(_strand);
+            if (bitmap) {
+                if (!isNaN(host.explicitWidth) || !isNaN(host.percentWidth))
+	    			bitmap.width = UIBase(_strand).width;
+                if (!isNaN(host.explicitHeight) || !isNaN(host.percentHeight))
+    				bitmap.height = UIBase(_strand).height;
+			}
+		}
+        
+        COMPILE::JS
+        private function loadHandler(event:Object):void
+        {
+            var host:UIBase = UIBase(_strand);
+            IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
+        }
+        
+        /**
+         * @flexjsignorecoercion HTMLElement
+         */
+        COMPILE::JS
+        private function sizeChangedHandler(event:Object):void
+        {
+            var host:UIBase = _strand as UIBase;
+            var s:Object = host.positioner.style;
+            var l:Number = NaN;
+            var ls:String = s.left;
+            if (typeof(ls) === 'string' && ls.length > 0)
+                l = parseFloat(ls.substring(0, ls.length - 2));
+            var r:Number = NaN;
+            var rs:String = s.right;
+            if (typeof(rs) === 'string' && rs.length > 0)
+                r = parseFloat(rs.substring(0, rs.length - 2));
+            if (!isNaN(l) &&
+                !isNaN(r)) {
+                // if just using size constraints and image will not shrink or grow
+                var computedWidth:Number = (host.positioner.offsetParent as HTMLElement).offsetWidth -
+                    l - r;
+                s.width = computedWidth.toString() + 'px';
+            }
+            var t:Number = NaN;
+            var ts:String = s.top;
+            if (typeof(ts) === 'string' && ts.length > 0)
+                t = parseFloat(ts.substring(0, ts.length - 2));
+            var b:Number = NaN;
+            var bs:String = s.right;
+            if (typeof(bs) === 'string' && bs.length > 0)
+                b = parseFloat(bs.substring(0, bs.length - 2));
+            if (!isNaN(t) &&
+                !isNaN(b)) {
+                // if just using size constraints and image will not shrink or grow
+                var computedHeight:Number = (host.positioner.offsetParent as HTMLElement).offsetHeight -
+                    t - b;
+                s.height = computedHeight.toString() + 'px';
+            }
+        }
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Graphics/src/main/config/compile-as-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/config/compile-as-config.xml b/frameworks/projects/Graphics/src/main/config/compile-as-config.xml
index 5f63b82..75adafe 100644
--- a/frameworks/projects/Graphics/src/main/config/compile-as-config.xml
+++ b/frameworks/projects/Graphics/src/main/config/compile-as-config.xml
@@ -63,6 +63,11 @@
         <warn-no-constructor>false</warn-no-constructor>
     </compiler>
     
+    <include-file>
+        <name>defaults.css</name>
+        <path>../resources/defaults.css</path>
+    </include-file>
+    
     <include-classes>
         <class>GraphicsClasses</class>
     </include-classes>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
index 0ab84c2..b93e577 100644
--- a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
+++ b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
@@ -50,6 +50,7 @@ internal class GraphicsClasses
 	import org.apache.flex.graphics.PathBuilder; PathBuilder;
 	import org.apache.flex.graphics.QuadraticCurve; QuadraticCurve;
 	import org.apache.flex.svg.DOMWrapper; DOMWrapper;
+	import org.apache.flex.svg.beads.ImageView; ImageView;
 	
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/beads/ImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/beads/ImageView.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/beads/ImageView.as
index bc82691..0f40093 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/beads/ImageView.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/beads/ImageView.as
@@ -19,7 +19,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.svg.beads
 {
-	import org.apache.flex.html.beads.ImageView;
+	import org.apache.flex.core.ImageViewBase;
 	
 	/**
 	 *  The ImageView class creates the visual elements of the org.apache.flex.svg.Image component.
@@ -29,7 +29,7 @@ package org.apache.flex.svg.beads
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ImageView extends org.apache.flex.html.beads.ImageView
+	public class ImageView extends ImageViewBase
 	{
 		/**
 		 *  constructor.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/Graphics/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/resources/defaults.css b/frameworks/projects/Graphics/src/main/resources/defaults.css
index c693333..ca30ffa 100644
--- a/frameworks/projects/Graphics/src/main/resources/defaults.css
+++ b/frameworks/projects/Graphics/src/main/resources/defaults.css
@@ -26,7 +26,6 @@ svg|Image
 	vertical-align: top;
 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ImageModel");
 	IBeadView:  ClassReference("org.apache.flex.svg.beads.ImageView");
-	IBinaryImageLoader: ClassReference("org.apache.flex.html.beads.BinaryImageLoader");
 }
 
 svg|BinaryImage

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index ee385ef..d4cb4d2 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -56,6 +56,7 @@ internal class HTMLClasses
     	import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
 		import org.apache.flex.html.beads.ImageView; ImageView;
 		import org.apache.flex.html.beads.BinaryImageLoader; BinaryImageLoader;
+		import org.apache.flex.html.beads.models.BinaryImageModel; BinaryImageModel;
 	}
 	import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
 	import org.apache.flex.html.beads.ListView; ListView;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ImageView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ImageView.as
index 747ada1..8c20686 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ImageView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ImageView.as
@@ -18,28 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
-    COMPILE::SWF
-    {
-        import flash.display.Bitmap;
-        import flash.display.Loader;
-        import flash.display.LoaderInfo;
-        import flash.events.IOErrorEvent;
-        import flash.net.URLRequest;            
-    }
-    COMPILE::JS
-    {
-        import goog.events;
-        import org.apache.flex.utils.URLUtils;
-    }
-	
-	import org.apache.flex.core.BeadViewBase;
-	import org.apache.flex.core.IImageModel;
-	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.IEventDispatcher;
-    import org.apache.flex.core.IImageView;
+	import org.apache.flex.core.ImageViewBase;
 	
 	/**
 	 *  The ImageView class creates the visual elements of the org.apache.flex.html.Image component.
@@ -49,7 +28,7 @@ package org.apache.flex.html.beads
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ImageView extends BeadViewBase implements IImageView
+	public class ImageView extends ImageViewBase
 	{
 		/**
 		 *  constructor.
@@ -63,180 +42,5 @@ package org.apache.flex.html.beads
 		{
 		}
 		
-        COMPILE::SWF
-		protected var bitmap:Bitmap;
-        COMPILE::SWF
-		private var _loader:Loader;
-		
-		protected var _model:IImageModel;
-		
-		COMPILE::SWF
-		public function get loader():Loader
-		{
-			return _loader;
-		}
-
-		/**
-		 *  @copy org.apache.flex.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set strand(value:IStrand):void
-		{
-			super.strand = value;
-			
-            COMPILE::SWF
-            {
-                IEventDispatcher(_strand).addEventListener("widthChanged",handleSizeChange);
-                IEventDispatcher(_strand).addEventListener("heightChanged",handleSizeChange);                    
-            }
-			
-            _model = value.getBeadByType(IImageModel) as IImageModel;
-            _model.addEventListener("urlChanged",handleUrlChange);
-			handleUrlChange(null);
-		}
-		
-		/**
-		 * @private
-         * @flexjsignorecoercion HTMLImageELement
-		 */
-		protected function handleUrlChange(event:Event):void
-		{
-            COMPILE::SWF
-            {
-                if (_model.url) {
-                    setupLoader();
-                    loader.load(new URLRequest(_model.url));
-                }                    
-            }
-            COMPILE::JS
-            {
-				if (_model.url) {
-                    setupLoader();
-	                (host.element as HTMLImageElement).src = _model.url;
-				}
-            }
-		}
-
-        COMPILE::SWF
-        public function setupLoader():void
-        {
-            _loader = new Loader();
-            loader.contentLoaderInfo.addEventListener("complete",onComplete);
-            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
-                trace(e);
-                e.preventDefault();
-            });
-        }
-
-        COMPILE::JS
-		public function setupLoader():void
-        {
-            var host:IUIBase = _strand as IUIBase;
-            (host.element as HTMLImageElement).addEventListener('load',
-                loadHandler, false);
-            host.addEventListener('sizeChanged',
-                sizeChangedHandler);
-        }
-		
-		/**
-		 * @private
-		 */
-        COMPILE::SWF
-		private function onComplete(event:Object):void
-		{
-            var host:UIBase = UIBase(_strand);
-			if (bitmap) {
-				host.$sprite.removeChild(bitmap);
-			}
-			
-			bitmap = Bitmap(LoaderInfo(event.target).content);
-			
-			host.$sprite.addChild(bitmap);
-			
-            if (host.isWidthSizedToContent())
-            {
-                host.dispatchEvent(new Event("widthChanged"));
-                if (host.parent is IEventDispatcher)
-                    IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
-            }
-            else
-                bitmap.width = host.width;
-                
-            if (host.isHeightSizedToContent())
-            {
-                host.dispatchEvent(new Event("heightChanged"));
-                if (host.parent is IEventDispatcher)
-                    IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
-            }
-            else
-                bitmap.height = host.height;
-                
-		}
-		
-		/**
-		 * @private
-		 */
-        COMPILE::SWF
-		private function handleSizeChange(event:Object):void
-		{
-            var host:UIBase = UIBase(_strand);
-            if (bitmap) {
-                if (!isNaN(host.explicitWidth) || !isNaN(host.percentWidth))
-	    			bitmap.width = UIBase(_strand).width;
-                if (!isNaN(host.explicitHeight) || !isNaN(host.percentHeight))
-    				bitmap.height = UIBase(_strand).height;
-			}
-		}
-        
-        COMPILE::JS
-        private function loadHandler(event:Object):void
-        {
-            var host:UIBase = UIBase(_strand);
-            IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
-        }
-        
-        /**
-         * @flexjsignorecoercion HTMLElement
-         */
-        COMPILE::JS
-        private function sizeChangedHandler(event:Object):void
-        {
-            var host:UIBase = _strand as UIBase;
-            var s:Object = host.positioner.style;
-            var l:Number = NaN;
-            var ls:String = s.left;
-            if (typeof(ls) === 'string' && ls.length > 0)
-                l = parseFloat(ls.substring(0, ls.length - 2));
-            var r:Number = NaN;
-            var rs:String = s.right;
-            if (typeof(rs) === 'string' && rs.length > 0)
-                r = parseFloat(rs.substring(0, rs.length - 2));
-            if (!isNaN(l) &&
-                !isNaN(r)) {
-                // if just using size constraints and image will not shrink or grow
-                var computedWidth:Number = (host.positioner.offsetParent as HTMLElement).offsetWidth -
-                    l - r;
-                s.width = computedWidth.toString() + 'px';
-            }
-            var t:Number = NaN;
-            var ts:String = s.top;
-            if (typeof(ts) === 'string' && ts.length > 0)
-                t = parseFloat(ts.substring(0, ts.length - 2));
-            var b:Number = NaN;
-            var bs:String = s.right;
-            if (typeof(bs) === 'string' && bs.length > 0)
-                b = parseFloat(bs.substring(0, bs.length - 2));
-            if (!isNaN(t) &&
-                !isNaN(b)) {
-                // if just using size constraints and image will not shrink or grow
-                var computedHeight:Number = (host.positioner.offsetParent as HTMLElement).offsetHeight -
-                    t - b;
-                s.height = computedHeight.toString() + 'px';
-            }
-        }
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d36ca/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index 81d7922..c7e0ba2 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -185,10 +185,12 @@ Image
 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ImageModel");
 	IBeadView:  ClassReference("org.apache.flex.html.beads.ImageView");
 }
+
 BinaryImage
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.BinaryImageModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.BinaryImageView");
+    IBeadView:  ClassReference("org.apache.flex.html.beads.ImageView");
+	IBinaryImageLoader:  ClassReference("org.apache.flex.html.beads.BinaryImageLoader");
 }
 
 ImageAndTextButton


[2/2] git commit: [flex-asjs] [refs/heads/refactor-sprite] - Binary image working on SVG.

Posted by yi...@apache.org.
Binary image working on SVG.


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

Branch: refs/heads/refactor-sprite
Commit: f469e1896b4c5aa686a968bcdca9fac510bf81ba
Parents: c15d36c
Author: yishayw <yi...@hotmail.com>
Authored: Mon Oct 10 11:01:27 2016 +0300
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Oct 10 11:01:27 2016 +0300

----------------------------------------------------------------------
 .../flex/org/apache/flex/core/IBinaryImage.as   |  6 +++-
 .../main/flex/org/apache/flex/core/IImage.as    |  2 ++
 .../flex/org/apache/flex/core/IImageView.as     |  1 -
 .../main/flex/org/apache/flex/core/ImageBase.as |  7 ++++
 .../flex/org/apache/flex/core/ImageViewBase.as  | 11 +++++-
 .../projects/Graphics/.actionScriptProperties   |  2 --
 .../Graphics/src/main/flex/GraphicsClasses.as   |  2 +-
 .../flex/org/apache/flex/svg/BinaryImage.as     |  6 ++++
 .../src/main/flex/org/apache/flex/svg/Image.as  | 11 ++++++
 .../projects/HTML/src/main/flex/HTMLClasses.as  |  6 ++--
 .../flex/org/apache/flex/html/BinaryImage.as    |  5 +++
 .../src/main/flex/org/apache/flex/html/Image.as |  9 ++++-
 .../apache/flex/html/beads/BinaryImageLoader.as | 37 +++++++-------------
 13 files changed, 70 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
index a93f9db..45640be 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
@@ -1,4 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
 //
 //  Licensed to the Apache Software Foundation (ASF) under one or more
 //  contributor license agreements.  See the NOTICE file distributed with
@@ -42,5 +42,9 @@ package org.apache.flex.core
          */
         function get binary():BinaryData;
         function set binary(value:BinaryData):void;
+		
+		COMPILE::JS
+		function applyBinaryDataAsString(binaryDataAsString:String):void;
+		
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
index 19f8bbc..9f93239 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
@@ -41,5 +41,7 @@ package org.apache.flex.core
          */
         function get url():String;
         function set url(value:String):void;
+		COMPILE::JS
+		function get imageElement():Element;
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
index 5993faf..bf0c123 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
@@ -48,7 +48,6 @@ package org.apache.flex.core
 		COMPILE::SWF
 		function get loader():Loader
 			
-		COMPILE::SWF
 		function setupLoader():void
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
index 5409a7b..674c23d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
@@ -66,6 +66,13 @@ package org.apache.flex.core
 		{
 			(model as IImageModel).url = value;
 		}
+		
+		COMPILE::JS
+		public function get imageElement():Element
+		{
+			return null;
+			// override this
+		}
 
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
index 8973abe..2bf4570 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
@@ -131,11 +131,20 @@ package org.apache.flex.core
             });
         }
 
+		/**
+		*  @flexjsignorecoercion org.apache.flex.core.IImage
+		*/
+		COMPILE::JS
+		protected function get imageElement():Element
+		{
+			return (_strand as IImage).imageElement;
+		}
+			
         COMPILE::JS
 		public function setupLoader():void
         {
             var host:IUIBase = _strand as IUIBase;
-            (host.element as HTMLImageElement).addEventListener('load',
+            imageElement.addEventListener('load',
                 loadHandler, false);
             host.addEventListener('sizeChanged',
                 sizeChangedHandler);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/.actionScriptProperties
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/.actionScriptProperties b/frameworks/projects/Graphics/.actionScriptProperties
index 5ac78a8..49ec6c7 100644
--- a/frameworks/projects/Graphics/.actionScriptProperties
+++ b/frameworks/projects/Graphics/.actionScriptProperties
@@ -5,10 +5,8 @@
     <libraryPath defaultLinkType="0">
       <libraryPathEntry kind="4" path="">
         <excludedEntries>
-          <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/Core.swc" useDefaultLinkType="false"/>
         </excludedEntries>
       </libraryPathEntry>
-      <libraryPathEntry kind="3" linkType="1" path="/Core/target/Core.swc" useDefaultLinkType="false"/>
     </libraryPath>
     <sourceAttachmentPath/>
   </compiler>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
index b93e577..83ae71f 100644
--- a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
+++ b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
@@ -35,6 +35,7 @@ internal class GraphicsClasses
 	import org.apache.flex.svg.Circle; Circle;
 	import org.apache.flex.svg.Image; Image;
 	import org.apache.flex.svg.BinaryImage; BinaryImage;
+	import org.apache.flex.svg.beads.ImageView; ImageView;
 	import org.apache.flex.svg.Path; Path;
 	import org.apache.flex.graphics.SolidColor; SolidColor;
 	import org.apache.flex.graphics.SolidColorStroke; SolidColorStroke;
@@ -50,7 +51,6 @@ internal class GraphicsClasses
 	import org.apache.flex.graphics.PathBuilder; PathBuilder;
 	import org.apache.flex.graphics.QuadraticCurve; QuadraticCurve;
 	import org.apache.flex.svg.DOMWrapper; DOMWrapper;
-	import org.apache.flex.svg.beads.ImageView; ImageView;
 	
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
index c03793c..6413c7c 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
@@ -83,5 +83,11 @@ package org.apache.flex.svg
 			(model as IBinaryImageModel).binary = value;
 		}
         
+		COMPILE::JS
+		public function applyBinaryDataAsString(binaryDataAsString:String):void
+		{
+			(_image as SVGImageElement).setAttributeNS('http://www.w3.org/1999/xlink','href', binaryDataAsString);
+		}
+
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
index 967e4f9..e84fd94 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
@@ -55,15 +55,26 @@ package org.apache.flex.svg
 		COMPILE::JS
 		protected var _image:WrappedHTMLElement;
 		
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 */
 		COMPILE::JS
 		protected function addImageElement():void
 		{
 			if (_image == null) {
 				_image = document.createElementNS('http://www.w3.org/2000/svg', 'image') as WrappedHTMLElement;
+				_image.setAttribute("width", "100%");
+				_image.setAttribute("height", "100%");
 				_image.flexjs_wrapper = this;
 				element.appendChild(_image);
 			}
 		}
+		
+		COMPILE::JS
+		override public function get imageElement():Element
+		{
+			return _image;
+		}
 
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index d4cb4d2..729e0e1 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -54,10 +54,10 @@ internal class HTMLClasses
 		import org.apache.flex.html.beads.DropDownListView; DropDownListView;
 		import org.apache.flex.html.beads.CloseButtonView; CloseButtonView;
     	import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
-		import org.apache.flex.html.beads.ImageView; ImageView;
-		import org.apache.flex.html.beads.BinaryImageLoader; BinaryImageLoader;
-		import org.apache.flex.html.beads.models.BinaryImageModel; BinaryImageModel;
 	}
+	import org.apache.flex.html.beads.ImageView; ImageView;
+	import org.apache.flex.html.beads.BinaryImageLoader; BinaryImageLoader;
+	import org.apache.flex.html.beads.models.BinaryImageModel; BinaryImageModel;
 	import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
 	import org.apache.flex.html.beads.ListView; ListView;
 	COMPILE::SWF

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
index af88de7..899ac3f 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
@@ -84,6 +84,11 @@ package org.apache.flex.html
 			(model as IBinaryImageModel).binary = value;
 		}
         
+		COMPILE::JS
+		public function applyBinaryDataAsString(binaryDataAsString:String):void
+		{
+			(element as HTMLImageElement).src = binaryDataAsString;
+		}
 
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
index 20bc6af..0b83b62 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
@@ -55,7 +55,14 @@ package org.apache.flex.html
             element.flexjs_wrapper = this;
          
             return element;
-        }        
+        }
+		
+		COMPILE::JS
+		override public function get imageElement():Element
+		{
+			return element;
+		}
+
 
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
index f912b09..a4adf24 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
@@ -18,32 +18,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
-    COMPILE::SWF
-    {
-        import flash.display.Bitmap;
-        import flash.display.Loader;
-        import flash.display.LoaderInfo;
-        import flash.events.IOErrorEvent;
-        import flash.net.URLRequest;            
-    }
+	import org.apache.flex.core.IBinaryImageLoader;
+	import org.apache.flex.core.IBinaryImageModel;
+	import org.apache.flex.core.IImageView;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+
     COMPILE::JS
     {
         import goog.events;
         import org.apache.flex.utils.URLUtils;
+		import org.apache.flex.core.IBinaryImage;
     }
 	
-	import org.apache.flex.core.BeadViewBase;
-	import org.apache.flex.core.IBeadView;
-	import org.apache.flex.core.IBinaryImageModel;
-	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.IEventDispatcher;
-    import org.apache.flex.utils.BinaryData;
-    import org.apache.flex.core.IBead;
-    import org.apache.flex.core.IImageView;
-    import org.apache.flex.core.IBinaryImageLoader;
 	
 	/**
 	 *  The ImageView class creates the visual elements of the org.apache.flex.html.Image component.
@@ -91,16 +78,16 @@ package org.apache.flex.html.beads
 
 		/**
 		 * @private
-         * @flexjsignorecoercion HTMLImageELement
-         * @flexjsignorecoercion BinaryImageModel
+         * @flexjsignorecoercion Object
+         * @flexjsignorecoercion UIBase
 		 */
         private function handleBinaryChange(event:Event):void
         {
             var m:IBinaryImageModel = model;
+			var imageView:IImageView = _strand.getBeadByType(IImageView) as IImageView;
            COMPILE::SWF
             {
                 if (m.binary) {
-					var imageView:IImageView = _strand.getBeadByType(IImageView) as IImageView;
 					imageView.setupLoader();
 					imageView.loader.loadBytes(m.binary.array);
                 }                    
@@ -108,14 +95,14 @@ package org.apache.flex.html.beads
             COMPILE::JS
             {
                 if (m.binary) {
-                    setupLoader();
+					imageView.setupLoader();
                     if(_objectURL)
                         URLUtils.revokeObjectURL(_objectURL);
                     var blob:Blob = new Blob([m.binary.array]);
 // I don't think we need to specify the type.
 //                    var blob = new Blob([response], {type: "image/png"});
                     _objectURL = URLUtils.createObjectURL(blob);
-                    (host.element as HTMLImageElement).src = _objectURL;
+                    (_strand as IBinaryImage).applyBinaryDataAsString(_objectURL);
                 }
             }
         }