You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ca...@apache.org on 2016/11/02 18:33:19 UTC

[19/50] [abbrv] git commit: [flex-asjs] [refs/heads/feature/mdl] - clean build after merge and fork

clean build after merge and fork


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

Branch: refs/heads/feature/mdl
Commit: fdc2a4c2386494f980d35ba7091a9d7f345ddcb1
Parents: ef2b90a
Author: Alex Harui <ah...@apache.org>
Authored: Mon Oct 31 21:42:38 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Nov 1 08:12:11 2016 -0700

----------------------------------------------------------------------
 frameworks/build.xml                            |   2 +-
 .../Basic/src/main/flex/BasicClasses.as         |   5 +-
 .../flex/org/apache/flex/core/Application.as    |  46 ++--
 .../org/apache/flex/core/FilledRectangle.as     |   2 +-
 .../org/apache/flex/core/HTMLElementWrapper.as  | 265 +++++++++++++++++++
 .../main/flex/org/apache/flex/core/ImageBase.as |  84 ++++++
 .../main/flex/org/apache/flex/core/UIBase.as    |  51 +++-
 .../flex/org/apache/flex/core/UIButtonBase.as   |  17 +-
 .../src/main/flex/org/apache/flex/html/Image.as |   8 +-
 .../org/apache/flex/html/beads/ComboBoxView.as  |   3 +-
 .../org/apache/flex/html/beads/ContainerView.as |  11 +-
 .../apache/flex/html/beads/DropDownListView.as  |   3 +-
 .../org/apache/flex/html/beads/ImageView.as     | 181 +------------
 .../apache/flex/html/beads/SliderThumbView.as   |   2 +-
 .../apache/flex/html/beads/WebBrowserView.as    |   2 +-
 .../flex/html/beads/layouts/HorizontalLayout.as |   3 +-
 .../apache/flex/html/beads/models/ImageModel.as |  12 +-
 .../html/supportClasses/ContainerContentArea.as |   5 +-
 .../flex/html/supportClasses/DataGroup.as       |   5 +-
 .../html/supportClasses/ScrollingViewport.as    |   5 +-
 .../supportClasses/TextFieldItemRenderer.as     |  16 ++
 .../flex/org/apache/flex/svg/BinaryImage.as     |  87 ++++++
 .../org/apache/flex/svg/GraphicContainer.as     |   4 +-
 .../flex/org/apache/flex/svg/GraphicShape.as    |   6 +-
 .../src/main/flex/org/apache/flex/svg/Image.as  | 133 ++++++++++
 .../flex/org/apache/flex/svg/beads/ImageView.as |  87 ++++++
 .../projects/Core/src/main/flex/CoreClasses.as  |   7 +
 .../flex/org/apache/flex/core/IFlexJSElement.as |   4 +-
 .../flex/org/apache/flex/core/ImageViewBase.as  |  23 +-
 .../org/apache/flex/core/WrappedMovieClip.as    |   6 +-
 .../flex/org/apache/flex/core/WrappedShape.as   |   6 +-
 .../org/apache/flex/core/WrappedSimpleButton.as |   6 +-
 .../flex/org/apache/flex/core/WrappedSprite.as  |   6 +-
 .../org/apache/flex/core/WrappedTextField.as    |   6 +-
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   5 +-
 .../flex/org/apache/flex/core/Application.as    |   4 +-
 .../main/flex/org/apache/flex/core/UIBase.as    |   3 +-
 37 files changed, 847 insertions(+), 274 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/build.xml b/frameworks/build.xml
index 65d06f7..ec3b6ff 100644
--- a/frameworks/build.xml
+++ b/frameworks/build.xml
@@ -81,7 +81,6 @@
         <antcall target="Graphics"/>
         <antcall target="Binding"/>
         <antcall target="Collections"/>
-        <antcall target="Basic"/>
         <antcall target="HTML"/>
         <antcall target="Flat"/>
         <antcall target="Charts"/>
@@ -97,6 +96,7 @@
         <antcall target="Reflection"/>
         <antcall target="Storage"/>
         <antcall target="XML"/>
+        <antcall target="Basic"/>
     </target>
     
     <target name="fonts">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/BasicClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/BasicClasses.as b/frameworks/projects/Basic/src/main/flex/BasicClasses.as
index e63e9de..69fb902 100644
--- a/frameworks/projects/Basic/src/main/flex/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/flex/BasicClasses.as
@@ -54,7 +54,7 @@ internal class BasicClasses
 		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.ImageView; org.apache.flex.html.beads.ImageView;
 	}
 	import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
 	import org.apache.flex.html.beads.ListView; ListView;
@@ -194,6 +194,9 @@ internal class BasicClasses
 	import org.apache.flex.svg.Rect; Rect;
 	import org.apache.flex.svg.Ellipse; Ellipse;
 	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; org.apache.flex.svg.beads.ImageView;
 	import org.apache.flex.svg.Path; Path;
 	import org.apache.flex.svg.Text; Text;
 	import org.apache.flex.svg.CompoundGraphic; CompoundGraphic;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/Application.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/Application.as
index 85609cb..81c2855 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/Application.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/Application.as
@@ -21,9 +21,6 @@ package org.apache.flex.core
     import org.apache.flex.events.Event;
     import org.apache.flex.events.IEventDispatcher;
     import org.apache.flex.events.MouseEvent;
-	COMPILE::SWF {
-	    import org.apache.flex.events.utils.MouseEventConverter;
-	}
     import org.apache.flex.utils.MXMLDataInterpreter;
 	import org.apache.flex.utils.Timer;
 
@@ -36,6 +33,7 @@ package org.apache.flex.core
         import flash.events.Event;
         import flash.system.ApplicationDomain;
         import flash.utils.getQualifiedClassName;
+        import org.apache.flex.events.utils.MouseEventConverter;
     }
 
     //--------------------------------------
@@ -416,21 +414,26 @@ package org.apache.flex.core
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.IUIBase
+         *  @flexjsignorecoercion HTMLElement
          */
-        public function addElement(c:Object, dispatchEvent:Boolean = true):void
+        public function addElement(c:IChild, dispatchEvent:Boolean = true):void
         {
             COMPILE::SWF {
                 if (c is IUIBase)
                 {
-                    addChild(IUIBase(c).element as DisplayObject);
+                    if (c is IRenderedObject)
+                        addChild(IRenderedObject(c).$displayObject);
+                    else
+                        addChild(c as DisplayObject);
                     IUIBase(c).addedToParent();
                 }
                 else
                     addChild(c as DisplayObject);
             }
             COMPILE::JS {
-                this.element.appendChild(c.element);
-                c.addedToParent();
+                this.element.appendChild(c.element as HTMLElement);
+                (c as IUIBase).addedToParent();
             }
         }
 
@@ -441,13 +444,17 @@ package org.apache.flex.core
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.IUIBase
          */
-        public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+        public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void
         {
             COMPILE::SWF {
                 if (c is IUIBase)
                 {
-                    addChildAt(IUIBase(c).element as DisplayObject, index);
+                    if (c is IRenderedObject)
+                        addChildAt(IRenderedObject(c).$displayObject, index);
+                    else
+                        addChildAt(c as DisplayObject, index);
                     IUIBase(c).addedToParent();
                 }
                 else
@@ -461,7 +468,7 @@ package org.apache.flex.core
                 {
                     element.insertBefore(c.positioner,
                         children[index]);
-                    c.addedToParent();
+	                (c as IUIBase).addedToParent();
                 }
 
             }
@@ -475,10 +482,10 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function getElementAt(index:int):Object
+        public function getElementAt(index:int):IChild
         {
             COMPILE::SWF {
-                return getChildAt(index);
+                return getChildAt(index) as IChild;
             }
             COMPILE::JS {
                 var children:NodeList = internalChildren();
@@ -494,11 +501,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function getElementIndex(c:Object):int
+        public function getElementIndex(c:IChild):int
         {
             COMPILE::SWF {
-                if (c is IUIBase)
-                    return getChildIndex(IUIBase(c).element as DisplayObject);
+                if (c is IRenderedObject)
+                    return getChildIndex(IRenderedObject(c).$displayObject);
 
                 return getChildIndex(c as DisplayObject);
             }
@@ -521,19 +528,20 @@ package org.apache.flex.core
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion HTMLElement
          */
-        public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+        public function removeElement(c:IChild, dispatchEvent:Boolean = true):void
         {
             COMPILE::SWF {
-                if (c is IUIBase)
+                if (c is IRenderedObject)
                 {
-                    removeChild(IUIBase(c).element as DisplayObject);
+                    removeChild(IRenderedObject(c).$displayObject);
                 }
                 else
                     removeChild(c as DisplayObject);
             }
             COMPILE::JS {
-                element.removeChild(c.element);
+                element.removeChild(c.element as HTMLElement);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/FilledRectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/FilledRectangle.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/FilledRectangle.as
index 962a11d..1068363 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/FilledRectangle.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/FilledRectangle.as
@@ -51,7 +51,7 @@ package org.apache.flex.core
             COMPILE::SWF
             {
                 _shape = new flash.display.Shape();
-                this.addElement(_shape);
+                this.addChild(_shape);
             }
 		}
 		

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
new file mode 100644
index 0000000..57e4ce3
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
@@ -0,0 +1,265 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.Sprite;
+    }
+        
+    COMPILE::JS
+    {
+        import window.Event;
+        import org.apache.flex.events.Event;        
+        import org.apache.flex.events.BrowserEvent;
+        import org.apache.flex.events.ElementEvents;
+        import org.apache.flex.events.EventDispatcher;
+        import goog.events;
+        import goog.events.EventTarget;
+    }
+
+    COMPILE::SWF
+    public class HTMLElementWrapper extends Sprite
+    {
+        /**
+         * "abstract" method so we can override in JS
+         * @param bead The new bead.
+         */
+        public function addBead(bead:IBead):void
+        {            
+        }
+    }
+    
+	COMPILE::JS
+	public class HTMLElementWrapper extends EventDispatcher implements IStrand
+	{
+
+		//--------------------------------------
+		//   Static Function
+		//--------------------------------------
+
+        /**
+         * @param listener The listener object to call {goog.events.Listener}.
+         * @param eventObject The event object to pass to the listener.
+         * @return Result of listener.
+         */
+		static public function fireListenerOverride(listener:Object, eventObject:BrowserEvent):Boolean
+		{
+			var e:BrowserEvent = new BrowserEvent();
+			e.wrappedEvent = eventObject;
+			return HTMLElementWrapper.googFireListener(listener, e);
+		}
+
+        /**
+         * Static initializer
+         */
+		static public function installOverride():Boolean
+		{
+			HTMLElementWrapper.googFireListener = goog.events.fireListener;
+			goog.events.fireListener = HTMLElementWrapper.fireListenerOverride;
+			return true;
+		}
+
+        //--------------------------------------
+        //   Static Property
+        //--------------------------------------
+        
+        static public var googFireListener:Function;
+        
+        /**
+         * The properties that triggers the static initializer.
+         * Note, in JS, this property has to be declared
+         * after the installOverride.
+         */
+        static public var installedOverride:Boolean = installOverride();
+        
+		//--------------------------------------
+		//   Property
+		//--------------------------------------
+
+		private var _element:WrappedHTMLElement;
+        
+        public function get element():WrappedHTMLElement
+        {
+            return _element;
+        }
+        
+        public function set element(value:WrappedHTMLElement):void
+        {
+            _element = value;
+        }
+        
+        /**
+         * allow access from overrides
+         */
+		protected var _model:IBeadModel;
+        
+        /**
+         * @flexjsignorecoercion Class 
+         * @flexjsignorecoercion org.apache.flex.core.IBeadModel 
+         */
+        public function get model():Object
+        {
+            if (_model == null) 
+            {
+                // addbead will set _model
+                var m:Class = org.apache.flex.core.ValuesManager.valuesImpl.
+                        getValue(this, 'iBeadModel') as Class;
+                var b:IBeadModel = new m() as IBeadModel;
+                addBead(b);
+            }
+            return _model;
+        }
+        
+        public function set model(value:Object):void
+        {
+            if (_model != value)
+            {
+                addBead(value as IBead);
+                dispatchEvent(new org.apache.flex.events.Event("modelChanged"));
+            }
+        }
+
+		protected var _beads:Vector.<IBead>;
+        
+		//--------------------------------------
+		//   Function
+		//--------------------------------------
+
+        /**
+         * @param bead The new bead.
+         */
+		public function addBead(bead:IBead):void
+		{
+			if (!_beads)
+			{
+				_beads = new Vector.<IBead>();
+			}
+
+			_beads.push(bead);
+
+			if (bead is IBeadModel)
+			{
+				_model = bead as IBeadModel;
+			}
+
+			bead.strand = this;
+		}
+
+        /**
+         * @param classOrInterface The requested bead type.
+         * @return The bead.
+         */
+		public function getBeadByType(classOrInterface:Class):IBead
+		{
+			var bead:IBead, i:uint, n:uint;
+
+            if (!_beads) return null;
+            
+			n = _beads.length;
+
+			for (i = 0; i < n; i++)
+			{
+				bead = _beads[i];
+
+				if (bead is classOrInterface)
+				{
+					return bead;
+				}
+			}
+
+			return null;
+		}
+
+		/**
+		 * @param bead The bead to remove.
+		 * @return The bead.
+		 */
+		public function removeBead(bead:IBead):IBead
+		{
+			var i:uint, n:uint, value:Object;
+
+			n = _beads.length;
+
+			for (i = 0; i < n; i++)
+			{
+				value = _beads[i];
+
+				if (bead === value)
+				{
+					_beads.splice(i, 1);
+
+					return bead;
+				}
+			}
+
+			return null;
+		}
+        
+        override public function addEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void
+        {
+            var source:Object = getActualDispatcher_(type);
+            goog.events.listen(source, type, handler);
+        }
+        
+        override public function removeEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void
+        {
+            var source:Object = getActualDispatcher_(type);
+            goog.events.unlisten(source, type, handler);
+        }
+        
+        private function getActualDispatcher_(type:String):Object
+        {
+            var source:Object = this;
+            if (ElementEvents.elementEvents[type]) {
+                // mouse and keyboard events also dispatch off the element.
+                source = this.element;
+            }
+            return source;
+        }
+        
+        override public function hasEventListener(type:String):Boolean
+        {
+            var source:Object = this.getActualDispatcher_(type);
+            
+            return goog.events.hasListener(source, type);
+        }
+
+        override public function dispatchEvent(e:Object):Boolean
+        {
+            var t:String;
+            if (typeof(e) === 'string') {
+                t = e as String;
+                if (e === 'change')
+                    e = new window.Event(t);
+            }
+            else {
+                t = e.type;
+                if (ElementEvents.elementEvents[t]) {
+                    e = new window.Event(t);
+                }
+            }
+            var source:Object = this.getActualDispatcher_(t);
+            if (source == this)
+                return super.dispatchEvent(e);
+            
+            return source.dispatchEvent(e);
+        }
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ImageBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ImageBase.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ImageBase.as
new file mode 100644
index 0000000..71454a7
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ImageBase.as
@@ -0,0 +1,84 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+	import org.apache.flex.core.IImage;
+	import org.apache.flex.core.IImageModel;
+	import org.apache.flex.core.UIBase;
+	
+	/**
+	 *  The ImageBase class serves as a base class for components that displays a bitmap. The Image uses
+	 *  the following beads:
+	 * 
+	 *  org.apache.flex.core.IBeadModel: the data model for the Image, including the url/binary property.
+	 *  org.apache.flex.core.IBeadView: constructs the visual elements of the component.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ImageBase extends UIBase implements IImage
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ImageBase()
+		{
+			super();
+		}
+		
+		/**
+		 *  The location of the bitmap, usually a URL.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.IImageModel
+		 */
+		public function get url():String
+		{
+			return (model as IImageModel).url;
+		}
+		public function set url(value:String):void
+		{
+			(model as IImageModel).url = value;
+		}
+		
+		COMPILE::JS
+		public function get imageElement():Element
+		{
+			return null;
+			// override this
+		}
+		
+		COMPILE::JS
+		public function applyImageData(binaryDataAsString:String):void
+		{
+			// override this
+		}
+		
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
index 300b008..dc2b774 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
@@ -165,6 +165,20 @@ package org.apache.flex.core
             }
         }
         
+        COMPILE::SWF
+        public function get $displayObject():DisplayObject
+        {
+            return this;
+        }
+        
+        public function get flexjs_wrapper():Object
+        {
+            return this;
+        }
+        public function set flexjs_wrapper(value:Object):void
+        {
+        }
+        
 		private var _explicitWidth:Number;
         
         /**
@@ -1091,7 +1105,10 @@ package org.apache.flex.core
             {
                 if (c is IUIBase)
                 {
-                    addChild(IUIBase(c).element as DisplayObject);
+                    if (c is IRenderedObject)
+                        addChild(IRenderedObject(c).$displayObject);
+                    else
+                        addChild(c as DisplayObject);                        
                     IUIBase(c).addedToParent();
                 }
                 else
@@ -1118,7 +1135,10 @@ package org.apache.flex.core
             {
                 if (c is IUIBase)
                 {
-                    addChildAt(IUIBase(c).element as DisplayObject, index);
+                    if (c is IRenderedObject)
+                        addChildAt(IUIBase(c).$displayObject, index);
+                    else
+                        addChildAt(c as DisplayObject, index);
                     IUIBase(c).addedToParent();
                 }
                 else
@@ -1150,7 +1170,7 @@ package org.apache.flex.core
         {
             COMPILE::SWF
             {
-                return getChildAt(index);
+                return getChildAt(index) as IChild;
             }
             COMPILE::JS
             {
@@ -1171,8 +1191,8 @@ package org.apache.flex.core
         {
             COMPILE::SWF
             {
-                if (c is IUIBase)
-                    return getChildIndex(IUIBase(c).element as DisplayObject);
+                if (c is IRenderedObject)
+                    return getChildIndex(IRenderedObject(c).$displayObject);
                 else
                     return getChildIndex(c as DisplayObject);
             }
@@ -1201,8 +1221,8 @@ package org.apache.flex.core
         {
             COMPILE::SWF
             {
-                if (c is IUIBase)
-                    removeChild(IUIBase(c).element as DisplayObject);
+                if (c is IRenderedObject)
+                    removeChild(IRenderedObject(c).$displayObject);
                 else
                     removeChild(c as DisplayObject);
             }
@@ -1471,15 +1491,26 @@ package org.apache.flex.core
         /**
          * @param value The event containing new style properties.
          * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
-         * @flexjsignorecoercion org.apache.flex.core.IUIBase
+         * @flexjsignorecoercion org.apache.flex.core.IParent
          */
         COMPILE::JS
-        public function get parent():IUIBase
+        public function get parent():IParent
         {
             var p:WrappedHTMLElement = this.positioner.parentNode as WrappedHTMLElement;
-            var wrapper:IUIBase = p ? p.flexjs_wrapper as IUIBase : null;
+            var wrapper:IParent = p ? p.flexjs_wrapper as IParent : null;
             return wrapper;
         }
         
+		COMPILE::SWF
+		public function get transformElement():IFlexJSElement
+		{
+			return this;
+		}
+		
+		COMPILE::JS
+		public function get transformElement():WrappedHTMLElement
+		{
+			return element;
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
index d158665..d9615f1 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
@@ -75,7 +75,22 @@ package org.apache.flex.core
 			// mouseEnabled = true;
             MouseEventConverter.setupInstanceConverters(this);
 		}
-				
+
+        COMPILE::SWF
+        public function get $displayObject():DisplayObject
+        {
+            return this;
+        }
+        
+        public function get flexjs_wrapper():Object
+        {
+            return this;
+        }
+        public function set flexjs_wrapper(value:Object):void
+        {
+            
+        }
+
         private var _x:Number;
         
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
index 0a42d2a..e815a59 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
@@ -63,13 +63,13 @@ package org.apache.flex.html
 		 *  @productversion FlexJS 0.0
          *  @flexjsignorecoercion org.apache.flex.core.IImageModel
 		 */
-		public function get source():String
+		public function get url():String
 		{
-			return (model as IImageModel).source;
+			return (model as IImageModel).url;
 		}
-		public function set source(value:String):void
+		public function set url(value:String):void
 		{
-			(model as IImageModel).source = value;
+			(model as IImageModel).url = value;
 		}
         
         /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
index e725517..83c261a 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
@@ -24,6 +24,7 @@ package org.apache.flex.html.beads
 	
     import org.apache.flex.core.BeadViewBase;
 	import org.apache.flex.core.IBeadView;
+    import org.apache.flex.core.IChild;
 	import org.apache.flex.core.IComboBoxModel;
 	import org.apache.flex.core.IPopUpHost;
 	import org.apache.flex.core.IStrand;
@@ -218,7 +219,7 @@ package org.apache.flex.html.beads
 					while (host && !(host is IPopUpHost))
 						host = host.parent;
                     if (host)
-    					IPopUpHost(host).addElement(popUp);
+    					IPopUpHost(host).addElement(popUp as IChild);
 				}
 				else
 				{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
index 0c6696a..d62e799 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
@@ -23,6 +23,7 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IBeadLayout;
 	import org.apache.flex.core.IBeadView;
+    import org.apache.flex.core.IChild;
 	import org.apache.flex.core.IContainer;
 	import org.apache.flex.core.IContainerView;
 	import org.apache.flex.core.IContentViewHost;
@@ -143,7 +144,7 @@ package org.apache.flex.html.beads
 		/**
 		 * @private
 		 */
-		public function addElement(c:Object, dispatchEvent:Boolean = true):void
+		public function addElement(c:IChild, dispatchEvent:Boolean = true):void
 		{
 			contentView.addElement(c, dispatchEvent);
 		}
@@ -151,7 +152,7 @@ package org.apache.flex.html.beads
 		/**
 		 * @private
 		 */
-		public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+		public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void
 		{
 			contentView.addElementAt(c, index, dispatchEvent);
 		}
@@ -159,7 +160,7 @@ package org.apache.flex.html.beads
 		/**
 		 * @private
 		 */
-		public function getElementIndex(c:Object):int
+		public function getElementIndex(c:IChild):int
 		{
 			return contentView.getElementIndex(c);
 		}
@@ -167,7 +168,7 @@ package org.apache.flex.html.beads
 		/**
 		 * @private
 		 */
-		public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+		public function removeElement(c:IChild, dispatchEvent:Boolean = true):void
 		{
 			contentView.removeElement(c, dispatchEvent);
 		}
@@ -183,7 +184,7 @@ package org.apache.flex.html.beads
 		/**
 		 * @private
 		 */
-		public function getElementAt(index:int):Object
+		public function getElementAt(index:int):IChild
 		{
 			return contentView.getElementAt(index);
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DropDownListView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
index 1334227..d3d7ebd 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
@@ -29,6 +29,7 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.BeadViewBase;
 	import org.apache.flex.core.CSSTextField;
 	import org.apache.flex.core.IBeadView;
+    import org.apache.flex.core.IChild;
 	import org.apache.flex.core.IPopUpHost;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
@@ -287,7 +288,7 @@ package org.apache.flex.html.beads
                     while (host && !(host is IPopUpHost))
                         host = host.parent;
                     if (host)
-                        IPopUpHost(host).addElement(popUp);
+                        IPopUpHost(host).addElement(popUp as IChild);
                 }
                 else
                 {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ImageView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ImageView.as
index 652392a..8c20686 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ImageView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ImageView.as
@@ -18,27 +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.core.BeadViewBase;
-	import org.apache.flex.core.IBeadView;
-	import org.apache.flex.core.IImageModel;
-	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.core.ImageViewBase;
 	
 	/**
 	 *  The ImageView class creates the visual elements of the org.apache.flex.html.Image component.
@@ -48,7 +28,7 @@ package org.apache.flex.html.beads
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ImageView extends BeadViewBase implements IBeadView
+	public class ImageView extends ImageViewBase
 	{
 		/**
 		 *  constructor.
@@ -62,162 +42,5 @@ package org.apache.flex.html.beads
 		{
 		}
 		
-        COMPILE::SWF
-		private var bitmap:Bitmap;
-        COMPILE::SWF
-		private var loader:Loader;
-		
-		private var _model:IImageModel;
-		
-		/**
-		 *  @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
-		 */
-		private function handleUrlChange(event:Event):void
-		{
-            COMPILE::SWF
-            {
-                if (_model.source) {
-                    loader = new Loader();
-                    loader.contentLoaderInfo.addEventListener("complete",onComplete);
-                    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
-                        trace(e);
-                        e.preventDefault();
-                    });
-                    loader.load(new URLRequest(_model.source));
-                }                    
-            }
-            COMPILE::JS
-            {
-				if (_model.source) {
-	                var host:IUIBase = _strand as IUIBase;
-	                host.element.addEventListener('load',
-	                    loadHandler, false);
-	                host.addEventListener('sizeChanged',
-	                    sizeChangedHandler);
-	                (host.element as HTMLImageElement).src = _model.source;
-				}
-            }
-		}
-		
-		/**
-		 * @private
-		 */
-        COMPILE::SWF
-		private function onComplete(event:Object):void
-		{
-            var host:UIBase = UIBase(_strand);
-			if (bitmap) {
-				host.removeChild(bitmap);
-			}
-			
-			bitmap = Bitmap(LoaderInfo(event.target).content);
-			
-			host.addChild(bitmap);
-			
-            if (host.isWidthSizedToContent())
-            {
-                host.dispatchEvent(new Event("widthChanged"));
-                if (host.parent)
-                    host.parent.dispatchEvent(new Event("layoutNeeded"));
-            }
-            else
-                bitmap.width = UIBase(_strand).width;
-                
-            if (host.isHeightSizedToContent())
-            {
-                host.dispatchEvent(new Event("heightChanged"));
-                if (host.parent)
-                    host.parent.dispatchEvent(new Event("layoutNeeded"));
-            }
-            else
-                bitmap.height = UIBase(_strand).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);
-            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/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SliderThumbView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SliderThumbView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SliderThumbView.as
index 2e99eef..e9b4ea5 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SliderThumbView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SliderThumbView.as
@@ -124,7 +124,7 @@ package org.apache.flex.html.beads
                 element.style.top = '-10px';
                 element.style.left = '20px';
                 
-                host.element.appendChild(element);
+                (host.element as WrappedHTMLElement).appendChild(element);
                 
                 element.flexjs_wrapper = this;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
index 63d04e2..276a8d6 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
@@ -94,7 +94,7 @@ package org.apache.flex.html.beads
 			loader.y = 0;
 			loader.width = host.width;
 			loader.height = host.height;
-			(host as UIBase).addElement(loader);
+			(host as UIBase).addChild(loader);
 		}
 
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalLayout.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalLayout.as
index 225e0ac..501799f 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalLayout.as
@@ -73,13 +73,14 @@ package org.apache.flex.html.beads.layouts
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
+		 *  @flexjsignorecoercion HTMLElement
          */
 		public function set strand(value:IStrand):void
 		{
 			host = value as ILayoutChild;
             COMPILE::JS
             {
-                (value as IUIBase).element.style.display = 'block';
+                ((value as IUIBase).element as HTMLElement).style.display = 'block';
             }
 		}
 	

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ImageModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ImageModel.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ImageModel.as
index 7742c2b..c4f110f 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ImageModel.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ImageModel.as
@@ -62,7 +62,7 @@ package org.apache.flex.html.beads.models
 			_strand = value;
 		}
 		
-		private var _source:String;
+		private var _url:String;
 		
 		/**
 		 *  The source of the image.
@@ -74,14 +74,14 @@ package org.apache.flex.html.beads.models
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		public function get source():String
+		public function get url():String
 		{
-			return _source;
+			return _url;
 		}
-		public function set source(value:String):void
+		public function set url(value:String):void
 		{
-			if (value != _source) {
-				_source = value;
+			if (value != _url) {
+				_url = value;
 				dispatchEvent( new Event("urlChanged") );
 			}
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ContainerContentArea.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ContainerContentArea.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ContainerContentArea.as
index 46426cd..6e1bb69 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ContainerContentArea.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ContainerContentArea.as
@@ -21,6 +21,7 @@ package org.apache.flex.html.supportClasses
 	import org.apache.flex.core.IContentView;
 	import org.apache.flex.core.UIBase;
     import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
 	
     /**
      *  The ContainerContentArea class implements the contentView for
@@ -50,8 +51,8 @@ package org.apache.flex.html.supportClasses
         
         private function forwardEventHandler(event:Event):void
         {
-            if (parent)
-                parent.dispatchEvent(event);
+            if (parent is IEventDispatcher)
+                (parent as IEventDispatcher).dispatchEvent(event);
         }
 		
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
index 15b6587..f7ebf01 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.supportClasses
 {	
+    import org.apache.flex.core.IChild;
     import org.apache.flex.core.IContentView;
     import org.apache.flex.core.IItemRenderer;
     import org.apache.flex.core.IItemRendererParent;
@@ -58,7 +59,7 @@ package org.apache.flex.html.supportClasses
 		/**
 		 * @private
 		 */
-		override public function addElement(c:Object, dispatchEvent:Boolean = true):void
+		override public function addElement(c:IChild, dispatchEvent:Boolean = true):void
 		{
 			super.addElement(c, dispatchEvent);
 			
@@ -72,7 +73,7 @@ package org.apache.flex.html.supportClasses
 		/**
 		 * @private
 		 */
-		override public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+		override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void
 		{	
 			super.removeElement(c, dispatchEvent);
 			

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ScrollingViewport.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ScrollingViewport.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ScrollingViewport.as
index d7c8d71..46ba9a6 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ScrollingViewport.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/ScrollingViewport.as
@@ -137,11 +137,14 @@ package org.apache.flex.html.supportClasses
             }
         }
 
+        /**
+         * @flexjsignorecoercion HTMLElement 
+         */
         COMPILE::JS
         override public function set strand(value:IStrand):void
         {
             super.strand = value;
-            contentView.element.style.overflow = 'auto';
+            (contentView.element as HTMLElement).style.overflow = 'auto';
         }
 
         private var viewportWidth:Number;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
index 5908d73..f370476 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.supportClasses
 {
+    import flash.display.DisplayObject;
     import flash.text.TextFieldType;
     
     import org.apache.flex.core.CSSTextField;
@@ -69,6 +70,21 @@ package org.apache.flex.html.supportClasses
 		
 		private var _explicitWidth:Number;
 		
+        COMPILE::SWF
+        public function get $displayObject():DisplayObject
+        {
+            return this;
+        }
+        
+        public function get flexjs_wrapper():Object
+        {
+            return this;
+        }
+        public function set flexjs_wrapper(value:Object):void
+        {
+            
+        }
+        
 		/**
 		 *  The explicitly set width (as opposed to measured width
 		 *  or percentage width).

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/BinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/BinaryImage.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/BinaryImage.as
new file mode 100644
index 0000000..c03793c
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/BinaryImage.as
@@ -0,0 +1,87 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.svg
+{
+	import org.apache.flex.core.IBinaryImage;
+	import org.apache.flex.core.IBinaryImageModel;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.core.IBinaryImageLoader;
+	import org.apache.flex.utils.BinaryData;
+
+ 	/**
+	 *  The Image class is a component that displays a bitmap. The Image uses
+	 *  the following beads:
+	 * 
+	 *  org.apache.flex.core.IBeadModel: the data model for the Image, including the url/binary property.
+	 *  org.apache.flex.core.IBeadView: constructs the visual elements of the component.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class BinaryImage extends Image implements IBinaryImage
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function BinaryImage()
+		{
+			super();
+		}
+		
+		override public function addedToParent():void
+		{
+			var c:Class = ValuesManager.valuesImpl.getValue(this, "iBinaryImageLoader") as Class;
+			if (c)
+			{
+				if (c)
+				{
+					var loader:IBinaryImageLoader = (new c()) as IBinaryImageLoader;
+					addBead(loader);
+				}
+			}
+			super.addedToParent();
+		}
+		
+		/**
+		 *  The binary bitmap data.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.IImageModel
+		 */
+		public function get binary():BinaryData
+		{
+			return (model as IBinaryImageModel).binary;
+		}
+		public function set binary(value:BinaryData):void
+		{
+			(model as IBinaryImageModel).binary = value;
+		}
+        
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
index 48c51d1..b25ebf2 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
@@ -26,7 +26,7 @@ package org.apache.flex.svg
 	[DefaultProperty("mxmlContent")]
 
 	COMPILE::SWF
-    public class GraphicContainer extends ContainerBase implements ITransformHost
+    public class GraphicContainer extends ContainerBase
     {
         public function GraphicContainer()
         {
@@ -41,7 +41,7 @@ package org.apache.flex.svg
     }
 	
 	COMPILE::JS
-	public class GraphicContainer extends UIBase implements ITransformHost, IContainer
+	public class GraphicContainer extends UIBase implements IContainer
 	{
 		private var graphicGroup:ContainerBase;
 		

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
index c2baa41..dc3f4a3 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
@@ -102,7 +102,7 @@ package org.apache.flex.svg
 		{
 			if(stroke)
 			{
-				stroke.apply(this);
+				stroke.apply(graphics);
 			}
 		}
 
@@ -111,7 +111,7 @@ package org.apache.flex.svg
 		{
 			if(fill)
 			{
-				fill.begin(this, targetBounds,targetOrigin);
+				fill.begin(graphics, targetBounds,targetOrigin);
 			}
 		}
 
@@ -120,7 +120,7 @@ package org.apache.flex.svg
 		{
 			if(fill)
 			{
-				fill.end(this);
+				fill.end(graphics);
 			}
 		}
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Image.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Image.as
new file mode 100644
index 0000000..cd0729f
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Image.as
@@ -0,0 +1,133 @@
+/**
+ * Licensed 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.svg
+{
+	import org.apache.flex.core.ImageBase;
+
+	COMPILE::JS
+	{
+		import org.apache.flex.core.WrappedHTMLElement;            
+	}
+    public class Image extends ImageBase
+    {
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7
+		 */
+        public function Image()
+        {
+			super();
+       }
+		
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+			element = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as WrappedHTMLElement;
+			element.flexjs_wrapper = this;
+			element.setAttribute('x', 0);
+			element.setAttribute('y', 0);
+			//element.offsetParent = null;
+			positioner = element;
+			positioner.style.position = 'relative';
+			addImageElement();
+			return element;
+		}
+		
+		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;
+		}
+		
+		COMPILE::JS
+		override public function get transformElement():WrappedHTMLElement
+		{
+			return _image;
+		}
+		
+		COMPILE::JS
+		override public function applyImageData(binaryDataAsString:String):void
+		{
+			(_image as SVGImageElement).setAttributeNS('http://www.w3.org/1999/xlink','href', binaryDataAsString);
+		}
+		COMPILE::JS
+		override public function setWidth(value:Number, noEvent:Boolean=false):void
+		{
+			super.setWidth(value, noEvent);
+			positioner.setAttribute("width", value);
+		}
+
+		COMPILE::JS
+		override public function setHeight(value:Number, noEvent:Boolean=false):void
+		{
+			super.setHeight(value, noEvent);
+			positioner.setAttribute("height", value);
+		}
+		
+		COMPILE::JS
+		override public function setX(value:Number):void
+		{
+			super.setX(value);
+			positioner.setAttribute("x", value);
+
+		}
+		COMPILE::JS
+		override public function setY(value:Number):void
+		{
+			super.setY(value);
+			positioner.setAttribute("y", value);
+			
+		}
+		
+		COMPILE::JS
+		override public function set x(value:Number):void
+		{
+			super.x = value;
+			positioner.setAttribute("x", value);
+		}
+		
+		COMPILE::JS
+		override public function set y(value:Number):void
+		{
+			super.y = value;
+			positioner.setAttribute("y", value);
+		}
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/beads/ImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/beads/ImageView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/beads/ImageView.as
new file mode 100644
index 0000000..8cbd789
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/beads/ImageView.as
@@ -0,0 +1,87 @@
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.svg.beads
+{
+	import org.apache.flex.core.ImageViewBase;
+	COMPILE::JS
+		{
+			import org.apache.flex.core.UIBase;
+			import org.apache.flex.core.ValuesManager;
+		}
+	
+	/**
+	 *  The ImageView class creates the visual elements of the org.apache.flex.svg.Image component.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ImageView extends ImageViewBase
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ImageView()
+		{
+		}
+		
+		COMPILE::JS
+		override protected function sizeChangedHandler(event:Object):void
+		{
+			super.sizeChangedHandler(event);
+			var host:UIBase = _strand as UIBase;
+			
+			var left:* = ValuesManager.valuesImpl.getValue(host, "left");
+			var right:* = ValuesManager.valuesImpl.getValue(host, "right");
+			var l:Number = isNaN(left) ? NaN : left;
+			var r:Number = isNaN(right) ? NaN : right;
+
+			var top:* = ValuesManager.valuesImpl.getValue(host, "top");
+			var bottom:* = ValuesManager.valuesImpl.getValue(host, "bottom");
+			var t:Number = isNaN(top) ? NaN : top;
+			var b:Number = isNaN(bottom) ? NaN : bottom;
+			
+			var p:Object = host.positioner;
+
+			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;
+				p.setAttribute("width", computedWidth);
+
+			}
+			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;
+				p.setAttribute("height", computedHeight);
+			}
+		}
+
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/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 797fafb..aff0dbc 100644
--- a/frameworks/projects/Core/src/main/flex/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/flex/CoreClasses.as
@@ -27,6 +27,7 @@ package {
 internal class CoreClasses
 {
     import org.apache.flex.core.BeadViewBase; BeadViewBase;
+    import org.apache.flex.core.ImageViewBase; ImageViewBase;
     import org.apache.flex.core.BrowserWindow; BrowserWindow;
 	COMPILE::SWF
 	{
@@ -35,6 +36,11 @@ internal class CoreClasses
 		import org.apache.flex.core.CSSSprite; CSSSprite;
 		import org.apache.flex.core.CSSTextField; CSSTextField;
 	    import org.apache.flex.core.StyleableCSSTextField; StyleableCSSTextField;
+		import org.apache.flex.core.WrappedMovieClip; WrappedMovieClip;
+		import org.apache.flex.core.WrappedShape; WrappedShape;
+		import org.apache.flex.core.WrappedSimpleButton; WrappedSimpleButton;
+		import org.apache.flex.core.WrappedSprite; WrappedSprite;
+		import org.apache.flex.core.WrappedTextField; WrappedTextField;
 	}
 	import org.apache.flex.core.IBinaryImageLoader; IBinaryImageLoader;
     import org.apache.flex.core.ItemRendererClassFactory; ItemRendererClassFactory;
@@ -75,6 +81,7 @@ internal class CoreClasses
     import org.apache.flex.core.IParentIUIBase; IParentIUIBase;
     import org.apache.flex.core.IPopUp; IPopUp;
     import org.apache.flex.core.IRangeModel; IRangeModel;
+    import org.apache.flex.core.ISWFApplication; ISWFApplication;
 	import org.apache.flex.core.ITransformModel; ITransformModel;
 	import org.apache.flex.core.ITransformHost; ITransformHost;
     import org.apache.flex.core.IRollOverModel; IRollOverModel;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
index 6586fe9..95fe4be 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
@@ -33,8 +33,8 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.7
          */
-        function get flexjs_wrapper():ElementWrapper;
-        function set flexjs_wrapper(value:ElementWrapper):void;
+        function get flexjs_wrapper():Object;
+        function set flexjs_wrapper(value:Object):void;
     }
 
 	COMPILE::JS

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/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 afc7def..f9c4d1c 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
@@ -23,6 +23,7 @@ package org.apache.flex.core
         import flash.display.Bitmap;
         import flash.display.Loader;
         import flash.display.LoaderInfo;
+        import flash.display.Sprite;
         import flash.events.IOErrorEvent;
         import flash.net.URLRequest;            
     }
@@ -34,8 +35,10 @@ package org.apache.flex.core
 	
 	import org.apache.flex.core.BeadViewBase;
 	import org.apache.flex.core.IImageModel;
+	import org.apache.flex.core.ILayoutChild;
+	import org.apache.flex.core.IRenderedObject;
 	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;
@@ -156,14 +159,16 @@ package org.apache.flex.core
         COMPILE::SWF
 		private function onComplete(event:Object):void
 		{
-            var host:UIBase = UIBase(_strand);
+            var host:ILayoutChild = ILayoutChild(_strand);
+			var hostSprite:Sprite = (host as IRenderedObject).$displayObject as Sprite;
+			
 			if (bitmap) {
-				host.$sprite.removeChild(bitmap);
+				hostSprite.removeChild(bitmap);
 			}
 			
 			bitmap = Bitmap(LoaderInfo(event.target).content);
 			
-			host.$sprite.addChild(bitmap);
+			hostSprite.addChild(bitmap);
 			
             if (host.isWidthSizedToContent())
             {
@@ -191,19 +196,19 @@ package org.apache.flex.core
         COMPILE::SWF
 		private function handleSizeChange(event:Object):void
 		{
-            var host:UIBase = UIBase(_strand);
+            var host:ILayoutChild = ILayoutChild(_strand);
             if (bitmap) {
                 if (!isNaN(host.explicitWidth) || !isNaN(host.percentWidth))
-	    			bitmap.width = UIBase(_strand).width;
+	    			bitmap.width = IUIBase(_strand).width;
                 if (!isNaN(host.explicitHeight) || !isNaN(host.percentHeight))
-    				bitmap.height = UIBase(_strand).height;
+    				bitmap.height = IUIBase(_strand).height;
 			}
 		}
         
         COMPILE::JS
         private function loadHandler(event:Object):void
         {
-            var host:UIBase = UIBase(_strand);
+            var host:IUIBase = IUIBase(_strand);
             IEventDispatcher(host.parent).dispatchEvent(new Event("layoutNeeded"));
         }
         
@@ -213,7 +218,7 @@ package org.apache.flex.core
         COMPILE::JS
         protected function sizeChangedHandler(event:Object):void
         {
-            var host:UIBase = _strand as UIBase;
+            var host:IUIBase = _strand as IUIBase;
             var s:Object = host.positioner.style;
             var l:Number = NaN;
             var ls:String = s.left;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedMovieClip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedMovieClip.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedMovieClip.as
index 1b91d63..c3f9545 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedMovieClip.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedMovieClip.as
@@ -28,7 +28,7 @@ package org.apache.flex.core
 	COMPILE::SWF
 	public class WrappedMovieClip extends MovieClip implements IFlexJSElement, IRenderedObject
 	{
-        private var _flexjs_wrapper:ElementWrapper;
+        private var _flexjs_wrapper:Object;
         
         //--------------------------------------
         //   Property
@@ -42,11 +42,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function get flexjs_wrapper():ElementWrapper
+        public function get flexjs_wrapper():Object
         {
             return _flexjs_wrapper;
         }
-        public function set flexjs_wrapper(value:ElementWrapper):void
+        public function set flexjs_wrapper(value:Object):void
         {
             _flexjs_wrapper = value;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedShape.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedShape.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedShape.as
index 1978fff..10fafd6 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedShape.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedShape.as
@@ -28,7 +28,7 @@ package org.apache.flex.core
 	COMPILE::SWF
 	public class WrappedShape extends Shape implements IFlexJSElement, IRenderedObject
 	{
-        private var _flexjs_wrapper:ElementWrapper;
+        private var _flexjs_wrapper:Object;
         
         //--------------------------------------
         //   Property
@@ -42,11 +42,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function get flexjs_wrapper():ElementWrapper
+        public function get flexjs_wrapper():Object
         {
             return _flexjs_wrapper;
         }
-        public function set flexjs_wrapper(value:ElementWrapper):void
+        public function set flexjs_wrapper(value:Object):void
         {
             _flexjs_wrapper = value;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSimpleButton.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSimpleButton.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSimpleButton.as
index 557ddf9..6b2411c 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSimpleButton.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSimpleButton.as
@@ -33,7 +33,7 @@ package org.apache.flex.core
 
         }
 
-        private var _flexjs_wrapper:ElementWrapper;
+        private var _flexjs_wrapper:Object;
         
         //--------------------------------------
         //   Property
@@ -47,11 +47,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function get flexjs_wrapper():ElementWrapper
+        public function get flexjs_wrapper():Object
         {
             return _flexjs_wrapper;
         }
-        public function set flexjs_wrapper(value:ElementWrapper):void
+        public function set flexjs_wrapper(value:Object):void
         {
             _flexjs_wrapper = value;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSprite.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSprite.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSprite.as
index 0fc230b..4f84300 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSprite.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedSprite.as
@@ -29,7 +29,7 @@ package org.apache.flex.core
 	public class WrappedSprite extends Sprite implements IFlexJSElement, IRenderedObject
 	{
 
-        private var _flexjs_wrapper:ElementWrapper;
+        private var _flexjs_wrapper:Object;
         
         //--------------------------------------
         //   Property
@@ -43,11 +43,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function get flexjs_wrapper():ElementWrapper
+        public function get flexjs_wrapper():Object
         {
             return _flexjs_wrapper;
         }
-        public function set flexjs_wrapper(value:ElementWrapper):void
+        public function set flexjs_wrapper(value:Object):void
         {
             _flexjs_wrapper = value;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedTextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedTextField.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedTextField.as
index ae7faf4..e025646 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedTextField.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedTextField.as
@@ -29,7 +29,7 @@ package org.apache.flex.core
 	public class WrappedTextField extends TextField implements IFlexJSElement, IRenderedObject
 	{
 
-        private var _flexjs_wrapper:ElementWrapper;
+        private var _flexjs_wrapper:Object;
         
 		//--------------------------------------
 		//   Property
@@ -43,11 +43,11 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public function get flexjs_wrapper():ElementWrapper
+        public function get flexjs_wrapper():Object
         {
             return _flexjs_wrapper;
         }
-        public function set flexjs_wrapper(value:ElementWrapper):void
+        public function set flexjs_wrapper(value:Object):void
         {
             _flexjs_wrapper = value;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/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 b1714ff..6f7db21 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -55,7 +55,7 @@ internal class HTMLClasses
 		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.ImageView; org.apache.flex.html.beads.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;
@@ -196,6 +196,9 @@ internal class HTMLClasses
 	import org.apache.flex.svg.Rect; Rect;
 	import org.apache.flex.svg.Ellipse; Ellipse;
 	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; org.apache.flex.svg.beads.ImageView;
 	import org.apache.flex.svg.Path; Path;
 	import org.apache.flex.svg.Text; Text;
 	import org.apache.flex.svg.CompoundGraphic; CompoundGraphic;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/Application.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/Application.as
index f8cbe01..2277802 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/Application.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/Application.as
@@ -21,9 +21,6 @@ package org.apache.flex.core
     import org.apache.flex.events.Event;
     import org.apache.flex.events.IEventDispatcher;
     import org.apache.flex.events.MouseEvent;
-	COMPILE::SWF {
-	    import org.apache.flex.events.utils.MouseEventConverter;
-	}
     import org.apache.flex.utils.MXMLDataInterpreter;
     import org.apache.flex.utils.Timer;
 
@@ -34,6 +31,7 @@ package org.apache.flex.core
 		import flash.events.Event;
         import flash.system.ApplicationDomain;
         import flash.utils.getQualifiedClassName;
+        import org.apache.flex.events.utils.MouseEventConverter;
     }
 
     //--------------------------------------

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fdc2a4c2/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as
index ca01f54..5dbea38 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as
@@ -957,8 +957,7 @@ package org.apache.flex.core
 		{
 			element.className = value;           
 		}
-		
-        
+		        
         /**
          *  @copy org.apache.flex.core.Application#beads
          *