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/04/18 06:17:54 UTC

[30/50] [abbrv] git commit: [flex-asjs] [refs/heads/dual] - Cleaned up unused or unnecessary event listeners.

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 <pe...@apache.org>
Authored: Sun Apr 9 17:26:43 2017 -0400
Committer: Peter Ent <pe...@apache.org>
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;