http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
index 0000000,0000000..e4dfb1f
new file mode 100644
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
@@@ -1,0 -1,0 +1,280 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  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.IContentViewHost;
++      import org.apache.flex.core.ILayoutParent;
++      import org.apache.flex.core.ILayoutHost;
++      import org.apache.flex.core.ILayoutView;
++      import org.apache.flex.core.ValuesManager;
++      import org.apache.flex.events.Event;
++      import org.apache.flex.events.ValueChangeEvent;
++      import org.apache.flex.states.State;
++      import org.apache.flex.utils.MXMLDataInterpreter;
++
++    /**
++     *  Indicates that the state change has completed.  All properties
++     *  that need to change have been changed, and all transitinos
++     *  that need to run have completed.  However, any deferred work
++     *  may not be completed, and the screen may not be updated until
++     *  code stops executing.
++     *  
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++    [Event(name="stateChangeComplete", type="org.apache.flex.events.Event")]
++    
++    /**
++     *  Indicates that the initialization of the container is complete.
++     *  
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++    [Event(name="initComplete", type="org.apache.flex.events.Event")]
++    
++    /**
++     *  Indicates that the children of the container is have been added.
++     *  
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++    [Event(name="childrenAdded", type="org.apache.flex.events.Event")]
++    
++    /**
++     *  The GroupBase class is the base class for most simple containers
++     *  in FlexJS.  It is usable as the root tag of MXML
++     *  documents and UI controls and containers are added to it.
++     *  
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++      public class GroupBase extends UIBase implements IStatesObject, 
IContainer, ILayoutParent, ILayoutView, IContentViewHost
++      {
++        /**
++         *  Constructor.
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++              public function GroupBase()
++              {
++                      super();            
++              }
++              
++              /**
++               * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
++               */
++              COMPILE::JS
++              override protected function createElement():WrappedHTMLElement
++              {
++                      element = document.createElement('div') as 
WrappedHTMLElement;
++                      element.flexjs_wrapper = this;
++                      
++                      positioner = element;
++                      
++                      return element;
++              }
++              
++              /*
++               * IContainer
++               */
++        
++        /**
++         *  @private
++         */
++        public function childrenAdded():void
++        {
++            dispatchEvent(new Event("childrenAdded"));
++        }
++              
++              /*
++               * Utility
++               */
++              
++              /**
++               * Dispatches a "layoutNeeded" event
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               */
++              public function layoutNeeded():void
++              {
++                      dispatchEvent( new Event("layoutNeeded") );
++              }
++              
++              /*
++               * ILayoutParent
++               */
++              
++              /**
++               * Returns the ILayoutHost which is its view. From 
ILayoutParent.
++               *
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function getLayoutHost():ILayoutHost
++              {
++                      return view as ILayoutHost;
++              }
++              
++              /**
++               * @copy org.apache.flex.core.IContentViewHost#strandChildren
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               */
++              public function get strandChildren():IParent
++              {
++                      return this;
++              }
++              
++        private var _states:Array;
++        
++        /**
++         *  The array of view states. These should
++         *  be instances of org.apache.flex.states.State.
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++        public function get states():Array
++        {
++            return _states;
++        }
++
++        /**
++         *  @private
++         *  @flexjsignorecoercion Class
++         *  @flexjsignorecoercion org.apache.flex.core.IBead
++         */
++        public function set states(value:Array):void
++        {
++            _states = value;
++            _currentState = _states[0].name;
++            
++                      try{
++                              if (getBeadByType(IStatesImpl) == null)
++                {
++                    var c:Class = ValuesManager.valuesImpl.getValue(this, 
"iStatesImpl") as Class;
++                    var b:Object = new c();
++                                      addBead(b as IBead);
++                }
++                      }
++                      //TODO:  Need to handle this case more gracefully
++                      catch(e:Error)
++                      {
++                COMPILE::SWF
++                {
++                    trace(e.message);                        
++                }
++                      }
++            
++        }
++        
++        /**
++         *  <code>true</code> if the array of states
++         *  contains a state with this name.
++         * 
++         *  @param state The state namem.
++         *  @return True if state in state array
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++        public function hasState(state:String):Boolean
++        {
++            for each (var s:State in _states)
++            {
++                if (s.name == state)
++                    return true;
++            }
++            return false;
++        }
++        
++        private var _currentState:String;
++        
++        [Bindable("currentStateChange")]
++        /**
++         *  The name of the current state.
++         * 
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++        public function get currentState():String
++        {
++            return _currentState;   
++        }
++
++        /**
++         *  @private
++         */
++        public function set currentState(value:String):void
++        {
++            var event:ValueChangeEvent = new 
ValueChangeEvent("currentStateChange", false, false, _currentState, value)
++            _currentState = value;
++            dispatchEvent(event);
++        }
++        
++        private var _transitions:Array;
++        
++        /**
++         *  The array of transitions.
++         *  
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++        public function get transitions():Array
++        {
++            return _transitions;   
++        }
++        
++        /**
++         *  @private
++         */
++        public function set transitions(value:Array):void
++        {
++            _transitions = value;   
++        }
++
++    }
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/IList.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/core/IList.as
index 0000000,0000000..3162b3b
new file mode 100644
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/IList.as
@@@ -1,0 -1,0 +1,48 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  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.IItemRendererParent;
++      import org.apache.flex.core.IItemRendererProvider;
++
++    /**
++     *  The IList interface is implemented by any component that supports 
being
++       *  a "list" which means its content is generated by a factory and whose
++       *  children are item renderers (IItemRenderer).
++     * 
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.0
++     */
++      public interface IList extends IItemRendererProvider
++      {
++        /**
++         *  Returns the component within the list (maybe even the list shell 
itself)
++               *  which will be the parent of each itemRenderer.
++         * 
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.0
++         */
++              function get dataGroup():IItemRendererParent;
++              
++      }
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
index 0000000,0000000..dde6448
new file mode 100644
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
@@@ -1,0 -1,0 +1,166 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  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.IBeadLayout;
++      import org.apache.flex.core.ILayoutChild;
++      import org.apache.flex.core.ILayoutHost;
++      import org.apache.flex.core.ILayoutParent;
++      import org.apache.flex.core.ILayoutView;
++      import org.apache.flex.core.IParent;
++      import org.apache.flex.core.IStrand;
++      import org.apache.flex.core.ValuesManager;
++    import org.apache.flex.utils.CSSUtils;
++
++    /**
++     *  This class is the base class for most, if not all, layouts. 
++     *
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++      public class LayoutBase implements IBeadLayout
++      {
++        /**
++         *  Constructor.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++              public function LayoutBase()
++              {
++              }
++
++        /**
++               * The strand/host container is also an ILayoutChild because
++         * it can have its size dictated by the host's parent which is
++         * important to know for layout optimization.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               */
++        protected var host:ILayoutChild;
++
++        /**
++         *  @copy org.apache.flex.core.IBead#strand
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               * 
++               * @flexjsignorecoercion org.apache.flex.core.ILayoutChild
++         */
++              public function set strand(value:IStrand):void
++              {
++            host = value as ILayoutChild;
++              }
++              
++              /**
++               * Returns an object of margins for the given child.
++               * 
++               * @param child Object The element whose margins are required.
++               * @param hostWidth Number The usable width dimension of the 
host.
++               * @param hostHeight Number The usable height dimension of the 
host.
++               * 
++               * @return Object A structure of {top:Number, left:Number, 
bottom:Number, right:Number}
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               */
++              protected function childMargins(child:Object, hostWidth:Number, 
hostHeight:Number):Object
++              {
++                      var margin:Object = 
ValuesManager.valuesImpl.getValue(child, "margin");
++                      var marginLeft:Object = 
ValuesManager.valuesImpl.getValue(child, "margin-left");
++                      var marginTop:Object = 
ValuesManager.valuesImpl.getValue(child, "margin-top");
++                      var marginRight:Object = 
ValuesManager.valuesImpl.getValue(child, "margin-right");
++                      var marginBottom:Object = 
ValuesManager.valuesImpl.getValue(child, "margin-bottom");
++                      var ml:Number = CSSUtils.getLeftValue(marginLeft, 
margin, hostWidth);
++                      var mr:Number = CSSUtils.getRightValue(marginRight, 
margin, hostWidth);
++                      var mt:Number = CSSUtils.getTopValue(marginTop, margin, 
hostHeight);
++                      var mb:Number = CSSUtils.getBottomValue(marginBottom, 
margin, hostHeight);
++                      if (marginLeft == "auto")
++                              ml = 0;
++                      if (marginRight == "auto")
++                              mr = 0;
++                      
++                      return {left:ml, top:mt, right:mr, bottom:mb};
++              }
++              
++              /**
++               * Returns an object containing the child's positioning values.
++               * 
++               * @param child Object The element whose positions are required.
++               * 
++               * @return Object A structure of {top:Number, left:Number, 
bottom:Number, right:Number}
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               */
++              protected function childPositions(child:Object):Object
++              {
++                      var left:Number = 
ValuesManager.valuesImpl.getValue(child, "left");
++                      var right:Number = 
ValuesManager.valuesImpl.getValue(child, "right");
++                      var top:Number = 
ValuesManager.valuesImpl.getValue(child, "top");
++                      var bottom:Number = 
ValuesManager.valuesImpl.getValue(child, "bottom");
++                      
++                      return {top:top, left:left, bottom:bottom, right:right};
++              }
++              
++              /**
++               * Returns the ILayoutView for the host.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++               * 
++               * @flexjsignorecoercion org.apache.flex.core.ILayoutParent
++               */
++              protected function get layoutView():ILayoutView
++              {
++                      var viewBead:ILayoutHost = (host as 
ILayoutParent).getLayoutHost();
++                      return viewBead.contentView;
++              }
++
++        /**
++         * @copy org.apache.flex.core.IBeadLayout#layout
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++              public function layout():Boolean
++              {
++            // override in subclass
++                      return false;
++              }
++      }
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ListBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ListBase.as
index 562e74e,562e74e..3ec846a
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ListBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ListBase.as
@@@ -17,15 -17,15 +17,12 @@@
  //
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.core
--{
--      import org.apache.flex.core.IMXMLDocument;
--      import org.apache.flex.core.ValuesManager;
--      import org.apache.flex.core.ILayoutParent;
--      import org.apache.flex.events.Event;
--      import org.apache.flex.events.ValueChangeEvent;
--      import org.apache.flex.states.State;
--      import org.apache.flex.utils.MXMLDataInterpreter;
--    
++{    
++      /*
++       *************
++       * THIS CLASS IS NO LONGER NEEDED. INHERIT FROM DataContainerBase
++       */
++      
      /**
       *  The ListBase class is the base class for most lists
       *  in FlexJS.
@@@ -35,7 -35,7 +32,7 @@@
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */
--      public class ListBase extends UIBase implements IContentViewHost, 
ILayoutParent
++      public class ListBase extends DataContainerBase
        {
          /**
           *  Constructor.
@@@ -47,89 -47,89 +44,7 @@@
           */
                public function ListBase()
                {
--                      super();
--            
--                      _strandChildren = new ListBaseStrandChildren(this);
++                      super();            
                }
--              
--              private var _strandChildren:ListBaseStrandChildren;
--              
--              /**
--               * @private
--               */
--              public function get strandChildren():IParent
--              {
--                      return _strandChildren;
--              }
--              
--              /**
--               * @private
--               */
--              public function getLayoutHost():ILayoutHost
--              {
--                      return view as ILayoutHost; 
--              }
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $numElements():int
--              {
--                      return super.numElements();
--              }
--              
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $addElement(c:IChild, dispatchEvent:Boolean = 
true):void
--              {
--                      super.addElement(c, dispatchEvent);
--              }
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $addElementAt(c:IChild, index:int, 
dispatchEvent:Boolean = true):void
--              {
--                      super.addElementAt(c, index, dispatchEvent);
--              }
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $removeElement(c:IChild, dispatchEvent:Boolean 
= true):void
--              {
--                      super.removeElement(c, dispatchEvent);
--              }
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $getElementIndex(c:IChild):int
--              {
--                      return super.getElementIndex(c);
--              }
--              
--              /**
--               * @private
--         * @suppress {undefinedNames}
--               * Support strandChildren.
--               */
--              public function $getElementAt(index:int):IChild
--              {
--                      return super.getElementAt(index);
--              }
--
      }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIBase.as
index ca34c66,842ec95..d917b8d
--- 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
@@@ -158,6 -157,6 +158,7 @@@ package org.apache.flex.cor
              COMPILE::SWF
              {
                  MouseEventConverter.setupInstanceConverters(this);
++                doubleClickEnabled = true; // make JS and flash consistent
              }
              
              COMPILE::JS
@@@ -651,7 -646,7 +652,7 @@@
          COMPILE::JS
          public function set x(value:Number):void
          {
--            positioner.style.position = 'absolute';
++            //positioner.style.position = 'absolute';
              positioner.style.left = value.toString() + 'px';
          }
  
@@@ -684,7 -679,7 +685,7 @@@
                        }
                        COMPILE::JS
                        {
--                              positioner.style.position = 'absolute';
++                              //positioner.style.position = 'absolute';
                                positioner.style.left = value.toString() + 'px';
                        }
          }
@@@ -707,7 -702,7 +708,7 @@@
          COMPILE::JS
          public function set y(value:Number):void
          {
--            positioner.style.position = 'absolute';
++            //positioner.style.position = 'absolute';
              positioner.style.top = value.toString() + 'px';
          }
          
@@@ -740,7 -735,7 +741,7 @@@
                        }
                        COMPILE::JS
                        {
--                              positioner.style.position = 'absolute';
++                              //positioner.style.position = 'absolute';
                                positioner.style.top = value.toString() + 'px'; 
                        
                        }
          }
@@@ -1192,6 -1177,6 +1193,10 @@@
              COMPILE::JS
              {
                  var children:Array = internalChildren();
++                if (children.length == 0)
++                {
++                    return null;
++                }
                  return children[index].flexjs_wrapper;
              }
          }        
@@@ -1469,7 -1454,7 +1474,7 @@@
              if (positioner == null)
                  positioner = element;
              positioner.style.display = 'block';
--            positioner.style.position = 'relative';
++            //positioner.style.position = 'relative';
              
              element.flexjs_wrapper = this;
              

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
index de37c99,de37c99..9643b58
--- 
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
@@@ -103,14 -103,14 +103,12 @@@ package org.apache.flex.cor
                 */
                override public function set x(value:Number):void
                {
--                      if (super.x != value) {
--                              super.x = _x = value;
--                if (!style)
--                    style = { left: value };
--                else
--                    style.left = value;
--                              dispatchEvent(new Event("xChanged"));
--                      }
++                      super.x = _x = value;
++                      if (!style)
++                              style = { left: value };
++                      else
++                              style.left = value;
++                      dispatchEvent(new Event("xChanged"));
                }
                
          private var _y:Number;
@@@ -120,14 -120,14 +118,12 @@@
                 */
                override public function set y(value:Number):void
                {
--                      if (super.y != value) {
--                              super.y = _y = value;
--                if (!style)
--                    style = { top: value };
--                else
--                    style.top = value;
--                              dispatchEvent(new Event("yChanged"));
--                      }
++                      super.y = _y = value;
++                      if (!style)
++                              style = { top: value };
++                      else
++                              style.top = value;
++                      dispatchEvent(new Event("yChanged"));
                }
                
                /**
@@@ -750,7 -750,7 +746,7 @@@
                                _model = bead as IBeadModel;
              else if (bead is IBeadView)
                  _view = bead as IBeadView;
--                      bead.strand = this;
++                      //bead.strand = this; // super.addBead already did this!
                }
                
          /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/View.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/core/View.as
index 2d0f2c4,2d0f2c4..27882f3
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/View.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/View.as
@@@ -17,7 -17,7 +17,18 @@@
  //
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.core
--{    
++{     
++      import org.apache.flex.core.IMXMLDocument;
++      import org.apache.flex.core.ValuesManager;
++      import org.apache.flex.events.Event;
++      import org.apache.flex.utils.MXMLDataInterpreter;
++      
++      /**
++       * The default property uses when additional MXML content appears 
within an element's
++       * definition in an MXML file.
++       */
++      [DefaultProperty("mxmlContent")]
++      
      /**
       *  The View class is the class for most views in a FlexJS
       *  application.  It is generally used as the root tag of MXML
@@@ -29,6 -29,6 +40,84 @@@
       *  @productversion FlexJS 0.0
       */
        public class View extends ViewBase
--      {
++      {               
++              public function View()
++              {
++                      super();
++              }
++              
++              private var _mxmlDescriptor:Array;
++              private var _mxmlDocument:Object = this;
++              private var _initialized:Boolean;
++              
++              /**
++               * @private
++               */
++              override public function addedToParent():void
++              {
++                      if (!_initialized)
++                      {
++                              // each MXML file can also have styles in 
fx:Style block
++                              ValuesManager.valuesImpl.init(this);
++                      }
++                      
++                      super.addedToParent();
++                      
++                      if (!_initialized)
++                      {
++                              
MXMLDataInterpreter.generateMXMLInstances(_mxmlDocument, this, MXMLDescriptor);
++                              
++                              dispatchEvent(new Event("initBindings"));
++                              dispatchEvent(new Event("initComplete"));
++                              _initialized = true;
++                              
++                              // - why was this added here? childrenAdded(); 
//?? Is this necessary since MXMLDataInterpreter will already have called it
++                      }
++              }
++              
++              /**
++               *  @copy org.apache.flex.core.Application#MXMLDescriptor
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function get MXMLDescriptor():Array
++              {
++                      return _mxmlDescriptor;
++              }
++              
++              /**
++               *  @private
++               */
++              public function setMXMLDescriptor(document:Object, 
value:Array):void
++              {
++                      _mxmlDocument = document;
++                      _mxmlDescriptor = value;
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.Application#generateMXMLAttributes()
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function generateMXMLAttributes(data:Array):void
++              {
++                      MXMLDataInterpreter.generateMXMLProperties(this, data);
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.ItemRendererClassFactory#mxmlContent
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public var mxmlContent:Array;
      }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ViewBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ViewBase.as
index b385d74,73092af..cd9b835
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ViewBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/ViewBase.as
@@@ -23,36 -23,36 +23,36 @@@ package org.apache.flex.cor
      //--------------------------------------
      //  Events
      //--------------------------------------
--    
++
      /**
       *  Dispatched at startup. Attributes and sub-instances of
       *  the MXML document have been created and assigned.
       *  The component lifecycle is different
       *  than the Flex SDK.  There is no creationComplete event.
--     *  
++     *
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */
        [Event(name="initComplete", type="org.apache.flex.events.Event")]
--    
++
        [DefaultProperty("mxmlContent")]
--    
++
      /**
       *  The ViewBase class is the base class for most views in a FlexJS
       *  application.
--     *  
++     *
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */
--      public class ViewBase extends ContainerBase implements IPopUpHost, 
IApplicationView, ILayoutParent
++      public class ViewBase extends GroupBase implements IPopUpHost, 
IApplicationView
        {
          /**
           *  Constructor.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -61,19 -61,19 +61,19 @@@
                public function ViewBase()
                {
                        super();
--            
++
                        className = "flexjs";
                }
--              
++
                private var _applicationModel:Object;
--              
++
                [Bindable("modelChanged")]
--        
++
          /**
           *  A reference to the Application's model.  Usually,
           *  a view is displaying the main model for an
           *  application.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -83,7 -83,7 +83,7 @@@
                {
                        return _applicationModel;
                }
--        
++
          /**
           *  @private
           */
@@@ -92,20 -92,20 +92,6 @@@
              _applicationModel = value;
              dispatchEvent(new Event("modelChanged"));
          }
--              
--              /**
--               * Implements the ILayoutParent protocol by returning the bead 
that
--               * is acting as the host for layout.
--         *  
--         *  @langversion 3.0
--         *  @playerversion Flash 10.2
--         *  @playerversion AIR 2.6
--         *  @productversion FlexJS 0.0
--               */
--              public function getLayoutHost():ILayoutHost
--              {
-                       return view as ILayoutHost;
 -                      return getBeadByType(ILayoutHost) as ILayoutHost;
--              }
  
      }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBar.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBar.as
index e4c58e7,e4c58e7..0dffead
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBar.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBar.as
@@@ -18,23 -18,23 +18,26 @@@
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html
  {
++      import org.apache.flex.html.beads.models.ButtonBarModel;
++      
      COMPILE::JS
      {
--        import org.apache.flex.core.WrappedHTMLElement;            
++        import org.apache.flex.core.WrappedHTMLElement;
      }
  
        /**
         *  The ButtonBar class is a component that displays a set of Buttons. 
The ButtonBar
--       *  is actually a List with a default horizontal layout and an 
itemRenderer that 
++       *  is actually a List with a default horizontal layout and an 
itemRenderer that
         *  produces Buttons. The ButtonBar uses the following beads:
--       * 
++       *
         *  org.apache.flex.core.IBeadModel: the data model for the ButtonBar, 
including the dataProvider.
         *  org.apache.flex.core.IBeadView: constructs the parts of the 
component.
         *  org.apache.flex.core.IBeadController: handles input events.
         *  org.apache.flex.core.IBeadLayout: sizes and positions the component 
parts.
         *  org.apache.flex.core.IDataProviderItemRendererMapper: produces 
itemRenderers.
         *  org.apache.flex.core.IItemRenderer: the class or class factory to 
use.
--       *  
++       *
++     *  @toplevel
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
@@@ -54,7 -54,7 +57,25 @@@
                {
                        super();
                }
--        
++              
++              public function get buttonWidths():Array
++              {
++                      return ButtonBarModel(model).buttonWidths;
++              }
++              public function set buttonWidths(value:Array):void
++              {
++                      ButtonBarModel(model).buttonWidths = value;
++              }
++              
++              public function get widthType():Number
++              {
++                      return ButtonBarModel(model).widthType;
++              }
++              public function set widthType(value:Number):void
++              {
++                      ButtonBarModel(model).widthType = value;
++              }
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
@@@ -62,14 -62,14 +83,12 @@@
          override protected function createElement():WrappedHTMLElement
          {
              element = document.createElement('div') as WrappedHTMLElement;
--            element.style.overflow = 'auto';
              positioner = element;
--            positioner.style.position = 'relative';
--            
++
              className = 'ButtonBar';
--            
++
              element.flexjs_wrapper = this;
--            
++
              return element;
          }
        }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBase.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBase.as
index a30f0cf,a30f0cf..72d19e1
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ButtonBase.as
@@@ -84,7 -84,7 +84,6 @@@ package org.apache.flex.htm
              element.setAttribute('type', 'button');
              
              positioner = element;
--            positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
              
              /* AJH comment out until we figure out why it is needed

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CSSCheckBox.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CSSCheckBox.as
index 0000000,0000000..40c0b7a
new file mode 100644
--- /dev/null
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CSSCheckBox.as
@@@ -1,0 -1,0 +1,219 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  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.html
++{
++    COMPILE::SWF
++    {
++        import flash.events.MouseEvent;
++    }
++
++      import org.apache.flex.core.IStrand;
++      import org.apache.flex.core.IToggleButtonModel;
++      import org.apache.flex.core.IUIBase;
++    COMPILE::SWF
++    {
++        import org.apache.flex.core.UIButtonBase;
++    }
++    COMPILE::JS
++    {
++        import org.apache.flex.core.UIBase;
++        import org.apache.flex.core.WrappedHTMLElement;
++              import org.apache.flex.html.supportClasses.CheckBoxIcon;
++    }
++      import org.apache.flex.events.Event;
++      import org.apache.flex.events.MouseEvent;
++
++    //--------------------------------------
++    //  Events
++    //--------------------------------------
++
++    /**
++     *  Dispatched when the user checks or un-checks the CSSCheckBox.
++     *
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.0
++     */
++      [Event(name="change", type="org.apache.flex.events.Event")]
++
++    /**
++     *  The CSSCheckBox class implements the common user interface
++     *  control.  The CSSCheckBox includes its text label and is styleable 
using CSS.
++     * To style the checkbox control, a `checkClassName` should be specified 
which corresponds to a CSS class name.
++     *
++     *  @toplevel
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.0
++     */
++    COMPILE::SWF
++      public class CSSCheckBox extends UIButtonBase implements IStrand
++      {
++        /**
++         *  Constructor.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.0
++         */
++              public function CSSCheckBox()
++              {
++                      super();
++
++                      
addEventListener(org.apache.flex.events.MouseEvent.CLICK, internalMouseHandler);
++              }
++
++        /**
++         *  The text label for the CSSCheckBox.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.0
++         */
++              public function get text():String
++              {
++                      return IToggleButtonModel(model).text;
++              }
++
++        /**
++         *  @private
++         */
++              public function set text(value:String):void
++              {
++                      IToggleButtonModel(model).text = value;
++              }
++
++        [Bindable("change")]
++        /**
++         *  <code>true</code> if the check mark is displayed.
++         *
++         *  @default false
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.0
++         */
++              public function get selected():Boolean
++              {
++                      return IToggleButtonModel(model).selected;
++              }
++
++        /**
++         *  @private
++         */
++              public function set selected(value:Boolean):void
++              {
++                      IToggleButtonModel(model).selected = value;
++              }
++
++              private function 
internalMouseHandler(event:org.apache.flex.events.MouseEvent) : void
++              {
++                      selected = !selected;
++                      dispatchEvent(new Event("change"));
++              }
++        private var _checkClassName:String;
++        public function get checkClassName():String
++        {
++            return _checkClassName;
++        }
++        public function set checkClassName(value:String):void
++        {
++            _checkClassName = value;
++        }
++        
++      }
++
++    COMPILE::JS
++    public class CSSCheckBox extends UIBase
++    {
++
++              private var _label:WrappedHTMLElement;
++              private var _icon:CheckBoxIcon;
++              private var _styleDiv:WrappedHTMLElement;
++        private var _textNode:WrappedHTMLElement
++
++              private static var _checkNumber:Number = 0;
++
++        /**
++         * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
++         */
++        override protected function createElement():WrappedHTMLElement
++        {
++            element = document.createElement('label') as WrappedHTMLElement;
++                      _label = element;
++                      _icon = new CheckBoxIcon();
++            element.appendChild(_icon.element);
++            // Add a span to allow checkbox styling
++            _styleDiv = document.createElement('div') as WrappedHTMLElement;
++            if(_checkClassName)
++                _styleDiv.setAttribute("class",_checkClassName)
++            element.appendChild(_styleDiv);
++            _textNode = document.createTextNode('') as WrappedHTMLElement;
++            element.appendChild(_textNode);
++
++            positioner = element;
++            //positioner.style.position = 'relative';
++            element.flexjs_wrapper = this;
++                      _icon.element.flexjs_wrapper = this;
++            _styleDiv.flexjs_wrapper = this;
++
++            className = 'CSSCheckBox';
++            typeNames = 'CSSCheckBox';
++
++            return element;
++        }
++
++        private var _checkClassName:String;
++        public function get checkClassName():String
++        {
++            return _checkClassName;
++        }
++        public function set checkClassName(value:String):void
++        {
++            _checkClassName = value;
++            if(_styleDiv)
++                _styleDiv.setAttribute("class",_checkClassName);
++        }
++
++        public function get text():String
++        {
++            return _textNode.nodeValue;
++        }
++
++        public function set text(value:String):void
++        {
++            _textNode.nodeValue = value;
++        }
++
++        public function get selected():Boolean
++        {
++            return (_icon.element as HTMLInputElement).checked;
++        }
++
++        public function set selected(value:Boolean):void
++        {
++           (_icon.element as HTMLInputElement).checked = value;
++        }
++    }
++
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
index 5b8e0a5,632b539..ef78a05
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
@@@ -57,6 -57,6 +57,7 @@@ package org.apache.flex.htm
       *  The CheckBox class implements the common user interface
       *  control.  The CheckBox includes its text label.
       *
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
@@@ -168,7 -153,7 +155,7 @@@
              element.appendChild(document.createTextNode(''));
  
              positioner = element;
--            positioner.style.position = 'relative';
++            //positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
                        _icon.element.flexjs_wrapper = this;
  

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Container.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Container.as
index fe35dde,ee30b7f..cbcf526
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Container.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Container.as
@@@ -19,19 -19,17 +19,18 @@@
  package org.apache.flex.html
  {
        import org.apache.flex.core.ContainerBase;
--      import org.apache.flex.core.IChrome;
--      import org.apache.flex.core.IContainer;
-     import org.apache.flex.core.ILayoutParent;
-     import org.apache.flex.core.ILayoutHost;
--      import org.apache.flex.core.IUIBase;
--    COMPILE::JS
--    {
--        import org.apache.flex.core.WrappedHTMLElement;            
--    }
++      import org.apache.flex.core.IMXMLDocument;
++      import org.apache.flex.core.ValuesManager;
        import org.apache.flex.events.Event;
++      import org.apache.flex.utils.MXMLDataInterpreter;
        
++      /**
++       * The default property uses when additional MXML content appears 
within an element's
++       * definition in an MXML file.
++       */
        [DefaultProperty("mxmlContent")]
--    
++
++      
      /**
       *  The Container class implements a basic container for
       *  other controls and containers.  The position and size
@@@ -60,6 -58,6 +59,7 @@@
       *  control and not a Container because the Alert does not
       *  support an arbitrary set of children.
       *  
++     *  @toplevel
       *  @see org.apache.flex.html.beads.layout
       *  @see org.apache.flex.html.supportClasses.ScrollingViewport
       *  @langversion 3.0
@@@ -67,7 -65,7 +67,7 @@@
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */    
-       public class Container extends ContainerBase implements ILayoutParent
 -      public class Container extends ContainerBase
++      public class Container extends ContainerBase implements IMXMLDocument
        {
          /**
           *  Constructor.
@@@ -81,35 -79,30 +81,79 @@@
                {
                        super();
                }
--
-         public function getLayoutHost():ILayoutHost
-         {
-             return view as ILayoutHost; 
-         }
-             
--        /**
--         * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
--         */
--        COMPILE::JS
--        override protected function createElement():WrappedHTMLElement
--        {
--            element = document.createElement('div') as WrappedHTMLElement;
--            
--            positioner = element;
--            
--            // absolute positioned children need a non-null
--            // position value in the parent.  It might
--            // get set to 'absolute' if the container is
--            // also absolutely positioned
--            positioner.style.position = 'relative';
--            element.flexjs_wrapper = this;
--            
--            /*addEventListener('childrenAdded',
--            runLayoutHandler);
--            addEventListener('elementRemoved',
--            runLayoutHandler);*/
--            
--            return element;
--        }        
++              
++              private var _mxmlDescriptor:Array;
++              private var _mxmlDocument:Object = this;
++              private var _initialized:Boolean;
++              
++              /**
++               * @private
++               */
++              override public function addedToParent():void
++              {
++                      if (!_initialized)
++                      {
++                              // each MXML file can also have styles in 
fx:Style block
++                              ValuesManager.valuesImpl.init(this);
++                      }
++                      
++                      super.addedToParent();
++                      
++                      if (!_initialized)
++                      {
++                              
MXMLDataInterpreter.generateMXMLInstances(_mxmlDocument, this, MXMLDescriptor);
++                              
++                              dispatchEvent(new Event("initBindings"));
++                              dispatchEvent(new Event("initComplete"));
++                              _initialized = true;
++                              
++                              //?? why is this here? childrenAdded(); //?? Is 
this needed since MXMLDataInterpreter will have already called it
++                      }
++              }
++              
++              /**
++               *  @copy org.apache.flex.core.Application#MXMLDescriptor
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function get MXMLDescriptor():Array
++              {
++                      return _mxmlDescriptor;
++              }
++              
++              /**
++               *  @private
++               */
++              public function setMXMLDescriptor(document:Object, 
value:Array):void
++              {
++                      _mxmlDocument = document;
++                      _mxmlDescriptor = value;
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.Application#generateMXMLAttributes()
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function generateMXMLAttributes(data:Array):void
++              {
++                      MXMLDataInterpreter.generateMXMLProperties(this, data);
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.ItemRendererClassFactory#mxmlContent
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public var mxmlContent:Array;
        }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ControlBar.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ControlBar.as
index da65539,da65539..588bd8c
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ControlBar.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ControlBar.as
@@@ -18,36 -18,36 +18,36 @@@
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html
  {
--      
++
        import org.apache.flex.core.IBeadLayout;
        import org.apache.flex.core.IChrome;
--      import org.apache.flex.core.IContainer;
        import org.apache.flex.core.ValuesManager;
      COMPILE::JS
      {
--        import org.apache.flex.core.WrappedHTMLElement;            
++        import org.apache.flex.core.WrappedHTMLElement;
      }
  
        /**
         *  The ControlBar class is used within a Panel as a place to position
--       *  additional controls. The ControlBar appears at the bottom of the 
++       *  additional controls. The ControlBar appears at the bottom of the
         *  org.apache.flex.html.Panel
         *  and is not part of the Panel's scrollable content area. The 
ControlBar
         *  is a Container and implements the org.apache.flex.core.IChrome 
interface, indicating that is
         *  outside of the Container's content area. The ControlBar uses the 
following
         *  beads:
--       * 
++       *
         *  org.apache.flex.core.IBeadModel: the data model for the component.
         *  org.apache.flex.core.IMeasurementBead: helps determine the overlay 
size of the ControlBar for layout.
         *  org.apache.flex.core.IBorderBead: if present, displays a border 
around the component.
         *  org.apache.flex.core.IBackgroundBead: if present, displays a solid 
background below the ControlBar.
--       *  
++       *
++     *  @toplevel
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion FlexJS 0.0
         */
--      public class ControlBar extends Container implements IContainer, IChrome
++      public class ControlBar extends Group implements IChrome
        {
                /**
                 *  constructor.
@@@ -60,40 -60,40 +60,36 @@@
                public function ControlBar()
                {
                        super();
--                      
++
                        className = "ControlBar";
                }
--              
++
                /**
                 * @private
                 */
                override public function addedToParent():void
                {
--                      super.addedToParent();  
++                      super.addedToParent();
                        
                        if( getBeadByType(IBeadLayout) == null ) {
                                var layout:IBeadLayout = new 
(ValuesManager.valuesImpl.getValue(this, "iBeadLayout")) as IBeadLayout;
                                addBead(layout);
                        }
                }
--        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
          COMPILE::JS
          override protected function createElement():WrappedHTMLElement
          {
--            element = document.createElement('div') as WrappedHTMLElement;
--            element.className = 'ControlBar';
--            element.style.display = 'inline';
--            typeNames = 'ControlBar';
--            
--            positioner = element;
--            positioner.style.position = 'relative';
--            element.flexjs_wrapper = this;
--            
++                      element = document.createElement('div') as 
WrappedHTMLElement;
++                      
++                      positioner = element;
++                      element.flexjs_wrapper = this;
++
              return element;
--        }        
++        }
  
        }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataContainer.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataContainer.as
index 5d33d55,0000000..231ba42
mode 100644,000000..100644
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataContainer.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataContainer.as
@@@ -1,255 -1,0 +1,145 @@@
 
+////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.html
 +{
++      import org.apache.flex.core.DataContainerBase;
++      
 +      import org.apache.flex.core.ContainerBaseStrandChildren;
 +      import org.apache.flex.core.IContentViewHost;
++      import org.apache.flex.core.IChild;
 +      import org.apache.flex.core.IDataProviderItemRendererMapper;
 +      import org.apache.flex.core.IFactory;
 +      import org.apache.flex.core.IItemRendererClassFactory;
-       import org.apache.flex.core.IItemRendererProvider;
++      import org.apache.flex.core.IItemRenderer;
++      import org.apache.flex.core.IItemRendererParent;
++      import org.apache.flex.core.ILayoutView;
++      import org.apache.flex.core.IList;
 +      import org.apache.flex.core.IListPresentationModel;
 +      import org.apache.flex.core.IRollOverModel;
 +      import org.apache.flex.core.IDataProviderModel;
 +      import org.apache.flex.core.ListBase;
 +      import org.apache.flex.core.UIBase;
 +      import org.apache.flex.core.ValuesManager;
 +    COMPILE::JS
 +    {
 +        import org.apache.flex.core.WrappedHTMLElement;
 +        import org.apache.flex.html.beads.ListView;
 +        import org.apache.flex.html.supportClasses.DataGroup;
 +    }
 +      import org.apache.flex.events.Event;
 +      import org.apache.flex.events.IEventDispatcher;
 +      import org.apache.flex.html.beads.models.ListPresentationModel;
-       
++      import org.apache.flex.html.beads.IListView;
++
 +      /**
 +       *  Indicates that the initialization of the list is complete.
-        *  
++       *
 +       *  @langversion 3.0
 +       *  @playerversion Flash 10.2
 +       *  @playerversion AIR 2.6
 +       *  @productversion FlexJS 0.0
 +       */
 +      [Event(name="initComplete", type="org.apache.flex.events.Event")]
-       
++
 +      /**
-        *  The List class is a component that displays multiple data items. 
The List uses
++       *  The DataContainer class is a component that displays multiple data 
items. The DataContainer uses
 +       *  the following bead types:
-        * 
++       *
 +       *  org.apache.flex.core.IBeadModel: the data model, which includes the 
dataProvider.
 +       *  org.apache.flex.core.IBeadView:  the bead that constructs the 
visual parts of the list.
 +       *  org.apache.flex.core.IBeadController: the bead that handles input 
and output.
 +       *  org.apache.flex.core.IBeadLayout: the bead responsible for the size 
and position of the itemRenderers.
 +       *  org.apache.flex.core.IDataProviderItemRendererMapper: the bead 
responsible for creating the itemRenders.
 +       *  org.apache.flex.core.IItemRenderer: the class or factory used to 
display an item in the list.
-        *  
++       *
 +       *  @langversion 3.0
 +       *  @playerversion Flash 10.2
 +       *  @playerversion AIR 2.6
 +       *  @productversion FlexJS 0.0
 +       */
-       public class DataContainer extends ListBase implements 
IItemRendererProvider
++      public class DataContainer extends DataContainerBase
 +      {
 +              /**
 +               *  constructor.
 +               *
 +               *  @langversion 3.0
 +               *  @playerversion Flash 10.2
 +               *  @playerversion AIR 2.6
 +               *  @productversion FlexJS 0.0
 +               */
 +              public function DataContainer()
 +              {
 +                      super();
-                       addEventListener("beadsAdded", beadsAddedHandler);
 +              }
-               
++
 +              /**
 +               *  The name of field within the data used for display. Each 
item of the
 +               *  data should have a property with this name.
 +               *
 +               *  @langversion 3.0
 +               *  @playerversion Flash 10.2
 +               *  @playerversion AIR 2.6
 +               *  @productversion FlexJS 0.0
 +               */
 +              public function get labelField():String
 +              {
 +                      return IDataProviderModel(model).labelField;
 +              }
 +              public function set labelField(value:String):void
 +              {
 +            IDataProviderModel(model).labelField = value;
 +              }
-               
++
 +              /**
 +               *  The data being display by the List.
 +               *
 +               *  @langversion 3.0
 +               *  @playerversion Flash 10.2
 +               *  @playerversion AIR 2.6
 +               *  @productversion FlexJS 0.0
 +               */
 +        public function get dataProvider():Object
 +        {
 +            return IDataProviderModel(model).dataProvider;
 +        }
 +        public function set dataProvider(value:Object):void
 +        {
 +            IDataProviderModel(model).dataProvider = value;
 +        }
 +
-                       
++
 +              /**
 +               *  The presentation model for the list.
 +               *
 +               *  @langversion 3.0
 +               *  @playerversion Flash 10.2
 +               *  @playerversion AIR 2.6
 +               *  @productversion FlexJS 0.0
 +               */
 +              public function get presentationModel():IListPresentationModel
 +              {
 +                      var presModel:IListPresentationModel = 
getBeadByType(IListPresentationModel) as IListPresentationModel;
 +                      if (presModel == null) {
 +                              presModel = new ListPresentationModel();
 +                              addBead(presModel);
 +                      }
 +                      return presModel;
 +              }
-               
-               /**
-                *  The default height of each cell in every column
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion FlexJS 0.0
-                */
-               public function get rowHeight():Number
-               {
-                       return presentationModel.rowHeight;
-               }
-               public function set rowHeight(value:Number):void
-               {
-                       presentationModel.rowHeight = value;
-               }
-                               
-               private var _itemRenderer:IFactory;
-               
-               /**
-                *  The class or factory used to display each item.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion FlexJS 0.0
-                */
-               public function get itemRenderer():IFactory
-               {
-                       return _itemRenderer;
-               }
-               public function set itemRenderer(value:IFactory):void
-               {
-                       _itemRenderer = value;
-               }
-               
-               /**
-                * Returns whether or not the itemRenderer property has been 
set.
-                *
-                *  @see org.apache.flex.core.IItemRendererProvider
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion FlexJS 0.0
-                */
-               public function get hasItemRenderer():Boolean
-               {
-                       var result:Boolean = false;
-                       
-                       COMPILE::SWF {
-                               result = _itemRenderer != null;
-                       }
-                       
-                       COMPILE::JS {
-                               var test:* = _itemRenderer;
-                               result = _itemRenderer !== null && test !== 
undefined;
-                       }
-                       
-                       return result;
-               }
-               
-               
-               /**
-                * @private
-                */
-               override public function addedToParent():void
-               {
-             super.addedToParent();
-                       
-                       dispatchEvent(new Event("initComplete"));
-               }
-         
-               /**
-                * @private
-                */
-           private function beadsAddedHandler(e:Event):void
-               {
-             if (getBeadByType(IDataProviderItemRendererMapper) == null)
-             {
-                 var mapper:IDataProviderItemRendererMapper = new 
(ValuesManager.valuesImpl.getValue(this, "iDataProviderItemRendererMapper")) as 
IDataProviderItemRendererMapper;
-                 addBead(mapper);
-             }
-                       var itemRendererFactory:IItemRendererClassFactory = 
getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory;
-                       if (!itemRendererFactory)
-                       {
-                               itemRendererFactory = new 
(ValuesManager.valuesImpl.getValue(this, "iItemRendererClassFactory")) as 
IItemRendererClassFactory;
-                               addBead(itemRendererFactory);
-                       }
-               }
-               
-         /**
-          * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
-          */
-         COMPILE::JS
-         override protected function createElement():WrappedHTMLElement
-         {
-             super.createElement();
-             className = 'List';
-             
-             return element;
-         }        
- 
-         /**
-          * @flexjsignorecoercion org.apache.flex.html.beads.ListView 
-          * @flexjsignorecoercion 
org.apache.flex.html.supportClasses.DataGroup 
-          */
-         COMPILE::JS
-         override public function internalChildren():Array
-         {
-             var listView:ListView = getBeadByType(ListView) as ListView;
-             var dg:DataGroup = listView.dataGroup as DataGroup;
-             var renderers:Array = dg.internalChildren();
-             return renderers;
-         };
 +      }
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
index fcb4029,c271134..fda1b46
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
@@@ -22,7 -22,6 +22,7 @@@ package org.apache.flex.htm
        import org.apache.flex.core.IDataGridModel;
        import org.apache.flex.core.IDataGridPresentationModel;
        import org.apache.flex.core.UIBase;
-     import org.apache.flex.core.ValuesManager;
++      import org.apache.flex.core.ValuesManager;
        import org.apache.flex.html.beads.models.DataGridPresentationModel;
        
        [Event(name="change", type="org.apache.flex.events.Event")]
@@@ -35,12 -34,12 +35,13 @@@
         *  view bead (usually org.apache.flex.html.beads.DataGridView) 
constructs these parts while 
         *  itemRenderer factories contruct the elements to display the data in 
each cell.
         *  
++     *  @toplevel
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion FlexJS 0.0
         */
--      public class DataGrid extends UIBase
++      public class DataGrid extends Group
        {
                /**
                 *  constructor.
@@@ -104,18 -103,8 +105,17 @@@
                {
                        return IDataGridModel(model).selectedIndex;
                }
-         public function set selectedIndex(value:int):void
-         {
-             IDataGridModel(model).selectedIndex = value;
-         }
- 
++              public function set selectedIndex(value:int):void
++              {
++                      IDataGridModel(model).selectedIndex = value;
++              }
++              
++              /**
++               * @private
++               */
++              private var _presentationModel:IDataGridPresentationModel;
                
                /**
-          * @private
-          */
-         private var _presentationModel:IDataGridPresentationModel;
-                
-         /**
                 *  The DataGrid's presentation model
                 *
                 *  @langversion 3.0
@@@ -125,22 -114,16 +125,22 @@@
                 */
                public function get 
presentationModel():IDataGridPresentationModel
                {
-             if (_presentationModel == null) {
-                 var c:Class = ValuesManager.valuesImpl.getValue(this, 
"iDataGridPresentationModel");
-                 if (c) {
-                     var presModel:Object = new c();
-                     _presentationModel = presModel as 
IDataGridPresentationModel;
-                     if (_presentationModel != null) {
-                         addBead(_presentationModel as IBead);
-                     }
-                 }
-             }
-             return _presentationModel;
-         }
-         
-         public function set 
presentationModel(value:IDataGridPresentationModel):void
-         {
-             _presentationModel = value;
 -                      var beadMod:IBead = 
getBeadByType(IDataGridPresentationModel);
 -                      var presModel:IDataGridPresentationModel;
 -                      
 -                      if (beadMod == null) {
 -                              presModel = new DataGridPresentationModel();
 -                              addBead(presModel);
 -                      } else {
 -                              presModel = beadMod as 
IDataGridPresentationModel;
++                      if (_presentationModel == null) {
++                              var c:Class = 
ValuesManager.valuesImpl.getValue(this, "iDataGridPresentationModel");
++                              if (c) {
++                                      var presModel:Object = new c();
++                                      _presentationModel = presModel as 
IDataGridPresentationModel;
++                                      if (_presentationModel != null) {
++                                              addBead(_presentationModel as 
IBead);
++                                      }
++                              }
+                       }
 -                      return presModel;
++                      
++                      return _presentationModel;
++              }
++              public function set 
presentationModel(value:IDataGridPresentationModel):void
++              {
++                      _presentationModel = value;
                }
                                
                /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateChooser.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateChooser.as
index 4f0bdfe,62b5a3e..971ed75
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateChooser.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateChooser.as
@@@ -19,7 -19,7 +19,7 @@@
  package org.apache.flex.html
  {
        import org.apache.flex.core.IDateChooserModel;
--      import org.apache.flex.core.UIBase;
++      import org.apache.flex.html.Group;
  
        /**
         * The change event is dispatched when the selectedDate is changed.
@@@ -29,12 -29,12 +29,13 @@@
        /**
         *  The DateChooser class is a component that displays a calendar.
         *
++     *  @toplevel
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion FlexJS 0.0
         */
--      public class DateChooser extends UIBase
++      public class DateChooser extends Group
        {
                /**
                 *  constructor.
@@@ -47,14 -47,11 +48,9 @@@
                public function DateChooser()
                {
                        super();
 -                      className = "DateChooser";
--
--                      // fix the DateChooser's size
--                      width = 280;
--                      height = 240;
-             
-             // default to today
-             selectedDate = new Date();
- 
++                      
++                      // default to today
++                      selectedDate = new Date();
                }
  
                /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DropDownList.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DropDownList.as
index dd069b2,dd069b2..d547f27
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DropDownList.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DropDownList.as
@@@ -23,24 -23,24 +23,25 @@@ package org.apache.flex.htm
      COMPILE::JS
      {
          import goog.events;
--        import org.apache.flex.core.WrappedHTMLElement;            
++        import org.apache.flex.core.WrappedHTMLElement;
          import org.apache.flex.html.beads.models.ArraySelectionModel;
      }
--    
++
      //--------------------------------------
      //  Events
      //--------------------------------------
--    
++
      /**
       *  Dispatched when the user selects an item.
--     *  
++     *
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */
      [Event(name="change", type="org.apache.flex.events.Event")]
--    
++
      /**
       *  The DropDownList class implements the basic equivalent of
       *  the <code>&lt;select&gt;</code> tag in HTML.
@@@ -48,23 -48,23 +49,23 @@@
       *  choose from an array of strings.  More complex controls
       *  would display icons as well as strings, or colors instead
       *  of strings or just about anything.
--     * 
--     *  The default behavior only lets the user choose one and 
++     *
++     *  The default behavior only lets the user choose one and
       *  only one item.  More complex controls would allow
       *  mutiple selection by not dismissing the dropdown as soon
       *  as a selection is made.
--     * 
--     *  
++     *
++     *
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
--     */    
++     */
        public class DropDownList extends Button
        {
          /**
           *  Constructor.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -77,12 -77,12 +78,12 @@@
                  model = new ArraySelectionModel();
              }
                }
--              
++
          /**
           *  The data set to be displayed.  Usually a simple
           *  array of strings.  A more complex component
           *  would allow more complex data and data sets.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -108,14 -108,14 +109,14 @@@
                  var n:int;
                  var opt:HTMLOptionElement;
                  var dd:HTMLSelectElement = element as HTMLSelectElement;
--                
++
                  model.dataProvider = value;
                  dp = dd.options;
                  n = dp.length;
                  for (i = 0; i < n; i++) {
                      dd.remove(0);
                  }
--                
++
                  var lf:String = labelField;
                  n = value.length;
                  for (i = 0; i < n; i++) {
@@@ -129,11 -129,11 +130,11 @@@
  
              }
          }
--        
++
          [Bindable("change")]
          /**
           *  @copy org.apache.flex.core.ISelectionModel#selectedIndex
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -156,12 -156,12 +157,12 @@@
                  (element as HTMLSelectElement).selectedIndex = 
ISelectionModel(model).selectedIndex;
              }
          }
--        
++
  
          [Bindable("change")]
          /**
           *  @copy org.apache.flex.core.ISelectionModel#selectedItem
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -184,7 -184,7 +185,7 @@@
                  (element as HTMLSelectElement).selectedIndex = 
ISelectionModel(model).selectedIndex;
              }
          }
--                        
++
          /**
           *  The name of field within the data used for display. Each item of 
the
           *  data should have a property with this name.
@@@ -202,7 -202,7 +203,7 @@@
          {
              ISelectionModel(model).labelField = value;
          }
--        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           * @flexjsignorecoercion HTMLSelectElement
@@@ -214,15 -214,15 +215,15 @@@
              (element as HTMLSelectElement).size = 1;
              goog.events.listen(element, 'change',
                  changeHandler);
--            
++
              positioner = element;
--            positioner.style.position = 'relative';
--            
++            //positioner.style.position = 'relative';
++
              element.flexjs_wrapper = this;
--            
++
              return element;
--        } 
--        
++        }
++
          /**
           * @flexjsignorecoercion HTMLSelectElement
           */

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Form.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Form.as
index d7b0459,d7b0459..96fe42a
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Form.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Form.as
@@@ -18,28 -18,28 +18,29 @@@
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html
  {
--    import org.apache.flex.core.ContainerBase;
--    
++    import org.apache.flex.html.Container;
++
      COMPILE::JS
      {
          import org.apache.flex.core.WrappedHTMLElement;
      }
--    
++
      [DefaultProperty("mxmlContent")]
  
      /**
       *  The Form class is a simple form.
--     *  
++     *
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */
--    public class Form extends ContainerBase
++    public class Form extends Container
        {
          /**
           *  Constructor.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -49,23 -49,23 +50,23 @@@
          {
              super();
          }
--        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
          COMPILE::JS
          override protected function createElement():WrappedHTMLElement
--        {HTMLFormElement
++        {
              element = document.createElement('form') as WrappedHTMLElement;
--             
++
              positioner = element;
--             
--            positioner.style.position = 'relative';
++
++            //positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
              return element;
          }
  
--        
++
          private var _action:String = "#";
  
          [Bindable("actionChange")]
@@@ -95,5 -95,5 +96,5 @@@
                  this.dispatchEvent('actionChange');
              }
          }
--    }        
--}
++    }
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Group.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Group.as
index 0000000,0000000..2b3ddb9
new file mode 100644
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Group.as
@@@ -1,0 -1,0 +1,145 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  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.html
++{
++      import org.apache.flex.core.IMXMLDocument;
++      import org.apache.flex.core.GroupBase;
++      import org.apache.flex.core.ValuesManager;
++      import org.apache.flex.events.Event;
++      import org.apache.flex.utils.MXMLDataInterpreter;
++
++      /**
++       *  Indicates that the children of the container is have been added.
++       *
++       *  @langversion 3.0
++       *  @playerversion Flash 10.2
++       *  @playerversion AIR 2.6
++       *  @productversion FlexJS 0.8
++       */
++      [Event(name="childrenAdded", type="org.apache.flex.events.Event")]
++      
++      /**
++       * The default property uses when additional MXML content appears 
within an element's
++       * definition in an MXML file.
++       */
++      [DefaultProperty("mxmlContent")]
++
++    /**
++     *  The Group class provides a light-weight container for visual 
elements. By default
++       *  the Group does not have a layout, allowing its children to be sized 
and positioned
++       *  using styles or CSS.
++     *
++     *  @toplevel
++     *  @see org.apache.flex.html.beads.layout
++     *  @see org.apache.flex.html.supportClasses.ScrollingViewport
++     *  @langversion 3.0
++     *  @playerversion Flash 10.2
++     *  @playerversion AIR 2.6
++     *  @productversion FlexJS 0.8
++     */
++      public class Group extends GroupBase implements IMXMLDocument
++      {
++        /**
++         *  Constructor.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++         */
++              public function Group()
++              {
++                      super();
++              }
++              
++              private var _mxmlDescriptor:Array;
++              private var _mxmlDocument:Object = this;
++              private var _initialized:Boolean;
++              
++              /**
++               * @private
++               */
++              override public function addedToParent():void
++              {
++                      if (!_initialized)
++                      {
++                              // each MXML file can also have styles in 
fx:Style block
++                              ValuesManager.valuesImpl.init(this);
++                      }
++                      
++                      super.addedToParent();
++                      
++                      if (!_initialized)
++                      {
++                              
MXMLDataInterpreter.generateMXMLInstances(_mxmlDocument, this, MXMLDescriptor);
++                              
++                              dispatchEvent(new Event("initBindings"));
++                              dispatchEvent(new Event("initComplete"));
++                              _initialized = true;
++                              
++                              //?? why was this added here? childrenAdded(); 
//?? Is this needed since MXMLDataInterpreter will already have called it
++                      }
++              }
++              
++              /**
++               *  @copy org.apache.flex.core.Application#MXMLDescriptor
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function get MXMLDescriptor():Array
++              {
++                      return _mxmlDescriptor;
++              }
++              
++              /**
++               *  @private
++               */
++              public function setMXMLDescriptor(document:Object, 
value:Array):void
++              {
++                      _mxmlDocument = document;
++                      _mxmlDescriptor = value;
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.Application#generateMXMLAttributes()
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public function generateMXMLAttributes(data:Array):void
++              {
++                      MXMLDataInterpreter.generateMXMLProperties(this, data);
++              }
++              
++              /**
++               *  @copy 
org.apache.flex.core.ItemRendererClassFactory#mxmlContent
++               *  
++               *  @langversion 3.0
++               *  @playerversion Flash 10.2
++               *  @playerversion AIR 2.6
++               *  @productversion FlexJS 0.8
++               */
++              public var mxmlContent:Array;
++      }
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HContainer.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HContainer.as
index 9f38883,9f38883..2a19648
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HContainer.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HContainer.as
@@@ -38,12 -38,12 +38,13 @@@ package org.apache.flex.htm
       *  </basic:Container>
       *  </code>
       *  
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
       */    
--      public class HContainer extends Container implements IContainer
++      public class HContainer extends Container
        {
          /**
           *  Constructor.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HRule.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HRule.as
index 7c2fb2f,7c2fb2f..3017a34
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HRule.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/HRule.as
@@@ -17,26 -17,26 +17,27 @@@
  //
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html
--{     
++{
        import org.apache.flex.core.UIBase;
      COMPILE::JS
      {
--        import org.apache.flex.core.WrappedHTMLElement;            
++        import org.apache.flex.core.WrappedHTMLElement;
      }
--      
++
      /**
       *  The HRule class displays a horizontal line
       *
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
--     */    
++     */
        public class HRule extends UIBase
        {
          /**
           *  Constructor.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -46,7 -46,7 +47,7 @@@
                {
                        super();
          }
--        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
@@@ -55,9 -55,9 +56,9 @@@
          {
              element = document.createElement('hr') as WrappedHTMLElement;
              positioner = element;
--            positioner.style.position = 'relative';
++            //positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
              return element;
--        }        
++        }
        }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/Image.as
index dc53a51,9268f9d..6b206c1
--- 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
@@@ -18,27 -18,28 +18,23 @@@
  
////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html
  {
-     import org.apache.flex.core.ImageBase;
 -      import org.apache.flex.core.IImageModel;
 -      import org.apache.flex.core.UIBase;
++      import org.apache.flex.core.ImageBase;
++
      COMPILE::JS
      {
--        import org.apache.flex.core.WrappedHTMLElement;            
--        import org.apache.flex.html.beads.models.ImageModel;
--        import org.apache.flex.html.beads.ImageView;
++        import org.apache.flex.core.WrappedHTMLElement;
      }
--      
--      /**
--       *  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 source 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 Image extends UIBase
++
++        /**
++         *  Load Images.
++         *
++         *  @toplevel
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.0
++         */
 +      public class Image extends ImageBase
        {
                /**
                 *  constructor.
@@@ -52,7 -53,25 +48,7 @@@
                {
                        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 src():String
 -              {
 -                      return (model as IImageModel).url;
 -              }
 -              public function set src(value:String):void
 -              {
 -                      (model as IImageModel).url = value;
 -              }
 -        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
@@@ -62,26 -81,13 +58,25 @@@
              element = document.createElement('img') as WrappedHTMLElement;
              element.className = 'Image';
              typeNames = 'Image';
--            
++
              positioner = element;
--            positioner.style.position = 'relative';
++            //positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
--         
-             return element;
-         }
-         
-         COMPILE::JS
-         override public function get imageElement():Element
-         {
++
              return element;
 -        }        
 +        }
-         
-         COMPILE::JS
-         override public function 
applyImageData(binaryDataAsString:String):void
-         {
-             (element as HTMLImageElement).src = binaryDataAsString;
-         }
 +
++              COMPILE::JS
++              override public function get imageElement():Element
++              {
++                      return element;
++              }
++
++              COMPILE::JS
++              override public function 
applyImageData(binaryDataAsString:String):void
++              {
++                      (element as HTMLImageElement).src = binaryDataAsString;
++              }
  
        }
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9fd9b78b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ImageAndTextButton.as
----------------------------------------------------------------------
diff --cc 
frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ImageAndTextButton.as
index 8bdcc6a,8bdcc6a..ccdbc3b
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ImageAndTextButton.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/ImageAndTextButton.as
@@@ -22,23 -22,23 +22,24 @@@ package org.apache.flex.htm
      import org.apache.flex.html.beads.models.ImageAndTextModel;
      COMPILE::JS
      {
--        import org.apache.flex.core.WrappedHTMLElement;            
++        import org.apache.flex.core.WrappedHTMLElement;
      }
--      
++
      /**
       *  The ImageTextButton class implements a basic button that
       *  displays and image and text.
--     *  
++     *
++     *  @toplevel
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
       *  @productversion FlexJS 0.0
--     */    
++     */
        public class ImageAndTextButton extends TextButton
        {
          /**
           *  Constructor.
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -48,7 -48,7 +49,7 @@@
                {
                        super();
                }
--              
++
          /**
           *  @private
           */
@@@ -57,7 -57,7 +58,7 @@@
          {
              return ImageAndTextModel(model).text;
          }
--        
++
          /**
           *  @private
           */
@@@ -67,13 -67,13 +68,13 @@@
              ImageAndTextModel(model).text = value;
              COMPILE::JS
              {
--                setInnerHTML();                    
++                setInnerHTML();
              }
          }
--        
++
          /**
           *  The URL of an icon to use in the button
--         *  
++         *
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
@@@ -83,7 -83,7 +84,7 @@@
          {
              return ImageAndTextModel(model).image;
          }
--        
++
          /**
           *  @private
           */
@@@ -92,10 -92,10 +93,10 @@@
              ImageAndTextModel(model).image = value;
              COMPILE::JS
              {
--                setInnerHTML();                    
++                setInnerHTML();
              }
          }
--        
++
          /**
           * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
           */
@@@ -104,13 -104,13 +105,13 @@@
          {
              element = document.createElement('button') as WrappedHTMLElement;
              element.setAttribute('type', 'button');
--            
++
              positioner = element;
--            positioner.style.position = 'relative';
++            //positioner.style.position = 'relative';
              element.flexjs_wrapper = this;
--            
++
              return element;
--        }        
++        }
  
          /**
           */

Reply via email to