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

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

commit d58f7a9345ec640956b1f074ef5a6d30391f66ce
Author: Alex Harui <[email protected]>
AuthorDate: Sun Feb 16 20:14:51 2020 -0800

    MX ADG
---
 ...ta.as => VirtualDataItemRendererFactoryBase.as} |  14 +-
 .../VirtualDataItemRendererFactoryForArrayData.as  | 168 +--------------------
 .../MXRoyale/src/main/resources/defaults.css       |   5 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   4 +-
 .../AdvancedDataGridItemRenderer.as                |  16 +-
 .../AdvancedDataGridSelectableItemRendererBead.as  |  29 +++-
 ...actoryForICollectionViewAdvancedDataGridData.as |  63 +-------
 ... => AdvancedDataGridItemRendererInitializer.as} |  53 ++++---
 .../controls/beads/TreeItemRendererInitializer.as  |   8 +-
 9 files changed, 88 insertions(+), 272 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryBase.as
similarity index 95%
copy from 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
copy to 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryBase.as
index 91a9057..40ecf87 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryBase.as
@@ -60,7 +60,7 @@ package org.apache.royale.html.beads
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class VirtualDataItemRendererFactoryForArrayData extends 
EventDispatcher implements IBead, IDataProviderVirtualItemRendererMapper
+       public class VirtualDataItemRendererFactoryBase extends EventDispatcher 
implements IBead, IDataProviderVirtualItemRendererMapper
        {
         /**
          *  Constructor.
@@ -70,7 +70,7 @@ package org.apache.royale.html.beads
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.0
          */
-               public function 
VirtualDataItemRendererFactoryForArrayData(target:Object=null)
+               public function 
VirtualDataItemRendererFactoryBase(target:Object=null)
                {
                        super(target);
                }
@@ -160,10 +160,6 @@ package org.apache.royale.html.beads
          */            
                protected function dataProviderChangeHandler(event:Event):void
                {
-                       var dp:Array = dataProviderModel.dataProvider as Array;
-                       if (!dp)
-                               return;
-                       
             var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
                        var dataGroup:IItemRendererOwnerView = view.dataGroup;
                        
@@ -219,8 +215,6 @@ package org.apache.royale.html.beads
         
         protected var rendererMap:Object = {};
         
-        private var dp:Array;
-        
         /**
          *  Get an item renderer for a given index.
          *
@@ -236,8 +230,6 @@ package org.apache.royale.html.beads
             var ir:IIndexedItemRenderer = rendererMap[index];
             if (ir) return ir;
             
-            dp = dataProviderModel.dataProvider as Array;
-            
                        ir = itemRendererFactory.createItemRenderer() as 
IIndexedItemRenderer;
 
             var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
@@ -256,7 +248,7 @@ package org.apache.royale.html.beads
         
         public function getItemAt(index:int):Object
         {
-            return dp[index];
+            return null; // must be overridden
         }
        }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
index 91a9057..c09acda 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
@@ -60,7 +60,7 @@ package org.apache.royale.html.beads
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class VirtualDataItemRendererFactoryForArrayData extends 
EventDispatcher implements IBead, IDataProviderVirtualItemRendererMapper
+       public class VirtualDataItemRendererFactoryForArrayData extends 
VirtualDataItemRendererFactoryBase
        {
         /**
          *  Constructor.
@@ -74,78 +74,6 @@ package org.apache.royale.html.beads
                {
                        super(target);
                }
-
-               protected var dataProviderModel:IDataProviderModel;
-               protected var dataFieldProvider:DataFieldProviderBead;
-               
-               protected var labelField:String;
-        protected var dataField:String;
-
-               protected var _strand:IStrand;
-               
-        /**
-         *  @copy org.apache.royale.core.IBead#strand
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
-               public function set strand(value:IStrand):void
-               {
-                       _strand = value;
-                       
IEventDispatcher(value).addEventListener("initComplete",finishSetup);
-               }
-               
-               /**
-                * @private
-                */
-               private function finishSetup(event:Event):void
-               {                       
-                       dataProviderModel = 
_strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
-                       
dataProviderModel.addEventListener("dataProviderChanged", 
dataProviderChangeHandler);
-                       labelField = dataProviderModel.labelField;
-
-            dataFieldProvider = _strand.getBeadByType(DataFieldProviderBead) 
as DataFieldProviderBead;
-                       if (dataFieldProvider)
-            {
-                dataField = dataFieldProvider.dataField;
-            }
-
-                       // if the host component inherits from 
DataContainerBase, the itemRendererClassFactory will 
-                       // already have been loaded by 
DataContainerBase.addedToParent function.
-                       if(!_itemRendererFactory)
-                       _itemRendererFactory = 
loadBeadFromValuesManager(IItemRendererClassFactory, 
"iItemRendererClassFactory", _strand) as IItemRendererClassFactory;             
            
-                       
-                       dataProviderChangeHandler(null);
-               }
-               
-               private var _itemRendererFactory:IItemRendererClassFactory;
-               
-        /**
-         *  The org.apache.royale.core.IItemRendererClassFactory used 
-         *  to generate instances of item renderers.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
-               public function get 
itemRendererFactory():IItemRendererClassFactory
-               {
-                       if(!_itemRendererFactory)
-                       _itemRendererFactory = 
loadBeadFromValuesManager(IItemRendererClassFactory, 
"iItemRendererClassFactory", _strand) as IItemRendererClassFactory;
-                       
-                       return _itemRendererFactory;
-               }
-               
-        /**
-         *  @private
-         */
-               public function set 
itemRendererFactory(value:IItemRendererClassFactory):void
-               {
-                       _itemRendererFactory = value;
-               }
                
         /**
          *  The org.apache.royale.core.IItemRendererOwnerView that will
@@ -158,103 +86,19 @@ package org.apache.royale.html.beads
          *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
          *  @royaleignorecoercion org.apache.royale.html.beads.IListView
          */            
-               protected function dataProviderChangeHandler(event:Event):void
+               override protected function 
dataProviderChangeHandler(event:Event):void
                {
-                       var dp:Array = dataProviderModel.dataProvider as Array;
+                       dp = dataProviderModel.dataProvider as Array;
                        if (!dp)
                                return;
                        
-            var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
-                       var dataGroup:IItemRendererOwnerView = view.dataGroup;
-                       
-                       dataGroup.removeAllItemRenderers();
+                       super.dataProviderChangeHandler(event);
         }
-        
-        private var _itemRendererInitializer:IItemRendererInitializer;
-        
-        /**
-         *  The org.apache.royale.core.IItemRendererInitializer used 
-         *  to initialize instances of item renderers.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.8
-         *  @royaleignorecoercion 
org.apache.royale.core.IItemRendererInitializer
-         */
-        public function get itemRendererInitializer():IItemRendererInitializer
-        {
-            if(!_itemRendererInitializer)
-                _itemRendererInitializer = 
loadBeadFromValuesManager(IItemRendererInitializer, "iItemRendererInitializer", 
_strand) as IItemRendererInitializer;
-            
-            return _itemRendererInitializer;
-        }
-        
-        /**
-         *  @private
-         */
-        public function set 
itemRendererInitializer(value:IItemRendererInitializer):void
-        {
-            _itemRendererInitializer = value;
-        }
-        
-        /**
-         *  Free an item renderer for a given index.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.0
-         *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
-         *  @royaleignorecoercion org.apache.royale.html.beads.IListView
-         */
-        public function freeItemRendererForIndex(index:int):void
-        {
-            var ir:IIndexedItemRenderer = rendererMap[index];
-            var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
-            var dataGroup:IItemRendererOwnerView = view.dataGroup;
-            dataGroup.removeItemRenderer(ir);
-            delete rendererMap[index];
-        }
-        
-        protected var rendererMap:Object = {};
-        
+                
         private var dp:Array;
         
-        /**
-         *  Get an item renderer for a given index.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.9.0
-         *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
-         *  @royaleignorecoercion org.apache.royale.html.beads.IListView
-         */
-        public function getItemRendererForIndex(index:int, 
elementIndex:int):IIndexedItemRenderer
-        {
-            var ir:IIndexedItemRenderer = rendererMap[index];
-            if (ir) return ir;
-            
-            dp = dataProviderModel.dataProvider as Array;
-            
-                       ir = itemRendererFactory.createItemRenderer() as 
IIndexedItemRenderer;
-
-            var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
-            var dataGroup:IItemRendererOwnerView = view.dataGroup;
-                       dataGroup.addItemRendererAt(ir, elementIndex);
-            var data:Object = getItemAt(index);
-            (itemRendererInitializer as 
IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as 
IIndexedItemRenderer, data, index);
-            rendererMap[index] = ir;
-                       ir.data = data;
-                               
-                       var newEvent:ItemRendererEvent = new 
ItemRendererEvent(ItemRendererEvent.CREATED);
-                       newEvent.itemRenderer = ir;
-                       dispatchEvent(newEvent);
-            return ir;
-               }
         
-        public function getItemAt(index:int):Object
+        override public function getItemAt(index:int):Object
         {
             return dp[index];
         }
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css 
b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index 7459188..577fcf0 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -116,9 +116,10 @@ adg|AdvancedDataGridColumnList {
        IBeadView:  
ClassReference("mx.containers.beads.AdvancedDataGridListVirtualListView");      
            
        IBeadController: 
ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridSingleSelectionMouseController");
        IBeadLayout: 
ClassReference("mx.controls.beads.layouts.AdvancedDataGridVirtualListVerticalLayout");
-       IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+       IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
        IItemRenderer: 
ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer");
-       IItemRendererInitializer: 
ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
+       IItemRendererInitializer: 
ClassReference("mx.controls.beads.AdvancedDataGridItemRendererInitializer");
+       ISelectableItemRenderer: 
ClassReference("mx.controls.advancedDataGridClasses.AdvancedDataGridSelectableItemRendererBead");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.Viewport");
        IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
        border-style: none;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as 
b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 84cfd87..e9dddff 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -85,7 +85,6 @@ internal class MXRoyaleClasses
     import mx.controls.listClasses.VirtualDataItemRendererFactoryForIListData; 
VirtualDataItemRendererFactoryForIListData;
        import 
mx.controls.treeClasses.DataItemRendererFactoryForICollectionViewHierarchicalData;
 DataItemRendererFactoryForICollectionViewHierarchicalData;
     import 
mx.controls.advancedDataGridClasses.DataItemRendererFactoryForICollectionViewAdvancedDataGridData;
 DataItemRendererFactoryForICollectionViewAdvancedDataGridData;
-    import 
mx.controls.advancedDataGridClasses.AdvancedDataGridSelectableItemRendererBead; 
AdvancedDataGridSelectableItemRendererBead;
        import mx.charts.chartClasses.RenderData; RenderData;
        import mx.effects.EffectInstance; EffectInstance;
        import mx.effects.effectClasses.CompositeEffectInstance; 
CompositeEffectInstance;
@@ -172,6 +171,7 @@ internal class MXRoyaleClasses
     import mx.controls.advancedDataGridClasses.AdvancedDataGridButtonBar; 
AdvancedDataGridButtonBar;
     import mx.controls.advancedDataGridClasses.AdvancedDataGridListArea; 
AdvancedDataGridListArea;
     import 
mx.controls.advancedDataGridClasses.AdvancedDataGridSingleSelectionMouseController;
 AdvancedDataGridSingleSelectionMouseController;
+    import 
mx.controls.advancedDataGridClasses.AdvancedDataGridSelectableItemRendererBead; 
AdvancedDataGridSelectableItemRendererBead;
     import mx.controls.dataGridClasses.DataGridColumnList; DataGridColumnList;
     import mx.controls.dataGridClasses.DataGridListArea; DataGridListArea;
     import mx.controls.beads.AdvancedDataGridView; AdvancedDataGridView;
@@ -241,6 +241,8 @@ internal class MXRoyaleClasses
     import mx.controls.dateFieldClasses.DateFieldDateChooser; 
DateFieldDateChooser;
     import mx.controls.beads.controllers.MenuBarMouseController; 
MenuBarMouseController;
     import 
mx.controls.beads.controllers.CascadingMenuSelectionMouseController; 
CascadingMenuSelectionMouseController;
+    import mx.controls.beads.TreeItemRendererInitializer; 
TreeItemRendererInitializer;
+    import mx.controls.beads.AdvancedDataGridItemRendererInitializer; 
AdvancedDataGridItemRendererInitializer;
     
     import mx.containers.PanelTitleBar; PanelTitleBar;
     import mx.containers.beads.PanelView; PanelView;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
index ef348eb..218693a 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
@@ -50,6 +50,7 @@ import mx.core.UIComponent;
 import mx.collections.IHierarchicalData;
 import mx.events.ListEvent;
 import org.apache.royale.core.ISelectableItemRenderer;
+import org.apache.royale.core.IListDataItemRenderer;
 
 //--------------------------------------
 //  Events
@@ -70,7 +71,7 @@ import org.apache.royale.core.ISelectableItemRenderer;
  *  @playerversion AIR 1.1
  *  @productversion Royale 0.9.3
  */
-//[Event(name="dataChange", type="mx.events.FlexEvent")]
+[Event(name="dataChange", type="mx.events.FlexEvent")]
 
 /**
  *  The AdvancedDataGridItemRenderer class defines the default item renderer 
for a AdvancedDataGrid control. 
@@ -89,7 +90,7 @@ import org.apache.royale.core.ISelectableItemRenderer;
  *  @productversion Royale 0.9.3
  */
 public class AdvancedDataGridItemRenderer extends StringItemRenderer
-                                  implements 
IDataRenderer,IDropInListItemRenderer
+                                  implements 
IDataRenderer,IDropInListItemRenderer,IListDataItemRenderer
 {
  /* extends UITextField
                                   implements IDataRenderer,
@@ -169,16 +170,6 @@ public class AdvancedDataGridItemRenderer extends 
StringItemRenderer
             indent += (treeListData.hasChildren ? (treeListData.open ? "▼" : 
"▶") : "") + extraSpace;
         }
         
-        var selectionBead:ISelectableItemRenderer = 
getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
-        if ((treeListData.owner as 
AdvancedDataGrid).selectedIndices.indexOf(treeListData.rowIndex) != -1)
-        {
-            selectionBead.selected = true;
-        } 
-        else if ((treeListData.owner as AdvancedDataGrid).selectedIndex == 
treeListData.rowIndex)
-        {
-            selectionBead.selected = true;            
-        }
-        
         if (column.labelFunction)
         {
             this.text = column.labelFunction(value, column);
@@ -187,6 +178,7 @@ public class AdvancedDataGridItemRenderer extends 
StringItemRenderer
         {
             this.text = indent + this.text;
         }
+               dispatchEvent(new FlexEvent("dataChange"));
     }
     
     private var _listData:Object;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSelectableItemRendererBead.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSelectableItemRendererBead.as
index c6ea607..fef44fb 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSelectableItemRendererBead.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSelectableItemRendererBead.as
@@ -21,10 +21,15 @@ package mx.controls.advancedDataGridClasses
 {
 
 import mx.controls.AdvancedDataGrid;
+import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
 import mx.core.UIComponent;
 
 import org.apache.royale.utils.CSSUtils;
+import org.apache.royale.core.IListDataItemRenderer;
 import org.apache.royale.core.ISelectableItemRenderer;
+import org.apache.royale.core.IStrand;
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IEventDispatcher;
 import org.apache.royale.html.beads.SelectableItemRendererBeadBase;
 
 /**
@@ -56,6 +61,12 @@ public class AdvancedDataGridSelectableItemRendererBead 
extends SelectableItemRe
     
//--------------------------------------------------------------------------
 
 
+    override public function set strand(value:IStrand):void 
+       {
+               super.strand = value;
+               (value as IEventDispatcher).addEventListener("dataChange", 
dataChangeHandler);
+       }
+       
     
//--------------------------------------------------------------------------
     //
     //  Properties
@@ -70,7 +81,7 @@ public class AdvancedDataGridSelectableItemRendererBead 
extends SelectableItemRe
      */
     override public function updateRenderer():void
     {
-        var ir:AdvancedDataGridItemRenderer = _strand as 
AdvancedDataGridItemRenderer;
+        var ir:IListDataItemRenderer = _strand as IListDataItemRenderer;
         var treeListData:AdvancedDataGridListData = ir.listData as 
AdvancedDataGridListData;
         var owner:AdvancedDataGrid = treeListData.owner as AdvancedDataGrid;
         var bgColors:Array = owner.getStyle("alternatingItemColors");
@@ -108,6 +119,22 @@ public class AdvancedDataGridSelectableItemRendererBead 
extends SelectableItemRe
         }
     }
 
+       private function dataChangeHandler(event:Event):void
+       {
+        var ir:IListDataItemRenderer = _strand as IListDataItemRenderer;
+        var treeListData:AdvancedDataGridListData = ir.listData as 
AdvancedDataGridListData;
+        var owner:AdvancedDataGrid = treeListData.owner as AdvancedDataGrid;
+        if (owner.selectedIndices.indexOf(treeListData.rowIndex) != -1)
+        {
+            selected = true;
+        } 
+        else if (owner.selectedIndex == treeListData.rowIndex)
+        {
+            selected = true;            
+        }
+               else
+                       selected = false;        
+       }
 }
 
 }
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
index 9c9b8b0..498a638 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
@@ -52,7 +52,7 @@ package mx.controls.advancedDataGridClasses
        import org.apache.royale.events.ItemRendererEvent;
        import org.apache.royale.html.List;
        import org.apache.royale.html.beads.IListView;
-       import 
org.apache.royale.html.beads.VirtualDataItemRendererFactoryForArrayData;
+       import org.apache.royale.html.beads.VirtualDataItemRendererFactoryBase;
        import org.apache.royale.html.supportClasses.DataItemRenderer;
        import org.apache.royale.html.supportClasses.TreeListData;
        
@@ -68,7 +68,7 @@ package mx.controls.advancedDataGridClasses
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class 
DataItemRendererFactoryForICollectionViewAdvancedDataGridData extends 
VirtualDataItemRendererFactoryForArrayData
+       public class 
DataItemRendererFactoryForICollectionViewAdvancedDataGridData extends 
VirtualDataItemRendererFactoryBase
        {
         /**
          *  Constructor.
@@ -116,43 +116,9 @@ package mx.controls.advancedDataGridClasses
         private var cursor:IViewCursor;
         private var currentIndex:int;
                
-               /**
-                * Sets the itemRenderer's data with additional tree-related 
data.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-                */
-               protected function setData(ir:IIndexedItemRenderer, 
data:Object, index:int):void
-               {
-            var adgColumnList:AdvancedDataGridColumnList = _strand as 
AdvancedDataGridColumnList;
-
-            if (!adgColumnList.adg) return;
-
-            var adgColumnListModel:DataGridColumnICollectionViewModel = 
adgColumnList.getBeadByType(DataGridColumnICollectionViewModel) as 
DataGridColumnICollectionViewModel;
-
-                       var depth:int = adgColumnList.adg.getDepth(data);
-                       var isOpen:Boolean = adgColumnList.adg.isItemOpen(data);
-                       var hasChildren:Boolean = 
adgColumnList.adg.hasChildren(data);
-            var firstColumn:Boolean =  adgColumnListModel.columnIndex == 0;
-
-                       // Set the listData with the depth of this item
-                       var treeListData:AdvancedDataGridListData = new 
AdvancedDataGridListData("", "", adgColumnListModel.columnIndex, "", 
adgColumnList.adg, index);
-                       treeListData.depth = depth;
-                       treeListData.open = isOpen;
-                       treeListData.hasChildren = hasChildren;
-                       
-                       (ir as IListDataItemRenderer).listData = treeListData;
-            if (firstColumn && adgColumnList.adg.groupLabelField)
-                (ir as ILabelFieldItemRenderer).labelField = 
adgColumnList.adg.groupLabelField;
-                       
-                       ir.data = data;
-            ir.index = index;
-               }
         
         /**
-         *  Get an item renderer for a given index.
+         *  Get a item for a given index.
          *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
@@ -161,20 +127,8 @@ package mx.controls.advancedDataGridClasses
          *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
          *  @royaleignorecoercion org.apache.royale.html.beads.IListView
          */
-        override public function getItemRendererForIndex(index:int, 
elementIndex:int):IIndexedItemRenderer
+        override public function getItemAt(index:int):Object
         {
-            var ir:IIndexedItemRenderer = rendererMap[index];
-            if (ir) return ir;
-            
-            var dp:ICollectionView = dataProviderModel.dataProvider as 
ICollectionView;
-            
-            ir = itemRendererFactory.createItemRenderer() as 
IIndexedItemRenderer;
-            
-            var view:IListView = (_strand as IStrandWithModelView).view as 
IListView;
-            var dataGroup:IItemRendererOwnerView = view.dataGroup;
-            dataGroup.addItemRendererAt(ir, elementIndex);
-            rendererMap[index] = ir;
-            
             var delta:int = index - currentIndex;
             if (currentIndex == -1)
             {
@@ -193,14 +147,7 @@ package mx.controls.advancedDataGridClasses
                 cursor.seek(CursorBookmark.CURRENT, delta);
             }
             currentIndex = index;
-            
-            var data:Object = cursor.current;
-            (itemRendererInitializer as 
IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, index);
-            
-            var newEvent:ItemRendererEvent = new 
ItemRendererEvent(ItemRendererEvent.CREATED);
-            newEvent.itemRenderer = ir;
-            dispatchEvent(newEvent);
-            return ir;
+                       return cursor.current;
         }
        }
 }
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as
similarity index 53%
copy from 
frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
copy to 
frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as
index 7fcb51a..ecebb99 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as
@@ -16,7 +16,7 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads
+package mx.controls.beads
 {      
     
     import org.apache.royale.collections.TreeData;
@@ -25,16 +25,19 @@ package org.apache.royale.html.beads
     import org.apache.royale.core.IIndexedItemRenderer;
     import org.apache.royale.core.IIndexedItemRendererInitializer;
     import org.apache.royale.core.IItemRenderer;
-    import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.core.IListDataItemRenderer;
+    import org.apache.royale.core.ILabelFieldItemRenderer;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.IUIBase;
     import org.apache.royale.core.SimpleCSSStyles;
     import org.apache.royale.core.UIBase;
-    import mx.controls.treeClasses.TreeListData;
+    import org.apache.royale.html.beads.ListItemRendererInitializer;
+    import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
+       import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList;
+    import mx.controls.beads.models.DataGridColumnICollectionViewModel;
     
        /**
-        *  The TreeItemRendererInitializer class initializes item renderers
+        *  The AdvancedDataGridItemRendererInitializer class initializes item 
renderers
      *  in tree classes.
         *  
         *  @langversion 3.0
@@ -42,7 +45,7 @@ package org.apache.royale.html.beads
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.0
         */
-       public class TreeItemRendererInitializer extends 
ListItemRendererInitializer
+       public class AdvancedDataGridItemRendererInitializer extends 
ListItemRendererInitializer
        {
                /**
                 *  constructor.
@@ -52,7 +55,7 @@ package org.apache.royale.html.beads
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.0
                 */
-               public function TreeItemRendererInitializer()
+               public function AdvancedDataGridItemRendererInitializer()
                {
                }
                                
@@ -60,26 +63,34 @@ package org.apache.royale.html.beads
                 *  @private
                 *  @royaleignorecoercion 
org.apache.royale.core.HTMLElementWrapper
                 */
-               override public function 
initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, 
ownerView:IItemRendererOwnerView, index:int):void
+               override public function 
initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, 
index:int):void
                {
             if (!dataProviderModel)
                 return;
             
-            super.initializeItemRenderer(ir, data, ownerView, index);
-            
-            var treeData:TreeData = dataProviderModel.dataProvider as TreeData;
-            var depth:int = treeData.getDepth(data);
-            var isOpen:Boolean = treeData.isOpen(data);
-            var hasChildren:Boolean = treeData.hasChildren(data);
-            
-            // Set the listData with the depth of this item
-            var treeListData:TreeListData = new TreeListData();
-            treeListData.depth = depth;
-            treeListData.isOpen = isOpen;
-            treeListData.hasChildren = hasChildren;
-            
-            (ir as IListDataItemRenderer).listData = treeListData;
+            super.initializeIndexedItemRenderer(ir, data, index);
             
+            var adgColumnList:AdvancedDataGridColumnList = _strand as 
AdvancedDataGridColumnList;
+
+            if (!adgColumnList.adg) return;
+
+            var adgColumnListModel:DataGridColumnICollectionViewModel = 
adgColumnList.getBeadByType(DataGridColumnICollectionViewModel) as 
DataGridColumnICollectionViewModel;
+
+                       var depth:int = adgColumnList.adg.getDepth(data);
+                       var isOpen:Boolean = adgColumnList.adg.isItemOpen(data);
+                       var hasChildren:Boolean = 
adgColumnList.adg.hasChildren(data);
+            var firstColumn:Boolean =  adgColumnListModel.columnIndex == 0;
+
+                       // Set the listData with the depth of this item
+                       var treeListData:AdvancedDataGridListData = new 
AdvancedDataGridListData("", "", adgColumnListModel.columnIndex, "", 
adgColumnList.adg, index);
+                       treeListData.depth = depth;
+                       treeListData.open = isOpen;
+                       treeListData.hasChildren = hasChildren;
+                       
+                       (ir as IListDataItemRenderer).listData = treeListData;
+            if (firstColumn && adgColumnList.adg.groupLabelField)
+                (ir as ILabelFieldItemRenderer).labelField = 
adgColumnList.adg.groupLabelField;
+                                   
         }
         
        }
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
index 7fcb51a..b5103de 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
@@ -16,7 +16,7 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads
+package mx.controls.beads
 {      
     
     import org.apache.royale.collections.TreeData;
@@ -25,12 +25,12 @@ package org.apache.royale.html.beads
     import org.apache.royale.core.IIndexedItemRenderer;
     import org.apache.royale.core.IIndexedItemRendererInitializer;
     import org.apache.royale.core.IItemRenderer;
-    import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.core.IListDataItemRenderer;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.IUIBase;
     import org.apache.royale.core.SimpleCSSStyles;
     import org.apache.royale.core.UIBase;
+    import org.apache.royale.html.beads.ListItemRendererInitializer;
     import mx.controls.treeClasses.TreeListData;
     
        /**
@@ -60,12 +60,12 @@ package org.apache.royale.html.beads
                 *  @private
                 *  @royaleignorecoercion 
org.apache.royale.core.HTMLElementWrapper
                 */
-               override public function 
initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, 
ownerView:IItemRendererOwnerView, index:int):void
+               override public function 
initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, 
index:int):void
                {
             if (!dataProviderModel)
                 return;
             
-            super.initializeItemRenderer(ir, data, ownerView, index);
+            super.initializeItemRenderer(ir, data, index);
             
             var treeData:TreeData = dataProviderModel.dataProvider as TreeData;
             var depth:int = treeData.getDepth(data);

Reply via email to