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

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


The following commit(s) were added to refs/heads/develop by this push:
     new b59766e  Added new DynamicRemoveItemRendererForArrayListData to 
complement DynamicItemsRendererFactoryForArrayListData that will dynamically 
remove items whenever the ArrayList dataProvider has items removed. The 
hierarchical data item renderer factory changes to use the dynamic item 
renderer factory to facilitate the open of nodes. ArrayList now includes the 
index of the item being added, removed, or changed into the CollectionEvent 
which has the index added as a new property.
b59766e is described below

commit b59766e2f17403574d3421ce8077fd9a4ba27c21
Author: Peter Ent <[email protected]>
AuthorDate: Fri Dec 8 09:48:59 2017 -0500

    Added new DynamicRemoveItemRendererForArrayListData to complement 
DynamicItemsRendererFactoryForArrayListData that will dynamically remove items 
whenever the ArrayList dataProvider has items removed. The hierarchical data 
item renderer factory changes to use the dynamic item renderer factory to 
facilitate the open of nodes. ArrayList now includes the index of the item 
being added, removed, or changed into the CollectionEvent which has the index 
added as a new property.
---
 .../Basic/src/main/resources/basic-manifest.xml    |   1 +
 .../projects/Basic/src/main/royale/BasicClasses.as |  13 +-
 .../org/apache/royale/core/DataContainerBase.as    |  19 +++
 .../DataItemRendererFactoryForHierarchicalData.as  |   8 +-
 .../DynamicItemsRendererFactoryForArrayListData.as |  70 ++++++++---
 .../DynamicRemoveItemRendererForArrayListData.as   | 136 +++++++++++++++++++++
 .../apache/royale/html/supportClasses/DataGroup.as |  19 +++
 .../royale/charts/optimized/SVGChartDataGroup.as   |  20 ++-
 .../org/apache/royale/collections/ArrayList.as     |   5 +
 .../org/apache/royale/core/IItemRendererParent.as  |   1 +
 .../org/apache/royale/events/CollectionEvent.as    |  12 +-
 11 files changed, 267 insertions(+), 37 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml 
b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index 312b17d..4e5b9ad 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -149,6 +149,7 @@
     <component id="DataItemRendererFactoryForArrayData" 
class="org.apache.royale.html.beads.DataItemRendererFactoryForArrayData" />
     <component id="DataItemRendererFactoryForArrayList" 
class="org.apache.royale.html.beads.DataItemRendererFactoryForArrayList" />
     <component id="DynamicItemsRendererFactoryForArrayListData" 
class="org.apache.royale.html.beads.DynamicItemsRendererFactoryForArrayListData"
 />
+    <component id="DynamicRemoveItemRendererForArrayListData" 
class="org.apache.royale.html.beads.DynamicRemoveItemRendererForArrayListData" 
/>
     <component id="DataItemRendererFactoryForHierarchicalData" 
class="org.apache.royale.html.beads.DataItemRendererFactoryForHierarchicalData" 
/>
     <component id="TextItemRendererFactoryForArrayData" 
class="org.apache.royale.html.beads.TextItemRendererFactoryForArrayData" />
     <component id="TextItemRendererFactoryForStringVectorData" 
class="org.apache.royale.html.beads.TextItemRendererFactoryForStringVectorData" 
/>
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as 
b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index b67b03a..39c2538 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -152,7 +152,7 @@ internal class BasicClasses
     import org.apache.royale.html.beads.layouts.RemovableBasicLayout; 
RemovableBasicLayout;
        import 
org.apache.royale.html.beads.layouts.OneFlexibleChildHorizontalLayout; 
OneFlexibleChildHorizontalLayout;
        import 
org.apache.royale.html.beads.layouts.OneFlexibleChildVerticalLayout; 
OneFlexibleChildVerticalLayout;
-       
+
        COMPILE::SWF
        {
                import org.apache.royale.html.beads.layouts.HScrollBarLayout; 
HScrollBarLayout;
@@ -163,6 +163,7 @@ internal class BasicClasses
     import org.apache.royale.html.beads.TextItemRendererFactoryForArrayData; 
TextItemRendererFactoryForArrayData;
        import 
org.apache.royale.html.beads.DataItemRendererFactoryForArrayData; 
DataItemRendererFactoryForArrayData;
     import 
org.apache.royale.html.beads.DynamicItemsRendererFactoryForArrayListData; 
DynamicItemsRendererFactoryForArrayListData;
+    import 
org.apache.royale.html.beads.DynamicRemoveItemRendererForArrayListData; 
DynamicRemoveItemRendererForArrayListData;
        import 
org.apache.royale.html.beads.DataItemRendererFactoryForArrayList; 
DataItemRendererFactoryForArrayList;
        import 
org.apache.royale.html.beads.DataItemRendererFactoryForHierarchicalData; 
DataItemRendererFactoryForHierarchicalData;
        import org.apache.royale.html.supportClasses.DataGroup; DataGroup;
@@ -200,7 +201,7 @@ internal class BasicClasses
 
        import org.apache.royale.html.beads.WebBrowserView; WebBrowserView;
        import org.apache.royale.html.beads.models.WebBrowserModel; 
WebBrowserModel;
-       
+
        import org.apache.royale.core.ListBase; ListBase;
        import org.apache.royale.core.Lookalike; Lookalike;
        import org.apache.royale.core.FilledRectangle; FilledRectangle;
@@ -212,7 +213,7 @@ internal class BasicClasses
     import org.apache.royale.core.SimpleApplication; SimpleApplication;
        import org.apache.royale.svg.GraphicContainer; GraphicContainer;
        import org.apache.royale.svg.DOMWrapper; DOMWrapper;
-       
+
        import org.apache.royale.svg.GraphicShape; GraphicShape;
        import org.apache.royale.svg.Rect; Rect;
        import org.apache.royale.svg.Ellipse; Ellipse;
@@ -233,9 +234,9 @@ internal class BasicClasses
                import org.apache.royale.html.beads.VRuleView; VRuleView;
                import org.apache.royale.html.beads.MultilineTextFieldView; 
MultilineTextFieldView;
        }
-       
+
        import org.apache.royale.html.SubAppLoader; SubAppLoader;
-       
+
        import org.apache.royale.html.Table; Table;
        import org.apache.royale.html.TableRow; TableRow;
        import org.apache.royale.html.TableCell; TableCell;
@@ -244,7 +245,7 @@ internal class BasicClasses
        import org.apache.royale.html.beads.layouts.SimpleTableLayout; 
SimpleTableLayout;
        import org.apache.royale.html.beads.layouts.TableCellLayout; 
TableCellLayout;
        import org.apache.royale.html.beads.layouts.TableHeaderLayout; 
TableHeaderLayout;
-    
+
     import org.apache.royale.css2.Cursors; Cursors;
     COMPILE::SWF
     {
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 2695971..b3e2464 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
@@ -194,6 +194,25 @@ package org.apache.royale.core
                }
                
                /**
+                * @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);
+                       
+                       var newEvent:ItemAddedEvent = new 
ItemAddedEvent("itemAdded");
+                       newEvent.item = renderer;
+                       
+                       dispatchEvent(newEvent);
+               }
+               
+               /**
                 * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
                 * @private
                 *
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as
index 759025e..f55ab99 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as
@@ -18,13 +18,14 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads
 {
+       import org.apache.royale.collections.FlattenedList;
        import org.apache.royale.core.IBead;
        import org.apache.royale.core.IDataProviderItemRendererMapper;
+       import org.apache.royale.core.IDataProviderModel;
        import org.apache.royale.core.IItemRendererClassFactory;
        import org.apache.royale.core.IItemRendererParent;
        import org.apache.royale.core.IListPresentationModel;
        import org.apache.royale.core.ISelectableItemRenderer;
-       import org.apache.royale.core.IDataProviderModel;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.IUIBase;
        import org.apache.royale.core.SimpleCSSStyles;
@@ -32,11 +33,10 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.ValuesManager;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.EventDispatcher;
-       import org.apache.royale.events.ItemRendererEvent;
        import org.apache.royale.events.IEventDispatcher;
+       import org.apache.royale.events.ItemRendererEvent;
        import org.apache.royale.html.List;
        import org.apache.royale.html.supportClasses.TreeListData;
-       import org.apache.royale.collections.FlattenedList;
        
        
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
 
@@ -52,7 +52,7 @@ package org.apache.royale.html.beads
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class DataItemRendererFactoryForHierarchicalData extends 
DataItemRendererFactoryForArrayList
+       public class DataItemRendererFactoryForHierarchicalData extends 
DynamicItemsRendererFactoryForArrayListData
        {
         /**
          *  Constructor.
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 97c9456..43bc59f 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
@@ -21,22 +21,22 @@ package org.apache.royale.html.beads
     import org.apache.royale.collections.IArrayList;
     import org.apache.royale.core.IBead;
     import org.apache.royale.core.IDataProviderItemRendererMapper;
+    import org.apache.royale.core.IDataProviderModel;
     import org.apache.royale.core.IItemRendererClassFactory;
     import org.apache.royale.core.IItemRendererParent;
     import org.apache.royale.core.IListPresentationModel;
+    import org.apache.royale.core.ISelectableItemRenderer;
+    import org.apache.royale.core.ISelectionModel;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.SimpleCSSStyles;
     import org.apache.royale.core.UIBase;
     import org.apache.royale.core.ValuesManager;
     import org.apache.royale.events.CollectionEvent;
-
+    import org.apache.royale.events.Event;
     import org.apache.royale.events.EventDispatcher;
     import org.apache.royale.events.IEventDispatcher;
     import org.apache.royale.html.beads.IListView;
-    import org.apache.royale.events.Event;
-    import org.apache.royale.core.ISelectableItemRenderer;
-    import org.apache.royale.core.ISelectionModel;
-       import org.apache.royale.utils.loadBeadFromValuesManager;
+    import org.apache.royale.utils.loadBeadFromValuesManager;
 
     
[Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
 
@@ -57,8 +57,6 @@ package org.apache.royale.html.beads
             super(target);
         }
 
-        protected var dataProviderModel:ISelectionModel;
-
         protected var labelField:String;
 
         protected var _strand:IStrand;
@@ -89,19 +87,37 @@ package org.apache.royale.html.beads
         {
             IEventDispatcher(_strand).removeEventListener("initComplete", 
initComplete);
 
-            dataProviderModel = _strand.getBeadByType(ISelectionModel) as 
ISelectionModel;
+                       _dataProviderModel = 
_strand.getBeadByType(ISelectionModel) as ISelectionModel;
             var listView:IListView = _strand.getBeadByType(IListView) as 
IListView;
             dataGroup = listView.dataGroup;
             dataProviderModel.addEventListener("dataProviderChanged", 
dataProviderChangeHandler);
-            dataProviderModel.addEventListener(CollectionEvent.ITEM_ADDED, 
itemAddedHandler);
+                       
+                       // also listen for individual items being added to the 
dataProvider itself.
+                       var dataProvider:IEventDispatcher = 
dataProviderModel.dataProvider as IEventDispatcher;
+            dataProvider.addEventListener(CollectionEvent.ITEM_ADDED, 
itemAddedHandler);
 
             labelField = dataProviderModel.labelField;
 
             dataProviderChangeHandler(null);
         }
+               
+               protected var _dataProviderModel:ISelectionModel;
+               
+               /**
+                * The model holding the dataProvider.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+                */
+               public function get dataProviderModel():IDataProviderModel
+               {
+                       return _dataProviderModel;
+               }
 
         private var _itemRendererFactory:IItemRendererClassFactory;
-
+               
         /**
          *  The org.apache.royale.core.IItemRendererClassFactory used
          *  to generate instances of item renderers.
@@ -138,6 +154,9 @@ package org.apache.royale.html.beads
          */
         protected var dataGroup:IItemRendererParent;
 
+               /**
+                * @private
+                */
         protected function dataProviderChangeHandler(event:Event):void
         {
             var dp:IArrayList = dataProviderModel.dataProvider as IArrayList;
@@ -159,28 +178,39 @@ package org.apache.royale.html.beads
             IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));
         }
 
+               /**
+                * @private
+                */
         protected function itemAddedHandler(event:CollectionEvent):void
         {
             var dp:IArrayList = dataProviderModel.dataProvider as IArrayList;
             if (!dp)
                 return;
+                       
+                       if (dataProviderModel is ISelectionModel) {
+                               var model:ISelectionModel = dataProviderModel 
as ISelectionModel;                               
+                               model.selectedIndex = -1;
+                       }
 
             var presentationModel:IListPresentationModel = 
_strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
             var ir:ISelectableItemRenderer = 
itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
 
-            fillRenderer(dp.length - 1, event.item, ir, presentationModel);
+            fillRenderer(event.index, event.item, ir, presentationModel);
 
-            IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));
+                       (_strand as IEventDispatcher).dispatchEvent(new 
Event("itemsCreated"));
+                       (_strand as IEventDispatcher).dispatchEvent(new 
Event("layoutNeeded"));
         }
 
+               /**
+                * @private
+                */
         protected function fillRenderer(index:int,
                                       item:Object,
                                       itemRenderer:ISelectableItemRenderer,
                                       
presentationModel:IListPresentationModel):void
         {
-            dataGroup.addItemRenderer(itemRenderer);
+                       dataGroup.addItemRendererAt(itemRenderer, index);
 
-            itemRenderer.index = index;
             itemRenderer.labelField = labelField;
 
             if (presentationModel) {
@@ -190,7 +220,17 @@ package org.apache.royale.html.beads
                 UIBase(itemRenderer).height = presentationModel.rowHeight;
                 UIBase(itemRenderer).percentWidth = 100;
             }
-            itemRenderer.data = item;
+                       
+                       setData(itemRenderer, item, index);
         }
+               
+               /**
+                * @private
+                */
+               protected function 
setData(itemRenderer:ISelectableItemRenderer, data:Object, index:int):void
+               {
+                       itemRenderer.index = index;
+                       itemRenderer.data = data;
+               }
     }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
new file mode 100644
index 0000000..e3c3d28
--- /dev/null
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
@@ -0,0 +1,136 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.html.beads
+{
+       import org.apache.royale.core.IBead;
+       import org.apache.royale.core.IDataProviderModel;
+       import org.apache.royale.core.IItemRendererParent;
+       import org.apache.royale.core.IList;
+       import org.apache.royale.core.ISelectableItemRenderer;
+       import org.apache.royale.core.ISelectionModel;
+       import org.apache.royale.core.IStrand;
+       import org.apache.royale.core.UIBase;
+       import org.apache.royale.events.CollectionEvent;
+       import org.apache.royale.events.Event;
+       import org.apache.royale.events.IEventDispatcher;
+
+       /**
+        * Handles the removal of an itemRenderer once the corresponding datum 
has been removed
+        * from the IDataProviderModel.
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.9.0
+        */
+       public class DynamicRemoveItemRendererForArrayListData implements IBead
+       {
+               /**
+                * Constructor
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.0
+                */
+               public function DynamicRemoveItemRendererForArrayListData()
+               {
+               }
+
+               private var _strand:IStrand;
+
+               /**
+                * @copy org.apache.royale.core.IStrand
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.0
+                */
+               public function set strand(value:IStrand):void
+               {
+                       _strand = value;
+
+                       var dataProvider:IEventDispatcher = 
dataProviderModel.dataProvider as IEventDispatcher;
+                       if (dataProvider) {
+                               dataProvider.addEventListener("itemRemoved", 
handleItemRemoved);
+                       }
+               }
+
+               /**
+                * Handles the itemRemoved event by removing the item.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.0
+                */
+               protected function handleItemRemoved(event:CollectionEvent):void
+               {
+                       if (dataProviderModel is ISelectionModel) {
+                               var model:ISelectionModel = dataProviderModel 
as ISelectionModel;
+                               model.selectedIndex = -1;
+                       }
+                       var parent:UIBase = itemRendererParent as UIBase;
+                       var ir:ISelectableItemRenderer = 
parent.getElementAt(event.index) as ISelectableItemRenderer;
+                       itemRendererParent.removeItemRenderer(ir);
+
+                       (_strand as IEventDispatcher).dispatchEvent(new 
Event("layoutNeeded"));
+               }
+
+               private var _dataProviderModel: IDataProviderModel;
+
+               /**
+                *  The org.apache.royale.core.IDataProviderModel that contains 
the
+                *  data source.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.0
+                */
+               public function get dataProviderModel(): IDataProviderModel
+               {
+                       if (_dataProviderModel == null) {
+                               _dataProviderModel = 
_strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
+                       }
+                       return _dataProviderModel;
+               }
+
+               private var _itemRendererParent: IItemRendererParent;
+
+               /**
+                *  The org.apache.royale.core.IItemRendererParent used
+                *  to generate instances of item renderers.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.0
+                */
+               public function get itemRendererParent():IItemRendererParent
+               {
+                       if (_itemRendererParent == null) {
+                               var list:IList = _strand as IList;
+                               _itemRendererParent = list.dataGroup;
+                       }
+                       return _itemRendererParent;
+               }
+       }
+}
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 5c888c9..5c60482 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
@@ -80,6 +80,25 @@ package org.apache.royale.html.supportClasses
                }
                
                /**
+                * @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);
+                       
+                       var newEvent:ItemAddedEvent = new 
ItemAddedEvent("itemAdded");
+                       newEvent.item = renderer;
+                       
+                       (host as IEventDispatcher).dispatchEvent(newEvent);
+               }
+               
+               /**
                 * @copy 
org.apache.royale.core.IItemRendererParent#removeItemRenderer()
                 * @private
                 *
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 13a9e11..93d564f 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
@@ -21,18 +21,16 @@ package org.apache.royale.charts.optimized
        import org.apache.royale.charts.core.IChartDataGroup;
        import org.apache.royale.charts.core.IChartItemRenderer;
        import org.apache.royale.charts.core.IChartSeries;
-    import org.apache.royale.core.IChild;
+       import org.apache.royale.core.IChild;
        import org.apache.royale.core.IContentView;
        import org.apache.royale.core.IItemRenderer;
        import org.apache.royale.core.IItemRendererParent;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.UIBase;
-       import org.apache.royale.svg.CompoundGraphic;
        import org.apache.royale.events.Event;
        import org.apache.royale.geom.Point;
-       import org.apache.royale.core.IItemRenderer;
-       import org.apache.royale.core.IChild;
        import org.apache.royale.html.supportClasses.DataItemRenderer;
+       import org.apache.royale.svg.CompoundGraphic;
        
        /**
         *  The SVGChartDataGroup serves as the drawing canvas for SVG 
itemRenderers. Rather than having
@@ -157,22 +155,22 @@ package org.apache.royale.charts.optimized
                
                /**
                 *  Overrides the addElementAt function to set the element into 
an internal
-                *  list.
+                *  list at a specific location.
                 *
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
-                *  @productversion Royale 0.0
+                *  @productversion Royale 0.9
                 */
-               public function addItemRendererAt(value:IChild, index:int, 
dispatchEvent:Boolean = true):void
+               public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
                {
-                       if (index >= _children.length) _children.push(value);
-                       else _children.splice(index, 0, value);
+                       if (index >= _children.length) _children.push(renderer);
+                       else _children.splice(index, 0, renderer);
                        
-                       var base:UIBase = value as UIBase;
+                       var base:UIBase = renderer as UIBase;
                        base.addedToParent();
                        
-                       super.addElementAt(value, index, dispatchEvent);
+                       super.addElementAt(renderer, index, true);
                }
                
                /**
diff --git 
a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/ArrayList.as
 
b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/ArrayList.as
index 7b27bc5..b7f1b98 100644
--- 
a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/ArrayList.as
+++ 
b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/ArrayList.as
@@ -255,6 +255,7 @@ package org.apache.royale.collections
 
                        var collectionEvent:CollectionEvent = new 
CollectionEvent(CollectionEvent.ITEM_ADDED);
                        collectionEvent.item = item;
+                       collectionEvent.index = index;
                        dispatchEvent(collectionEvent);
                }
 
@@ -278,6 +279,7 @@ package org.apache.royale.collections
 
                 var collectionEvent:CollectionEvent = new 
CollectionEvent(CollectionEvent.ITEM_UPDATED);
                 collectionEvent.item = item;
+                               collectionEvent.index = index;
                                dispatchEvent(collectionEvent);
                        }
                        else {
@@ -338,6 +340,7 @@ package org.apache.royale.collections
 
             var collectionEvent:CollectionEvent = new 
CollectionEvent(CollectionEvent.ITEM_REMOVED);
             collectionEvent.item = removed;
+                       collectionEvent.index = index;
             dispatchEvent(collectionEvent);
 
                        return removed;
@@ -376,6 +379,7 @@ package org.apache.royale.collections
                        {
                 var collectionEvent:CollectionEvent = new 
CollectionEvent(CollectionEvent.ITEM_UPDATED);
                 collectionEvent.item = item;
+                               collectionEvent.index = index;
                 dispatchEvent(collectionEvent);
                        }
                }
@@ -392,6 +396,7 @@ package org.apache.royale.collections
                {
             var collectionEvent:CollectionEvent = new 
CollectionEvent(CollectionEvent.ITEM_UPDATED);
             collectionEvent.item = getItemAt(index);
+                       collectionEvent.index = index;
             dispatchEvent(collectionEvent);
                }
 
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 9aa1501..d7cd5cc 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
@@ -46,6 +46,7 @@ package org.apache.royale.core
          *  @productversion Royale 0.0
          */
                function addItemRenderer(renderer:IItemRenderer):void;
+               function addItemRendererAt(renderer:IItemRenderer, 
index:int):void;
                function removeItemRenderer(renderer:IItemRenderer):void;
                function getItemRendererForIndex(index:int):IItemRenderer;
                function removeAllItemRenderers():void;
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/events/CollectionEvent.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/events/CollectionEvent.as
index cd19e9d..844fc9d 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/events/CollectionEvent.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/events/CollectionEvent.as
@@ -19,7 +19,6 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.events
 {
-
        /**
         * The CollectionEvent class is used for dispatching an collection 
events
         *
@@ -55,6 +54,16 @@ package org.apache.royale.events
                {
             super(type, bubbles, cancelable);                    
                }
+               
+               /**
+                * The index of the item added, removed, or changed
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion Royale 0.9.0
+                */
+               public var index:int;
 
         /**
          * The item being removed/added/updated
@@ -81,6 +90,7 @@ package org.apache.royale.events
             var collectionEvent:CollectionEvent = new CollectionEvent(type, 
bubbles, cancelable);
                        collectionEvent.item = item;
                        collectionEvent.items = items;
+                       collectionEvent.index = index;
 
                        return collectionEvent;
         }

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

Reply via email to