add optional flag to addElement to control notifications
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/776bfce5 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/776bfce5 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/776bfce5 Branch: refs/heads/develop Commit: 776bfce596dc9d289e3a6c3e139c4ee1d93ac193 Parents: b91788a Author: Alex Harui <[email protected]> Authored: Wed Oct 29 13:44:42 2014 -0700 Committer: Alex Harui <[email protected]> Committed: Wed Oct 29 13:44:42 2014 -0700 ---------------------------------------------------------------------- .../supportClasses/optimized/SVGChartDataGroup.as | 4 ++-- .../FlexJSUI/src/org/apache/flex/core/Application.as | 6 +++--- .../FlexJSUI/src/org/apache/flex/core/IContentView.as | 2 +- .../FlexJSUI/src/org/apache/flex/core/IParent.as | 9 ++++++--- .../FlexJSUI/src/org/apache/flex/core/UIBase.as | 8 ++++---- .../src/org/apache/flex/createjs/core/ViewBase.as | 6 +++--- .../FlexJSUI/src/org/apache/flex/html/Container.as | 12 +++++++++--- .../src/org/apache/flex/html/beads/PanelView.as | 2 +- .../apache/flex/html/beads/PanelWithControlBarView.as | 6 +++--- .../apache/flex/html/beads/ScrollingContainerView.as | 2 +- .../src/org/apache/flex/utils/MXMLDataInterpreter.as | 2 +- 11 files changed, 34 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as index c1a48d1..6f7d7b4 100644 --- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as +++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as @@ -120,7 +120,7 @@ package org.apache.flex.charts.supportClasses.optimized * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - override public function addElement(value:Object):void + override public function addElement(value:Object, dispatchEvent:Boolean = true):void { _children.push(value); @@ -137,7 +137,7 @@ package org.apache.flex.charts.supportClasses.optimized * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - override public function addElementAt(value:Object, index:int):void + override public function addElementAt(value:Object, index:int, dispatchEvent:Boolean = true):void { if (index >= _children.length) _children.push(value); else _children.splice(index, 0, value); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as index 7ff9660..9b9506e 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as @@ -340,7 +340,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function addElement(c:Object):void + public function addElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -359,7 +359,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function addElementAt(c:Object, index:int):void + public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -407,7 +407,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function removeElement(c:Object):void + public function removeElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as index 692d85c..486a672 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as @@ -32,7 +32,7 @@ package org.apache.flex.core function get height():Number; function set height(value:Number):void; - function addElement(value:Object):void; + function addElement(value:Object, dispatchEvent:Boolean = true):void; function removeAllElements():void; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IParent.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IParent.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IParent.as index e9c46d3..d90588a 100755 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IParent.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IParent.as @@ -34,26 +34,28 @@ package org.apache.flex.core * Add a component to the parent. * * @param c The subcomponent to add. + * @param dispatchEvent Whether to dispatch an event after adding the child. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - function addElement(c:Object):void; + function addElement(c:Object, dispatchEvent:Boolean = true):void; /** * Add a component to the parent. * * @param c The subcomponent to add. * @param c The index where the subcomponent should be added. + * @param dispatchEvent Whether to dispatch an event after adding the child. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - function addElementAt(c:Object, index:int):void; + function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void; /** * Gets the index of this subcomponent. @@ -72,13 +74,14 @@ package org.apache.flex.core * Remove a component from the parent. * * @param c The subcomponent to remove. + * @param dispatchEvent Whether to dispatch an event after removing the child. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - function removeElement(c:Object):void; + function removeElement(c:Object, dispatchEvent:Boolean = true):void; /** * The number of elements in the parent. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as index deb1c2f..e837e36 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as @@ -24,7 +24,7 @@ package org.apache.flex.core import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; import org.apache.flex.events.MouseEvent; - import org.apache.flex.events.utils.MouseEventConverter; + import org.apache.flex.events.utils.MouseEventConverter; /** * Set a different class for click events so that @@ -750,7 +750,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function addElement(c:Object):void + public function addElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -769,7 +769,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function addElementAt(c:Object, index:int):void + public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -817,7 +817,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function removeElement(c:Object):void + public function removeElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) removeChild(IUIBase(c).element as DisplayObject); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/createjs/core/ViewBase.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/createjs/core/ViewBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/createjs/core/ViewBase.as index 9d7fe95..d3ffe23 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/createjs/core/ViewBase.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/createjs/core/ViewBase.as @@ -61,12 +61,12 @@ package org.apache.flex.createjs.core return _applicationModel; } - public function addElement(c:Object):void + public function addElement(c:Object, dispatchEvent:Boolean = true):void { addChild(c as DisplayObject); } - public function addElementAt(c:Object, index:int):void + public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void { addChildAt(c as DisplayObject, index); } @@ -81,7 +81,7 @@ package org.apache.flex.createjs.core return getChildIndex(c as DisplayObject); } - public function removeElement(c:Object):void + public function removeElement(c:Object, dispatchEvent:Boolean = true):void { removeChild(c as DisplayObject); } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as index 9ae090a..70caf45 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as @@ -105,7 +105,7 @@ package org.apache.flex.html /** * @private */ - override public function addElement(c:Object):void + override public function addElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -126,12 +126,14 @@ package org.apache.flex.html actualParent.addChild(c as DisplayObject); } } + if (dispatchEvent) + this.dispatchEvent(new Event("childrenAdded")); } /** * @private */ - override public function addElementAt(c:Object, index:int):void + override public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void { if (c is IUIBase) { @@ -151,17 +153,21 @@ package org.apache.flex.html actualParent.addChildAt(c as DisplayObject, index); } } + if (dispatchEvent) + this.dispatchEvent(new Event("childrenAdded")); } /** * @private */ - override public function removeElement(c:Object):void + override public function removeElement(c:Object, dispatchEvent:Boolean = true):void { if (c is IUIBase) actualParent.removeChild(IUIBase(c).element as DisplayObject); else actualParent.removeChild(c as DisplayObject); + if (dispatchEvent) + this.dispatchEvent(new Event("childrenRemoved")); } /** http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelView.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelView.as index c832a13..dac93ad 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelView.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelView.as @@ -97,7 +97,7 @@ package org.apache.flex.html.beads // any changes to values in the Panel's model that correspond values in the TitleBar will // be picked up automatically by the TitleBar. titleBar.model = host.model; - host.addElement(titleBar); + host.addElement(titleBar, false); titleBar.addEventListener("heightChanged", changeHandler); if (isNaN(host.explicitWidth) && isNaN(host.percentWidth)) titleBar.addEventListener("widthChanged", changeHandler); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelWithControlBarView.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelWithControlBarView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelWithControlBarView.as index 338c616..0ea7b35 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelWithControlBarView.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/PanelWithControlBarView.as @@ -107,17 +107,17 @@ package org.apache.flex.html.beads // any changes to values in the Panel's model that correspond values in the TitleBar will // be picked up automatically by the TitleBar. titleBar.model = UIBase(_strand).model as ITitleBarModel; - Container(_strand).addElement(titleBar); + Container(_strand).addElement(titleBar, false); var controlBarItems:Array = IPanelModel(UIBase(_strand).model).controlBar; if( controlBarItems && controlBarItems.length > 0 ) { _controlBar = new ControlBar(); for each(var comp:IUIBase in controlBarItems) { - _controlBar.addElement(comp); + _controlBar.addElement(comp, false); } - Container(_strand).addElement(controlBar); + Container(_strand).addElement(controlBar, false); } layoutChromeElements(); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ScrollingContainerView.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ScrollingContainerView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ScrollingContainerView.as index e9b424a..b6098cc 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ScrollingContainerView.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ScrollingContainerView.as @@ -210,7 +210,7 @@ package org.apache.flex.html.beads vsb = new ScrollBar(); vsb.model = _vScrollBarModel; vsb.width = 16; - IParent(_strand).addElement(vsb); + IParent(_strand).addElement(vsb, false); return vsb; } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/776bfce5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as index f9af9e3..ef3d3e4 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as @@ -260,7 +260,7 @@ public class MXMLDataInterpreter } if (parent && comp is DisplayObject) { - parent.addElement(comp); + parent.addElement(comp, !(comp is IContainer)); } if (children)
