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><select></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; -- } ++ } /** */
