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);
}
}
}