This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 32e5dbddd3391a4ded6a1cf3970c38454fd1eddf
Author: Alex Harui <[email protected]>
AuthorDate: Wed May 16 15:14:27 2018 -0700

    move IItemRendererParent from the strand to the view so that there are 
fewer dependencies on the strand
---
 .../org/apache/royale/core/DataContainerBase.as    | 117 --------------
 .../royale/html/beads/AccordionCollapseBead.as     |   4 +-
 .../org/apache/royale/html/beads/AccordionView.as  |   2 +-
 .../apache/royale/html/beads/DataContainerView.as  | 168 ++++++++++++++++++++-
 .../DataItemRendererFactoryForCollectionView.as    |  12 +-
 .../DynamicItemsRendererFactoryForArrayListData.as |   4 +-
 .../apache/royale/html/supportClasses/DataGroup.as | 121 +--------------
 .../supportClasses/TreeGridControlItemRenderer.as  |  10 ++
 .../layouts/LineChartCategoryVsLinearLayout.as     |   2 +-
 .../beads/layouts/LineChartLinearVsLinearLayout.as |   2 +-
 .../apache/royale/charts/core/IChartDataGroup.as   |   2 +-
 .../royale/charts/optimized/SVGChartDataGroup.as   |  27 ++++
 .../royale/charts/supportClasses/ChartDataGroup.as | 151 +++++++++++++++++-
 .../org/apache/royale/core/IItemRendererParent.as  |   4 +-
 .../effects/beads/EasyAccordionCollapseBead.as     |   8 +-
 15 files changed, 372 insertions(+), 262 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
index 06440f2..0d25075 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
@@ -21,8 +21,6 @@ package org.apache.royale.core
        import org.apache.royale.core.ValuesManager;
        import org.apache.royale.html.beads.IListView;
        import org.apache.royale.events.Event;
-       import org.apache.royale.events.ItemAddedEvent;
-       import org.apache.royale.events.ItemRemovedEvent;
        import org.apache.royale.html.supportClasses.DataItemRenderer;
        
        /**
@@ -123,120 +121,5 @@ package org.apache.royale.core
                        _itemRenderer = value;
                }
                                
-               /*
-               * IItemRendererParent
-               */
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#addItemRenderer()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-               public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
-               {
-                       addElement(renderer, dispatchAdded);
-                       dispatchItemAdded(renderer);
-               }
-                */
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#addItemRendererAt()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9
-               public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
-               {
-                       addElementAt(renderer, index, true);
-                       dispatchItemAdded(renderer);
-               }
-               
-               private function dispatchItemAdded(renderer:IItemRenderer):void
-               {
-                       var newEvent:ItemAddedEvent = new 
ItemAddedEvent("itemAdded");
-                       newEvent.item = renderer;
-                       
-                       dispatchEvent(newEvent);
-               }
-                */
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-               public function removeItemRenderer(renderer:IItemRenderer):void
-               {
-                       removeElement(renderer);
-                       
-                       var newEvent:ItemRemovedEvent = new 
ItemRemovedEvent("itemRemoved");
-                       newEvent.item = renderer;
-                       
-                       dispatchEvent(newEvent);
-               }
-                */
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#removeAllItemRenderers()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-               public function removeAllItemRenderers():void
-               {
-                       while (numElements > 0) {
-                               var child:IChild = getElementAt(0);
-                               removeElement(child);
-                       }
-               }
-                */
-               
-               /**
-                *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                *      @royaleignorecoercion 
org.apache.royale.core.IItemRenderer
-               public function getItemRendererForIndex(index:int):IItemRenderer
-               {
-                       if (index < 0 || index >= numElements) return null;
-                       return getElementAt(index) as IItemRenderer;
-               }
-                */
-               
-               /**
-                *  Refreshes the itemRenderers. Useful after a size change by 
the data group.
-                *
-                *  @copy 
org.apache.royale.core.IItemRendererParent#updateAllItemRenderers()
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                *      @royaleignorecoercion 
org.apache.royale.html.supportClasses.DataItemRenderer
-               public function updateAllItemRenderers():void
-               {
-                       var n:Number = numElements;
-                       for (var i:Number = 0; i < n; i++)
-                       {
-                               var renderer:DataItemRenderer = 
getItemRendererForIndex(i) as DataItemRenderer;
-                               if (renderer) {
-                                       renderer.setWidth(this.width,true);
-                                       renderer.adjustSize();
-                               }
-                       }
-               }
-                */
-
     }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
index d5e0836..68a3a79 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
@@ -46,7 +46,7 @@ package org.apache.royale.html.beads
                                idx = 0;
 
                        var dg:IItemRendererParent = 
IListView(host.view).dataGroup as IItemRendererParent;
-                       var numElems:int = dg.numElements;
+                       var numElems:int = dg.numItemRenderers;
                        for(var i:int = 0; i < numElems; i++){
                                if(i == idx)
                                        continue;
@@ -64,7 +64,7 @@ package org.apache.royale.html.beads
                protected function selectedIndexChangedHandler(event:Event):void
                {
                        var view:IListView = host.view as IListView;
-                       var newChild:UIBase = 
view.dataGroup.getElementAt(host.selectedIndex) as UIBase;
+                       var newChild:UIBase = 
view.dataGroup.getItemRendererAt(host.selectedIndex) as UIBase;
                        if (!newChild)
                        {
                                return;
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionView.as
index f022947..ee689ae 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionView.as
@@ -95,7 +95,7 @@ package org.apache.royale.html.beads
                 */
                override protected function 
itemsCreatedHandler(event:Event):void
                {
-                       var n:int = dataGroup.numElements;
+                       var n:int = dataGroup.numItemRenderers;
                        for (var i:int = 0; i < n; i++)
                        {
                                var child:ICollapsible = 
dataGroup.getItemRendererForIndex(i) as ICollapsible;
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
index 560daf1..2ea13b8 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
@@ -24,10 +24,11 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.IBeadLayout;
        import org.apache.royale.core.IBeadModel;
        import org.apache.royale.core.IBeadView;
-    import org.apache.royale.core.IDataProviderItemRendererMapper;
-    import org.apache.royale.core.IDataProviderModel;
+    import org.apache.royale.core.IChild;
+       import org.apache.royale.core.IDataProviderItemRendererMapper;
+       import org.apache.royale.core.IDataProviderModel;
        import org.apache.royale.core.IItemRenderer;
-    import org.apache.royale.core.IItemRendererClassFactory;
+       import org.apache.royale.core.IItemRendererClassFactory;
        import org.apache.royale.core.IItemRendererParent;
        import org.apache.royale.core.IParent;
        import org.apache.royale.core.IParentIUIBase;
@@ -41,8 +42,11 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.ValuesManager;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
+    import org.apache.royale.events.ItemAddedEvent;
+    import org.apache.royale.events.ItemRemovedEvent;
        import org.apache.royale.html.supportClasses.Border;
        import org.apache.royale.html.supportClasses.DataGroup;
+       import org.apache.royale.html.supportClasses.DataItemRenderer;
        import org.apache.royale.utils.loadBeadFromValuesManager;
 
        /**
@@ -54,7 +58,7 @@ package org.apache.royale.html.beads
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.8
         */
-       public class DataContainerView extends ContainerView implements 
IListView
+       public class DataContainerView extends ContainerView implements 
IListView, IItemRendererParent
        {
                public function DataContainerView()
                {
@@ -92,7 +96,7 @@ package org.apache.royale.html.beads
                 */
                public function get dataGroup():IItemRendererParent
                {
-                       return super.contentView as IItemRendererParent;
+                       return this as IItemRendererParent;
                }
                
                /**
@@ -139,5 +143,159 @@ package org.apache.royale.html.beads
         {
             return _strand as IUIBase;
         }
+        
+        /*
+        * IItemRendererParent
+        */
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#numItemRenderers()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function get numItemRenderers():int
+        {
+            return (contentView as IParent).numElements;
+        }
+        
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#addItemRenderer()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
+        {
+            (contentView as IParent).addElement(renderer, dispatchAdded);
+            dispatchItemAdded(renderer);
+        }
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#addItemRendererAt()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
+        {
+            (contentView as IParent).addElementAt(renderer, index, true);
+            dispatchItemAdded(renderer);
+        }
+        
+        private function dispatchItemAdded(renderer:IItemRenderer):void
+        {
+            var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded");
+            newEvent.item = renderer;
+            
+            host.dispatchEvent(newEvent);
+        }
+        
+        /**
+         * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function removeItemRenderer(renderer:IItemRenderer):void
+        {
+            (contentView as IParent).removeElement(renderer);
+            
+            var newEvent:ItemRemovedEvent = new 
ItemRemovedEvent("itemRemoved");
+            newEvent.item = renderer;
+            
+            host.dispatchEvent(newEvent);
+        }
+        
+        /**
+         * @copy 
org.apache.royale.core.IItemRendererParent#removeAllItemRenderers()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function removeAllItemRenderers():void
+        {
+            while ((contentView as IParent).numElements > 0) {
+                var child:IChild = (contentView as IParent).getElementAt(0);
+                (contentView as IParent).removeElement(child);
+            }
+        }
+        
+        /**
+         *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *     @royaleignorecoercion org.apache.royale.core.IItemRenderer
+         */
+        public function getItemRendererForIndex(index:int):IItemRenderer
+        {
+            if (index < 0 || index >= (contentView as IParent).numElements) 
return null;
+            return (contentView as IParent).getElementAt(index) as 
IItemRenderer;
+        }
+        
+        /**
+         *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererAt()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *     @royaleignorecoercion org.apache.royale.core.IItemRenderer
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function getItemRendererAt(index:int):IItemRenderer
+        {
+            if (index < 0 || index >= (contentView as IParent).numElements) 
return null;
+            return (contentView as IParent).getElementAt(index) as 
IItemRenderer;
+        }
+        
+        /**
+         *  Refreshes the itemRenderers. Useful after a size change by the 
data group.
+         *
+         *  @copy 
org.apache.royale.core.IItemRendererParent#updateAllItemRenderers()
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         *     @royaleignorecoercion 
org.apache.royale.html.supportClasses.DataItemRenderer
+         *  @royaleignorecoercion org.apache.royale.core.IParent
+         */
+        public function updateAllItemRenderers():void
+        {
+            var n:Number = (contentView as IParent).numElements;
+            for (var i:Number = 0; i < n; i++)
+            {
+                var renderer:DataItemRenderer = getItemRendererForIndex(i) as 
DataItemRenderer;
+                if (renderer) {
+                    renderer.setWidth(host.width,true);
+                    renderer.adjustSize();
+                }
+            }
+        }
+
        }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
index 8226e19..5246fed 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
@@ -209,10 +209,10 @@ package org.apache.royale.html.beads
                        fillRenderer(event.index, event.item, ir, 
presentationModel);
                        
                        // update the index values in the itemRenderers to 
correspond to their shifted positions.
-                       var n:int = dataGroup.numElements;
+                       var n:int = dataGroup.numItemRenderers;
                        for (var i:int = event.index; i < n; i++)
                        {
-                               ir = dataGroup.getElementAt(i) as 
ISelectableItemRenderer;
+                               ir = dataGroup.getItemRendererAt(i) as 
ISelectableItemRenderer;
                                ir.index = i;
                                
                                // could let the IR know its index has been 
changed (eg, it might change its
@@ -241,14 +241,14 @@ package org.apache.royale.html.beads
                        if (!dp)
                                return;
                        
-                       var ir:ISelectableItemRenderer = 
dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
+                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(event.index) as ISelectableItemRenderer;
                        dataGroup.removeItemRenderer(ir);
                        
                        // adjust the itemRenderers' index to adjust for the 
shift
-                       var n:int = dataGroup.numElements;
+                       var n:int = dataGroup.numItemRenderers;
                        for (var i:int = event.index; i < n; i++)
                        {
-                               ir = dataGroup.getElementAt(i) as 
ISelectableItemRenderer;
+                               ir = dataGroup.getItemRendererAt(i) as 
ISelectableItemRenderer;
                                ir.index = i;
                                
                                // could let the IR know its index has been 
changed (eg, it might change its
@@ -276,7 +276,7 @@ package org.apache.royale.html.beads
 
                        // update the given renderer with (possibly) new 
information so it can change its
                        // appearence or whatever.
-                       var ir:ISelectableItemRenderer = 
dataGroup.getElementAt(event.index) as ISelectableItemRenderer;
+                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(event.index) as ISelectableItemRenderer;
                        setData(ir, event.item, event.index);
                }
                
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
index 1e97f4c..8c424fc 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
@@ -191,10 +191,10 @@ package org.apache.royale.html.beads
             fillRenderer(event.index, event.item, ir, presentationModel);
                        
                        // update the index values in the itemRenderers to 
correspond to their shifted positions.
-                       var n:int = dataGroup.numElements;
+                       var n:int = dataGroup.numItemRenderers;
                        for (var i:int = event.index; i < n; i++)
                        {
-                               ir = dataGroup.getElementAt(i) as 
ISelectableItemRenderer;
+                               ir = dataGroup.getItemRendererAt(i) as 
ISelectableItemRenderer;
                                ir.index = i;
                        }
 
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as
index c0f44bc..9b6b38a 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as
@@ -28,9 +28,6 @@ package org.apache.royale.html.supportClasses
     import org.apache.royale.core.UIBase;
        import org.apache.royale.events.IEventDispatcher;
        import org.apache.royale.events.Event;
-       import org.apache.royale.events.ItemAddedEvent;
-       import org.apache.royale.events.ItemClickedEvent;
-       import org.apache.royale.events.ItemRemovedEvent;
 
     /**
      *  The DataGroup class is the IItemRendererParent used internally
@@ -41,7 +38,7 @@ package org.apache.royale.html.supportClasses
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class DataGroup extends ContainerContentArea implements 
IItemRendererParent
+       public class DataGroup extends ContainerContentArea
        {
         /**
          *  Constructor.
@@ -56,121 +53,5 @@ package org.apache.royale.html.supportClasses
                        super();
                }
                
-               /*
-               * IItemRendererParent
-               */
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#addItemRenderer()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                */
-               public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
-               {
-                       addElement(renderer, dispatchAdded);
-                       dispatchItemAdded(renderer);
-               }
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#addItemRendererAt()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9
-                */
-               public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
-               {
-                       addElementAt(renderer, index, true);
-                       dispatchItemAdded(renderer);
-               }
-               
-               /**
-                * @royaleignorecoercion 
org.apache.royale.events.IEventDispatcher
-                */
-               private function dispatchItemAdded(renderer:IItemRenderer):void
-               {
-                       var newEvent:ItemAddedEvent = new 
ItemAddedEvent("itemAdded");
-                       newEvent.item = renderer;
-                       
-                       (host as IEventDispatcher).dispatchEvent(newEvent);
-               }
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                */
-               public function removeItemRenderer(renderer:IItemRenderer):void
-               {
-                       removeElement(renderer, true);
-                       
-                       var newEvent:ItemRemovedEvent = new 
ItemRemovedEvent("itemRemoved");
-                       newEvent.item = renderer;
-                       
-                       (host as IEventDispatcher).dispatchEvent(newEvent);
-               }
-               
-               /**
-                * @copy 
org.apache.royale.core.IItemRendererParent#removeAllItemRenderers()
-                * @private
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                */
-               public function removeAllItemRenderers():void
-               {
-                       while (numElements > 0) {
-                               var child:IChild = getElementAt(0);
-                               removeItemRenderer(child as IItemRenderer);
-                       }
-               }
-               
-               /**
-                *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                */
-               public function getItemRendererForIndex(index:int):IItemRenderer
-               {
-                       if (index < 0 || index >= numElements) return null;
-                       return getElementAt(index) as IItemRenderer;
-               }
-               
-               /**
-                *  Refreshes the itemRenderers. Useful after a size change by 
the data group.
-                *
-                *  @copy 
org.apache.royale.core.IItemRendererParent#updateAllItemRenderers()
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.8
-                */
-               public function updateAllItemRenderers():void
-               {
-                       var n:Number = numElements;
-                       for (var i:Number = 0; i < n; i++)
-                       {
-                               var renderer:DataItemRenderer = 
getItemRendererForIndex(i) as DataItemRenderer;
-                               if (renderer) {
-                                       renderer.setWidth(this.width,true);
-                                       renderer.adjustSize();
-                               }
-                       }
-               }
        }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as
index 513801d..9e3e4f0 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as
@@ -75,6 +75,11 @@ package org.apache.royale.html.supportClasses
                
                // IItemRendererParent implementation
                
+        public function get numItemRenderers():int
+        {
+            return 1;
+        }
+        
                public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
                {
                        this.addElement(renderer, dispatchAdded);
@@ -95,6 +100,11 @@ package org.apache.royale.html.supportClasses
                        return child as IItemRenderer;
                }
                
+        public function getItemRendererAt(index:int):IItemRenderer
+        {
+            return child as IItemRenderer;
+        }
+        
                public function removeAllItemRenderers():void
                {
                        this.removeElement(child);
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
index de21680..e6a76a4 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -143,7 +143,7 @@ package org.apache.royale.charts.beads.layouts
                                if (lcs.lineSegmentRenderer)
                                {
                                        var renderer:ILineSegmentItemRenderer = 
lcs.lineSegmentRenderer.newInstance() as ILineSegmentItemRenderer;
-                                       chartDataGroup.addElement(renderer);
+                                       
chartDataGroup.addItemRenderer(renderer, true);
                                        renderer.itemRendererParent = 
chartDataGroup;
                                        renderer.data = lcs;
                                        renderer.points = 
seriesPoints[s].points;
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
index e4c3c2c..73a1829 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -157,7 +157,7 @@ package org.apache.royale.charts.beads.layouts
                                if (lcs.lineSegmentRenderer)
                                {
                                        var renderer:ILineSegmentItemRenderer = 
lcs.lineSegmentRenderer.newInstance() as ILineSegmentItemRenderer;
-                                       chartDataGroup.addElement(renderer);
+                                       
chartDataGroup.addItemRenderer(renderer, true);
                                        renderer.itemRendererParent = 
chartDataGroup;
                                        renderer.data = lcs;
                                        renderer.points = 
seriesPoints[s].points;
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartDataGroup.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartDataGroup.as
index 05cd8f2..e73f305 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartDataGroup.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartDataGroup.as
@@ -18,7 +18,7 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.charts.core
 {
-       import org.apache.royale.core.IItemRendererParent;
+    import org.apache.royale.core.IItemRendererParent;
        import org.apache.royale.core.ILayoutView;
        import org.apache.royale.geom.Point;
 
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/optimized/SVGChartDataGroup.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/optimized/SVGChartDataGroup.as
index a68db5d..5816fd4 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/optimized/SVGChartDataGroup.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/optimized/SVGChartDataGroup.as
@@ -82,6 +82,19 @@ package org.apache.royale.charts.optimized
                        return _strand;
                }
                
+        /**
+         *  @copy org.apache.royale.core.IItemRendererParent#numItemRenderers()
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        public function get numItemRenderers():int
+        {
+            return _children.length;
+        }
+        
                /**
                 *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
                 *  
@@ -96,6 +109,20 @@ package org.apache.royale.charts.optimized
                        return _children[index] as IItemRenderer;
                }
                
+        /**
+         *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererAt()
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        public function getItemRendererAt(index:int):IItemRenderer
+        {
+            if (index < 0 || index >= _children.length) return null;
+            return _children[index] as IItemRenderer;
+        }
+        
                /**
                 *  Returns the itemRenderer that matches both the series and 
child index. A null return is
                 *  valid since some charts have optional itemRenderers for 
their series.
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as
index f9cef89..ab78fba 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as
@@ -26,6 +26,10 @@ package org.apache.royale.charts.supportClasses
        import org.apache.royale.core.IChild;
        import org.apache.royale.core.IUIBase;
        import org.apache.royale.core.UIBase;
+    import org.apache.royale.events.IEventDispatcher;
+    import org.apache.royale.events.ItemAddedEvent;
+    import org.apache.royale.events.ItemClickedEvent;
+    import org.apache.royale.events.ItemRemovedEvent;
        import org.apache.royale.html.supportClasses.DataGroup;
        import org.apache.royale.html.supportClasses.DataItemRenderer;
        import org.apache.royale.geom.Point;
@@ -54,7 +58,152 @@ package org.apache.royale.charts.supportClasses
                        super();
                }
                
-               /*
+        /*
+        * IItemRendererParent
+        */
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#numItemRenderers()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function get numItemRenderers():int
+        {
+            return numElements;
+        }
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#addItemRenderer()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
+        {
+            addElement(renderer, dispatchAdded);
+            dispatchItemAdded(renderer);
+        }
+        
+        /**
+         * @copy org.apache.royale.core.IItemRendererParent#addItemRendererAt()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         */
+        public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
+        {
+            addElementAt(renderer, index, true);
+            dispatchItemAdded(renderer);
+        }
+        
+        /**
+         * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+         */
+        private function dispatchItemAdded(renderer:IItemRenderer):void
+        {
+            var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded");
+            newEvent.item = renderer;
+            
+            (host as IEventDispatcher).dispatchEvent(newEvent);
+        }
+        
+        /**
+         * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function removeItemRenderer(renderer:IItemRenderer):void
+        {
+            removeElement(renderer, true);
+            
+            var newEvent:ItemRemovedEvent = new 
ItemRemovedEvent("itemRemoved");
+            newEvent.item = renderer;
+            
+            (host as IEventDispatcher).dispatchEvent(newEvent);
+        }
+        
+        /**
+         * @copy 
org.apache.royale.core.IItemRendererParent#removeAllItemRenderers()
+         * @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function removeAllItemRenderers():void
+        {
+            while (numElements > 0) {
+                var child:IChild = getElementAt(0);
+                removeItemRenderer(child as IItemRenderer);
+            }
+        }
+        
+        /**
+         *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererForIndex()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function getItemRendererForIndex(index:int):IItemRenderer
+        {
+            if (index < 0 || index >= numElements) return null;
+            return getElementAt(index) as IItemRenderer;
+        }
+        
+        /**
+         *  @copy 
org.apache.royale.core.IItemRendererParent#getItemRendererAt()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function getItemRendererAt(index:int):IItemRenderer
+        {
+            if (index < 0 || index >= numElements) return null;
+            return getElementAt(index) as IItemRenderer;
+        }
+        
+        /**
+         *  Refreshes the itemRenderers. Useful after a size change by the 
data group.
+         *
+         *  @copy 
org.apache.royale.core.IItemRendererParent#updateAllItemRenderers()
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.8
+         */
+        public function updateAllItemRenderers():void
+        {
+            var n:Number = numElements;
+            for (var i:Number = 0; i < n; i++)
+            {
+                var renderer:DataItemRenderer = getItemRendererForIndex(i) as 
DataItemRenderer;
+                if (renderer) {
+                    renderer.setWidth(this.width,true);
+                    renderer.adjustSize();
+                }
+            }
+        }
+        
+        /*
                 * IChartDataGroup
                 */
                
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererParent.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererParent.as
index 96d7c81..10ee019 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererParent.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererParent.as
@@ -29,7 +29,7 @@ package org.apache.royale.core
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public interface IItemRendererParent extends IParent, IEventDispatcher
+       public interface IItemRendererParent extends IEventDispatcher
        {
         /**
          *  The IItemRendererParent interface is the basic interface for the 
@@ -49,7 +49,9 @@ package org.apache.royale.core
                function addItemRendererAt(renderer:IItemRenderer, 
index:int):void;
                function removeItemRenderer(renderer:IItemRenderer):void;
                function getItemRendererForIndex(index:int):IItemRenderer;
+        function getItemRendererAt(index:int):IItemRenderer;
                function removeAllItemRenderers():void;
                function updateAllItemRenderers():void;
+        function get numItemRenderers():int;
        }
 }
diff --git 
a/frameworks/projects/Effects/src/main/royale/org/apache/royale/effects/beads/EasyAccordionCollapseBead.as
 
b/frameworks/projects/Effects/src/main/royale/org/apache/royale/effects/beads/EasyAccordionCollapseBead.as
index 87fbf4c..e80a1a3 100644
--- 
a/frameworks/projects/Effects/src/main/royale/org/apache/royale/effects/beads/EasyAccordionCollapseBead.as
+++ 
b/frameworks/projects/Effects/src/main/royale/org/apache/royale/effects/beads/EasyAccordionCollapseBead.as
@@ -37,10 +37,10 @@ package org.apache.royale.effects.beads
                
                private function findPreviousNonCollapsedIndex():int
                {
-                       var n:int = view.dataGroup.numElements;
+                       var n:int = view.dataGroup.numItemRenderers;
                        for (var i:int = 0; i < n; i++)
                        {
-                               var collapsible:ICollapsible = 
view.dataGroup.getElementAt(i) as ICollapsible;
+                               var collapsible:ICollapsible = 
view.dataGroup.getItemRendererAt(i) as ICollapsible;
                                if (collapsible.collapsedHeight != (collapsible 
as ILayoutChild).height)
                                {
                                        return i;
@@ -56,9 +56,9 @@ package org.apache.royale.effects.beads
                
                override protected function 
selectedIndexChangedHandler(event:Event):void
                {
-                       var newChild:UIBase = 
view.dataGroup.getElementAt(host.selectedIndex) as UIBase;
+                       var newChild:UIBase = 
view.dataGroup.getItemRendererAt(host.selectedIndex) as UIBase;
                        var oldChildIndex:int = findPreviousNonCollapsedIndex();
-                       var oldCollapsible:ICollapsible = 
view.dataGroup.getElementAt(oldChildIndex) as ICollapsible;
+                       var oldCollapsible:ICollapsible = 
view.dataGroup.getItemRendererAt(oldChildIndex) as ICollapsible;
                        if (!newChild || oldChildIndex < 0)
                        {
                                return;

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to