Cleaned up unused or unnecessary event listeners.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f4138d09 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f4138d09 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f4138d09 Branch: refs/heads/dual Commit: f4138d09434cfa192d2fe38339ec98a26179fdd6 Parents: 7f29a98 Author: Peter Ent <[email protected]> Authored: Sun Apr 9 17:26:43 2017 -0400 Committer: Peter Ent <[email protected]> Committed: Sun Apr 9 17:26:43 2017 -0400 ---------------------------------------------------------------------- .../org/apache/flex/charts/beads/ChartView.as | 20 ++-- .../apache/flex/utils/MXMLDataInterpreter.as | 6 +- .../flex/org/apache/flex/core/ContainerBase.as | 2 +- .../org/apache/flex/core/DataContainerBase.as | 88 +++++++++++++--- .../main/flex/org/apache/flex/core/GroupBase.as | 14 ++- .../src/main/flex/org/apache/flex/core/View.as | 2 +- .../main/flex/org/apache/flex/html/Container.as | 5 +- .../flex/org/apache/flex/html/DataContainer.as | 65 +----------- .../src/main/flex/org/apache/flex/html/Group.as | 2 +- .../flex/org/apache/flex/html/MXMLBeadView.as | 104 +++++++++---------- .../org/apache/flex/html/beads/ContainerView.as | 24 +---- .../apache/flex/html/beads/DataContainerView.as | 40 +++++-- .../DataItemRendererFactoryForArrayData.as | 3 +- .../DataItemRendererFactoryForArrayList.as | 3 +- .../DataItemRendererFactoryForColumnData.as | 4 +- .../org/apache/flex/html/beads/GroupView.as | 67 ++++++++---- .../flex/org/apache/flex/html/beads/ListView.as | 75 ++++++++----- .../org/apache/flex/html/beads/PanelView.as | 2 + .../flex/html/beads/PanelWithControlBarView.as | 1 + .../TextItemRendererFactoryForArrayData.as | 3 +- ...extItemRendererFactoryForStringVectorData.as | 4 +- 21 files changed, 305 insertions(+), 229 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as index 9ce64a9..0d089c6 100644 --- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as +++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as @@ -92,9 +92,19 @@ package org.apache.flex.charts.beads { super.completeSetup(); + performLayout(null); + } + + /** + * @private + */ + override protected function beadsAddedHandler(event:Event):void + { + super.beadsAddedHandler(event); + dataModel = _strand.getBeadByType(IChartDataModel) as IChartDataModel; dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); - + var haxis:IHorizontalAxisBead = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead; if (haxis && _horizontalAxisGroup == null) { var m1:Class = ValuesManager.valuesImpl.getValue(_strand, "iHorizontalAxisGroup"); @@ -115,14 +125,6 @@ package org.apache.flex.charts.beads } /** - * @private - */ - override protected function beadsAddedHandler(event:Event):void - { - super.beadsAddedHandler(event); - } - - /** * The IAxisGroup that represents the horizontal axis. * * @langversion 3.0 http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as index 058c5b8..6f24181 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as @@ -337,9 +337,9 @@ public class MXMLDataInterpreter */ public static function generateMXMLInstances(document:Object, parent:IParent, data:Array):void { - if (!data) return; - - generateMXMLArray(document, parent, data); + if (data != null) { + generateMXMLArray(document, parent, data); + } // maybe we can remove this. All IContainers should be IMXMLDocuments? if (parent is IContainer) { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as index 7f0be01..0dcb0e3 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as @@ -66,7 +66,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class ContainerBase extends GroupBase implements IContainer, IStrandPrivate + public class ContainerBase extends GroupBase implements IStrandPrivate { /** * Constructor. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/DataContainerBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/DataContainerBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/DataContainerBase.as index 6d8988f..0f03f67 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/DataContainerBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/DataContainerBase.as @@ -19,6 +19,7 @@ package org.apache.flex.core { import org.apache.flex.core.ValuesManager; + import org.apache.flex.html.beads.IListView; import org.apache.flex.events.Event; import org.apache.flex.events.ItemAddedEvent; import org.apache.flex.events.ItemClickedEvent; @@ -46,7 +47,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class DataContainerBase extends ContainerBase implements IItemRendererParent + public class DataContainerBase extends ContainerBase implements IItemRendererParent, IList { /** * Constructor. @@ -58,9 +59,7 @@ package org.apache.flex.core */ public function DataContainerBase() { - super(); - - addEventListener("beadsAdded", beadsAddedHandler); + super(); } /* @@ -94,14 +93,10 @@ package org.apache.flex.core super.addedToParent(); - dispatchEvent(new Event("initComplete")); - } - - /** - * @private - */ - private function beadsAddedHandler(e:Event):void - { + // Even though super.addedToParent dispatched "beadsAdded", DataContainer still needs its data mapper + // and item factory beads. These beads are added after super.addedToParent is called in case substitutions + // were made; these are just defaults extracted from CSS. + if (getBeadByType(IDataProviderItemRendererMapper) == null) { var mapper:IDataProviderItemRendererMapper = new (ValuesManager.valuesImpl.getValue(this, "iDataProviderItemRendererMapper")) as IDataProviderItemRendererMapper; @@ -113,6 +108,75 @@ package org.apache.flex.core itemRendererFactory = new (ValuesManager.valuesImpl.getValue(this, "iItemRendererClassFactory")) as IItemRendererClassFactory; addBead(itemRendererFactory); } + + dispatchEvent(new Event("initComplete")); + } + + /* + * IList + */ + + /** + * Returns the sub-component that parents all of the item renderers. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get dataGroup():IItemRendererParent + { + // The JS-side's view.dataGroup is actually this instance of DataContainerBase + return (view as IListView).dataGroup; + } + + /* + * IItemRendererProvider + */ + + 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; } /* http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as index 0c2797b..e4dfb1f 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as @@ -72,7 +72,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.8 */ - public class GroupBase extends UIBase implements IStatesObject, ILayoutParent, ILayoutView, IContentViewHost + public class GroupBase extends UIBase implements IStatesObject, IContainer, ILayoutParent, ILayoutView, IContentViewHost { /** * Constructor. @@ -100,6 +100,10 @@ package org.apache.flex.core return element; } + + /* + * IContainer + */ /** * @private @@ -109,6 +113,10 @@ package org.apache.flex.core dispatchEvent(new Event("childrenAdded")); } + /* + * Utility + */ + /** * Dispatches a "layoutNeeded" event * @@ -122,6 +130,10 @@ package org.apache.flex.core dispatchEvent( new Event("layoutNeeded") ); } + /* + * ILayoutParent + */ + /** * Returns the ILayoutHost which is its view. From ILayoutParent. * http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as index 4f083b4..27882f3 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as @@ -71,7 +71,7 @@ package org.apache.flex.core dispatchEvent(new Event("initComplete")); _initialized = true; - childrenAdded(); + // - why was this added here? childrenAdded(); //?? Is this necessary since MXMLDataInterpreter will already have called it } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as index eb39c88..cbcf526 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as @@ -18,7 +18,6 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html { - import org.apache.flex.core.IContainer; import org.apache.flex.core.ContainerBase; import org.apache.flex.core.IMXMLDocument; import org.apache.flex.core.ValuesManager; @@ -68,7 +67,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class Container extends ContainerBase implements IMXMLDocument, IContainer + public class Container extends ContainerBase implements IMXMLDocument { /** * Constructor. @@ -108,7 +107,7 @@ package org.apache.flex.html dispatchEvent(new Event("initComplete")); _initialized = true; - childrenAdded(); + //?? why is this here? childrenAdded(); //?? Is this needed since MXMLDataInterpreter will have already called it } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as index ec74e3b..231ba42 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as @@ -73,7 +73,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class DataContainer extends DataContainerBase implements IList + public class DataContainer extends DataContainerBase { /** * constructor. @@ -141,68 +141,5 @@ package org.apache.flex.html } return presModel; } - - /* - * IList and IItemRendererProvider - */ - - /** - * Returns the sub-component that parents all of the item renderers. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get dataGroup():IItemRendererParent - { - //return this; - return (view as IListView).dataGroup; - } - - 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; - } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as index 2825f43..2b3ddb9 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as @@ -93,7 +93,7 @@ package org.apache.flex.html dispatchEvent(new Event("initComplete")); _initialized = true; - childrenAdded(); + //?? why was this added here? childrenAdded(); //?? Is this needed since MXMLDataInterpreter will already have called it } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as index 4f19b10..4bfa105 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as @@ -19,7 +19,7 @@ package org.apache.flex.html { import org.apache.flex.states.State; - + import org.apache.flex.core.IBead; import org.apache.flex.core.ILayoutHost; import org.apache.flex.core.IParent; @@ -33,12 +33,12 @@ package org.apache.flex.html import org.apache.flex.utils.MXMLDataInterpreter; [DefaultProperty("mxmlContent")] - + /** * The MXMLBeadView class extends ContainerView * and adds support for databinding and specification * of children in MXML. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -48,7 +48,7 @@ package org.apache.flex.html { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -58,12 +58,12 @@ package org.apache.flex.html { super(); } - + [Bindable("strandChanged")] /** * An MXMLBeadView doesn't create its children until it is added to * the strand. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -74,21 +74,21 @@ package org.apache.flex.html super.strand = value; // each MXML file can also have styles in fx:Style block ValuesManager.valuesImpl.init(this); - - dispatchEvent(new Event("strandChanged")); - + + dispatchEvent(new Event("strandChanged")); + for each (var bead:IBead in beads) addBead(bead); - + dispatchEvent(new org.apache.flex.events.Event("beadsAdded")); MXMLDataInterpreter.generateMXMLInstances(this, IParent(value), MXMLDescriptor); - - dispatchEvent(new Event("initBindings")) - dispatchEvent(new Event("initComplete")) + dispatchEvent(new Event("childrenAdded")); + dispatchEvent(new Event("initBindings")); + dispatchEvent(new Event("initComplete")); } - + [Bindable("__NoChangeEvent__")] /** * The model object. @@ -97,10 +97,10 @@ package org.apache.flex.html { return _strand["model"]; } - + /** * @copy org.apache.flex.core.Application#MXMLDescriptor - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -110,10 +110,10 @@ package org.apache.flex.html { return null; } - + /** * @copy org.apache.flex.core.Application#generateMXMLAttributes() - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -123,23 +123,23 @@ package org.apache.flex.html { 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.0 */ public var mxmlContent:Array; - + 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 @@ -149,7 +149,7 @@ package org.apache.flex.html { return _states; } - + /** * @private */ @@ -157,7 +157,7 @@ package org.apache.flex.html { _states = value; _currentState = _states[0].name; - + try{ if (getBeadByType(IStatesImpl) == null) addBead(new (ValuesManager.valuesImpl.getValue(this, "iStatesImpl")) as IBead); @@ -167,19 +167,19 @@ package org.apache.flex.html { COMPILE::SWF { - trace(e.message); + 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 @@ -194,13 +194,13 @@ package org.apache.flex.html } 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 @@ -208,9 +208,9 @@ package org.apache.flex.html */ public function get currentState():String { - return _currentState; + return _currentState; } - + /** * @private */ @@ -220,12 +220,12 @@ package org.apache.flex.html _currentState = value; dispatchEvent(event); } - + private var _transitions:Array; - + /** * The array of transitions. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -233,48 +233,48 @@ package org.apache.flex.html */ public function get transitions():Array { - return _transitions; + return _transitions; } - + /** * @private */ public function set transitions(value:Array):void { - _transitions = value; + _transitions = value; } /** * @copy org.apache.flex.core.Application#beads - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ public var beads:Array; - + private var _beads:Array; - + /** * @copy org.apache.flex.core.IStrand#addBead() - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 - */ + */ public function addBead(bead:IBead):void { if (!_beads) _beads = []; _beads.push(bead); - bead.strand = this; + bead.strand = this; } - + /** * @copy org.apache.flex.core.IStrand#getBeadByType() - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -289,16 +289,16 @@ package org.apache.flex.html } return null; } - + /** * @copy org.apache.flex.core.IStrand#removeBead() - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function removeBead(value:IBead):IBead + public function removeBead(value:IBead):IBead { var n:int = _beads.length; for (var i:int = 0; i < n; i++) http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as index 9d9fb9a..4de5634 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as @@ -167,10 +167,6 @@ package org.apache.flex.html.beads // when the first layout is complete, set up listeners for changes // to the childrens' sizes. host.addEventListener("layoutComplete", childrenChangedHandler); - - host.addEventListener("widthChanged", resizeHandler); - host.addEventListener("heightChanged", resizeHandler); - host.addEventListener("sizeChanged", resizeHandler); } /** @@ -286,7 +282,7 @@ package org.apache.flex.html.beads * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - protected function resizeHandler(event:Event):void + override protected function resizeHandler(event:Event):void { if (!adjusting) { performLayout(event); @@ -315,24 +311,6 @@ package org.apache.flex.html.beads child.addEventListener("sizeChanged", childResizeHandler); } } - - /** - * This event handles changes to the size of children of the container by running - * the layout again and adjusting the size of the container or viewport as necessary. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - protected function childResizeHandler(event:Event):void - { - // during this process we don't want the layout to trigger - // an endless event chain should any children get resized - // by the layout. - if (layoutRunning) return; - performLayout(event); - } } COMPILE::JS http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as index 0dfdb0c..36ed489 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as @@ -62,6 +62,22 @@ package org.apache.flex.html.beads super(); } + /** + * @copy org.apache.flex.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + override public function set strand(value:IStrand):void + { + _strand = value; + super.strand = value; + + host.addEventListener("beadsAdded", beadsAddedHandler); + } + protected var dataModel:IDataProviderModel; /** @@ -72,14 +88,19 @@ package org.apache.flex.html.beads return super.contentView as IItemRendererParent; } - override protected function beadsAddedHandler(event:Event):void + protected function beadsAddedHandler(event:Event):void { - dataModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; host.addEventListener("itemsCreated", itemsCreatedHandler); dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); - - super.beadsAddedHandler(event); + } + + /** + * @private + */ + override protected function handleInitComplete(event:Event):void + { + super.handleInitComplete(event); } /** @@ -129,6 +150,8 @@ package org.apache.flex.html.beads { _strand = value; super.strand = value; + + host.addEventListener("beadsAdded", beadsAddedHandler); } override protected function completeSetup():void @@ -142,14 +165,17 @@ package org.apache.flex.html.beads host.addEventListener("itemsCreated", itemsCreatedHandler); } - override protected function beadsAddedHandler(event:Event):void + protected function beadsAddedHandler(event:Event):void { - super.beadsAddedHandler(event); - dataModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); } + override protected function handleInitComplete(event:Event):void + { + super.handleInitComplete(event); + } + /** * The area holding the itemRenderers. * http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as index 523e8d0..bcd837b 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as @@ -87,7 +87,6 @@ package org.apache.flex.html.beads public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("beadsAdded",finishSetup); IEventDispatcher(value).addEventListener("initComplete",finishSetup); } @@ -100,6 +99,8 @@ package org.apache.flex.html.beads dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); labelField = dataProviderModel.labelField; + // if the host component inherits from DataContainerBase, the itemRendererClassFactory will + // already have been loaded by DataContainerBase.addedToParent function. _itemRendererFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory; if (itemRendererFactory == null) { _itemRendererFactory = new (ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory")) as IItemRendererClassFactory; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as index 8d669dd..c35f07f 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as @@ -84,7 +84,6 @@ package org.apache.flex.html.beads public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(_strand).addEventListener("beadsAdded", finishSetup); IEventDispatcher(_strand).addEventListener("initComplete", finishSetup); } @@ -94,6 +93,8 @@ package org.apache.flex.html.beads dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); labelField = dataProviderModel.labelField; + // if the host component inherits from DataContainerBase, the itemRendererClassFactory will + // already have been loaded by DataContainerBase.addedToParent function. _itemRendererFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory; if (itemRendererFactory == null) { _itemRendererFactory = new (ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory")) as IItemRendererClassFactory; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForColumnData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForColumnData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForColumnData.as index 64a2240..554a9c9 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForColumnData.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForColumnData.as @@ -70,7 +70,6 @@ package org.apache.flex.html.beads public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("beadsAdded",finishSetup); IEventDispatcher(value).addEventListener("initComplete",finishSetup); } @@ -82,7 +81,8 @@ package org.apache.flex.html.beads selectionModel = _strand.getBeadByType(IDataGridModel) as IDataGridModel; selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); - + // if the host component inherits from DataContainerBase, the itemRendererClassFactory will + // already have been loaded by DataContainerBase.addedToParent function. _itemRendererFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory; if (itemRendererFactory == null) { _itemRendererFactory = new (ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory")) as IItemRendererClassFactory; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as index e4cab81..c3351a5 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as @@ -115,21 +115,28 @@ package org.apache.flex.html.beads displayBackgroundAndBorder(host as UIBase); } - // listen for initComplete to signal that the strand is set with its size - // and beads. - host.addEventListener("beadsAdded", beadsAddedHandler); + // listen for initComplete to signal that the strand has been initialized + // with its beads and children. + host.addEventListener("initComplete", handleInitComplete); + + // listen for when children have been added so additional event listeners + // can be placed upon them. + host.addEventListener("childrenAdded", handleChildrenAdded); + + // listen for requests to run the layout. + host.addEventListener("layoutNeeded", performLayout); } /** * Handles the initComplete event by completing the setup and kicking off the - * presentation of the Container. + * presentation of the contents. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.8 */ - protected function beadsAddedHandler(event:Event):void + protected function handleInitComplete(event:Event):void { var ilc:ILayoutChild = host as ILayoutChild; // Complete the setup if the height is sized to content or has been explicitly set @@ -137,9 +144,6 @@ package org.apache.flex.html.beads if ((ilc.isHeightSizedToContent() || !isNaN(ilc.explicitHeight) || !isNaN(ilc.percentHeight)) && (ilc.isWidthSizedToContent() || !isNaN(ilc.explicitWidth) || !isNaN(ilc.percentWidth))) { completeSetup(); - - var num:Number = contentView.numElements; - if (num > 0) performLayout(event); } else { // otherwise, wait until the unknown sizes have been set and then finish @@ -163,6 +167,7 @@ package org.apache.flex.html.beads host.removeEventListener("sizeChanged", deferredSizeHandler); host.removeEventListener("widthChanged", deferredSizeHandler); host.removeEventListener("heightChanged", deferredSizeHandler); + completeSetup(); var num:Number = contentView.numElements; @@ -183,16 +188,10 @@ package org.apache.flex.html.beads */ protected function completeSetup():void { - // set up listeners for when children are added or there is a specific request - // to perform the layout again. - host.addEventListener("childrenAdded", handleChildrenAdded); - host.addEventListener("layoutNeeded", performLayout); - host.addEventListener("viewCreated", viewCreatedHandler); - // listen for changes to strand's size and rerun the layout - host.addEventListener("sizeChanged", performLayout); - host.addEventListener("widthChanged", performLayout); - host.addEventListener("heightChanged", performLayout); + host.addEventListener("sizeChanged", resizeHandler); + host.addEventListener("widthChanged", resizeHandler); + host.addEventListener("heightChanged", resizeHandler); } /** @@ -222,13 +221,39 @@ package org.apache.flex.html.beads var n:Number = contentView.numElements; for(var i:int=0; i < n; i++) { var child:IEventDispatcher = contentView.getElementAt(i) as IEventDispatcher; - child.addEventListener("widthChanged", performLayout); - child.addEventListener("heightChanged", performLayout); - child.addEventListener("sizeChanged", performLayout); + child.addEventListener("widthChanged", childResizeHandler); + child.addEventListener("heightChanged", childResizeHandler); + child.addEventListener("sizeChanged", childResizeHandler); } } - performLayout(event); + performLayout(event); + } + + /** + * Invoked in response to the strand being resized. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + protected function resizeHandler(event:Event):void + { + performLayout(event); + } + + /** + * Invoked in response to any child being resized. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + protected function childResizeHandler(event:Event):void + { + performLayout(event); } /** http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as index 4087f1c..0f73421 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as @@ -17,7 +17,7 @@ // //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html.beads -{ +{ import org.apache.flex.core.BeadViewBase; import org.apache.flex.core.ContainerBase; import org.apache.flex.core.IBead; @@ -47,10 +47,10 @@ package org.apache.flex.html.beads import org.apache.flex.html.supportClasses.ScrollBar; /** - * The List class creates the visual elements of the org.apache.flex.html.List - * component. A List consists of the area to display the data (in the dataGroup), any + * The List class creates the visual elements of the org.apache.flex.html.List + * component. A List consists of the area to display the data (in the dataGroup), any * scrollbars, and so forth. - * + * * @viewbead * @langversion 3.0 * @playerversion Flash 10.2 @@ -64,21 +64,23 @@ package org.apache.flex.html.beads { super(); } - + protected var listModel:ISelectionModel; - + protected var lastSelectedIndex:int = -1; - - override protected function beadsAddedHandler(event:Event):void + + /** + * @private + */ + override protected function handleInitComplete(event:Event):void { - listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; listModel.addEventListener("selectedIndexChanged", selectionChangeHandler); - //listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); - - super.beadsAddedHandler(event); + listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); + + super.handleInitComplete(event); } - + protected function selectionChangeHandler(event:Event):void { if (lastSelectedIndex != -1) @@ -93,8 +95,28 @@ package org.apache.flex.html.beads } lastSelectedIndex = listModel.selectedIndex; } + + protected var lastRollOverIndex:int = -1; + + /** + * @private + */ + protected function rollOverIndexChangeHandler(event:Event):void + { + if (lastRollOverIndex != -1) + { + var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer; + ir.hovered = false; + } + if (IRollOverModel(listModel).rollOverIndex != -1) + { + ir = dataGroup.getItemRendererForIndex(IRollOverModel(listModel).rollOverIndex) as ISelectableItemRenderer; + ir.hovered = true; + } + lastRollOverIndex = IRollOverModel(listModel).rollOverIndex; + } } - + COMPILE::SWF public class ListView extends DataContainerView { @@ -102,12 +124,12 @@ package org.apache.flex.html.beads { super(); } - + protected var listModel:ISelectionModel; - + /** * @copy org.apache.flex.core.IBead#strand - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -118,18 +140,21 @@ package org.apache.flex.html.beads _strand = value; super.strand = value; } - - override protected function beadsAddedHandler(event:Event):void + + /** + * @private + */ + override protected function handleInitComplete(event:Event):void { - super.beadsAddedHandler(event); - + super.handleInitComplete(event); + listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; listModel.addEventListener("selectedIndexChanged", selectionChangeHandler); listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); } - + protected var lastSelectedIndex:int = -1; - + /** * @private */ @@ -147,9 +172,9 @@ package org.apache.flex.html.beads } lastSelectedIndex = listModel.selectedIndex; } - + protected var lastRollOverIndex:int = -1; - + /** * @private */ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelView.as index 99de1c2..43af3f8 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelView.as @@ -243,6 +243,8 @@ package org.apache.flex.html.beads } super.completeSetup(); + + performLayout(null); } protected function handleSizeChange(event:Event):void http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as index 4a0cd39..b05dcec 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as @@ -135,6 +135,7 @@ package org.apache.flex.html.beads for each(var comp:IUIBase in controlBarItems) { controlBar.addElement(comp, false); } + controlBar.childrenAdded(); } super.completeSetup(); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.as index cb8402f..7752e90 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.as @@ -76,7 +76,6 @@ package org.apache.flex.html.beads public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("beadsAdded",finishSetup); IEventDispatcher(value).addEventListener("initComplete",finishSetup); } @@ -85,6 +84,8 @@ package org.apache.flex.html.beads selectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); + // if the host component inherits from DataContainerBase, the itemRendererClassFactory will + // already have been loaded by DataContainerBase.addedToParent function. if (!itemRendererFactory) { _itemRendererFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4138d09/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForStringVectorData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForStringVectorData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForStringVectorData.as index cf2a29c..d0d49a2 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForStringVectorData.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/TextItemRendererFactoryForStringVectorData.as @@ -76,7 +76,7 @@ package org.apache.flex.html.beads public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("beadsAdded",finishSetup); + IEventDispatcher(value).addEventListener("initComplete",finishSetup); } private function finishSetup(event:Event):void @@ -84,6 +84,8 @@ package org.apache.flex.html.beads selectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); + // if the host component inherits from DataContainerBase, the itemRendererClassFactory will + // already have been loaded by DataContainerBase.addedToParent function. if (!itemRendererFactory) { _itemRendererFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory;
