You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/05/01 03:48:10 UTC
[11/50] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - Merge
branch 'develop' into dual. Clean build. Now to get it to run
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;
-- }
++ }
/**
*/