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 14f85e6d88ee92bbd042364e4e5909f397c5b7fd
Author: Alex Harui <[email protected]>
AuthorDate: Wed Feb 12 21:59:39 2020 -0800

    Jewel and Charts seem to be working
---
 .../apache/royale/core/StyledMXMLItemRenderer.as   |   3 +-
 .../html/beads/DataItemRendererFactoryBase.as      |   9 +-
 .../Charts/src/main/resources/defaults.css         |  10 +-
 .../Charts/src/main/royale/ChartsClasses.as        |   1 +
 .../beads/ChartSelectableItemRendererBead.as       |  22 +---
 .../org/apache/royale/charts/beads/ChartView.as    |  11 +-
 .../beads/DataItemRendererFactoryForSeriesData.as  |  51 +++++++--
 .../royale/charts/core/IChartItemRenderer.as       |  13 +++
 .../royale/charts/supportClasses/ChartDataGroup.as |   4 +-
 .../charts/supportClasses/ChartItemRenderer.as     |  24 ++++-
 .../charts/supportClasses/WedgeItemRenderer.as     |   2 +
 .../projects/Core/src/main/royale/CoreClasses.as   |   1 +
 .../royale/org/apache/royale/core/BeadViewBase.as  |   2 +-
 .../{BeadViewBase.as => IOwnerViewItemRenderer.as} |  39 +++----
 ...electorListRuntimeSelectableItemRendererBead.as |   9 +-
 .../DataItemRendererFactoryForArrayData.as         |   3 +
 .../DataItemRendererFactoryForCollectionView.as    |   7 +-
 .../royale/jewel/beads/views/DropDownListView.as   |  22 ++--
 .../apache/royale/jewel/beads/views/ListView.as    | 114 +++++++++++++--------
 .../apache/royale/jewel/beads/views/TabBarView.as  |   4 +-
 .../apache/royale/jewel/beads/views/TableView.as   |  18 +++-
 .../jewel/itemRenderers/ButtonBarItemRenderer.as   |   3 +-
 .../CollapsibleNavigationSectionRenderer.as        |   2 +-
 .../royale/jewel/itemRenderers/DateItemRenderer.as |   2 +-
 .../royale/jewel/itemRenderers/ListItemRenderer.as |  11 +-
 .../itemRenderers/NavigationLinkItemRenderer.as    |   2 +-
 .../itemRenderers/TabBarButtonItemRenderer.as      |   2 +-
 .../jewel/itemRenderers/TableItemRenderer.as       |  29 ++++++
 28 files changed, 284 insertions(+), 136 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as
index 645d4e6..7b38413 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as
@@ -19,6 +19,7 @@
 package org.apache.royale.core
 {
     import org.apache.royale.core.IItemRendererOwnerView;
+    import org.apache.royale.core.IOwnerViewItemRenderer;
     import org.apache.royale.html.supportClasses.MXMLItemRenderer;
     import org.apache.royale.utils.ClassSelectorList;
     import org.apache.royale.utils.IClassSelectorListSupport;
@@ -33,7 +34,7 @@ package org.apache.royale.core
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9.3
         */
-       public class StyledMXMLItemRenderer extends MXMLItemRenderer implements 
IClassSelectorListSupport, IEmphasis
+       public class StyledMXMLItemRenderer extends MXMLItemRenderer implements 
IClassSelectorListSupport, IEmphasis, IOwnerViewItemRenderer
        {
                /**
                 *  constructor.
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
index e556606..c2d2ca5 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
@@ -114,8 +114,13 @@ package org.apache.royale.html.beads
                                ir.data = data;                         
                        }
                        
-                       sendStrandEvent(_strand,"itemsCreated");
+            dispatchItemCreatedEvent();
                }
-        
+
+        protected function dispatchItemCreatedEvent():void
+        {
+            sendStrandEvent(_strand,"itemsCreated");
+        }
+
        }
 }
diff --git a/frameworks/projects/Charts/src/main/resources/defaults.css 
b/frameworks/projects/Charts/src/main/resources/defaults.css
index ce0a854..b068ab5 100644
--- a/frameworks/projects/Charts/src/main/resources/defaults.css
+++ b/frameworks/projects/Charts/src/main/resources/defaults.css
@@ -28,6 +28,7 @@ BarChart
     IContentView: 
ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup");
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData");
     IItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer");
+    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
     IHorizontalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
     IVerticalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.Viewport");
@@ -38,11 +39,6 @@ BoxItemRenderer
     IBeadController: 
ClassReference("org.apache.royale.html.beads.controllers.ItemRendererMouseController");
 }
 
-ChartItemRenderer
-{
-    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
-}
-
 WedgeItemRenderer
 {
        IBeadController: 
ClassReference("org.apache.royale.html.beads.controllers.ItemRendererMouseController");
@@ -57,6 +53,7 @@ ColumnChart
     IContentView: 
ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup");
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData");
     IItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer");
+    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
     IHorizontalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
     IVerticalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.Viewport");
@@ -71,6 +68,7 @@ LineChart
     IContentView: 
ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup");
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData");
     IItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer");
+    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
     IConnectedItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.LineSegmentItemRenderer");
     IHorizontalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
     IVerticalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
@@ -98,6 +96,7 @@ StackedColumnChart
     IContentView: 
ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup");
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData");
     IItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer");
+    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
     IHorizontalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
     IVerticalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.Viewport");
@@ -112,6 +111,7 @@ StackedBarChart
     IContentView: 
ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup");
     IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData");
     IItemRenderer: 
ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer");
+    ISelectableItemRenderer: 
ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead");
     IHorizontalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
     IVerticalAxisGroup: 
ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.Viewport");
diff --git a/frameworks/projects/Charts/src/main/royale/ChartsClasses.as 
b/frameworks/projects/Charts/src/main/royale/ChartsClasses.as
index bd189e8..a265a8b 100644
--- a/frameworks/projects/Charts/src/main/royale/ChartsClasses.as
+++ b/frameworks/projects/Charts/src/main/royale/ChartsClasses.as
@@ -45,6 +45,7 @@ internal class ChartsClasses
        import org.apache.royale.charts.supportClasses.ChartDataGroup; 
ChartDataGroup;
        
        import org.apache.royale.charts.beads.ChartView; ChartView;
+    import org.apache.royale.charts.beads.ChartSelectableItemRendererBead; 
ChartSelectableItemRendererBead;
        import org.apache.royale.charts.beads.ChartItemRendererFactory; 
ChartItemRendererFactory;
        import 
org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData; 
DataItemRendererFactoryForSeriesData;
        import 
org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesArrayListData; 
DataItemRendererFactoryForSeriesArrayListData;
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as
index 1c070c0..333b848 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as
@@ -48,27 +48,7 @@ package org.apache.royale.charts.beads
                public function ChartSelectableItemRendererBead()
                {
                }
-               
-
-               private 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;
-               }
-               public function get strand():IStrand
-               {
-                       return _strand;
-               }
-        
+                       
         private var _hovered:Boolean;
         
         /**
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as
index 7bb081d..9ebec7c 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as
@@ -22,6 +22,7 @@ package org.apache.royale.charts.beads
        import org.apache.royale.core.IBeadView;
     import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
        import org.apache.royale.core.IContainer;
+    import org.apache.royale.core.IItemRendererOwnerView;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.ISelectableItemRenderer;
     import org.apache.royale.core.IUIBase;
@@ -80,7 +81,15 @@ package org.apache.royale.charts.beads
                        
                        _strand = value;
                }
-               
+
+        /**
+         * @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
+         */
+        override public function get dataGroup():IItemRendererOwnerView
+        {
+            return this.contentView as IItemRendererOwnerView;
+        }
+
                /**
                 * @private
                 */
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
index 5772920..5271ca0 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
@@ -24,16 +24,18 @@ package org.apache.royale.charts.beads
        import org.apache.royale.charts.core.IChartSeries;
        import org.apache.royale.core.IBead;
        import org.apache.royale.core.IDataProviderItemRendererMapper;
+       import org.apache.royale.core.IIndexedItemRenderer;
        import org.apache.royale.core.IItemRendererClassFactory;
-    import org.apache.royale.core.IItemRendererOwnerView;
-    import org.apache.royale.core.IIndexedItemRenderer;
+       import org.apache.royale.core.IItemRendererOwnerView;
        import org.apache.royale.core.ISelectionModel;
        import org.apache.royale.core.IStrand;
+       import org.apache.royale.core.ItemRendererClassFactory;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
+       import org.apache.royale.html.beads.DataItemRendererFactoryBase;
        import org.apache.royale.html.beads.IListView;
-    import org.apache.royale.html.beads.DataItemRendererFactoryBase;
-       
+       import org.apache.royale.utils.sendStrandEvent;
+
        /**
         *  The DataItemRendererFactoryForSeriesData creates the itemRenderers 
necessary for series-based
         *  charts. 
@@ -67,11 +69,14 @@ package org.apache.royale.charts.beads
         override public function set strand(value:IStrand):void
         {
             super.strand = value;
+            value.addBead(factory);
             value.addBead(new ChartItemRendererInitializer(this))
         }
         
         public var chartSeries:IChartSeries;
         
+        private var blockItemsCreatedEvent:Boolean;
+        
         /**
          * @private
          * @royaleignorecoercion org.apache.royale.core.ISelectionModel
@@ -91,13 +96,27 @@ package org.apache.royale.charts.beads
             var listView:IListView = _strand.getBeadByType(IListView) as 
IListView;
             var dataGroup:IChartDataGroup = listView.dataGroup as 
IChartDataGroup;
             
+            blockItemsCreatedEvent = true;
             for (var s:int=0; s < series.length; s++)
             {                          
                 var n:int = dp.length; 
                 chartSeries = series[s] as IChartSeries;
                 if (chartSeries.itemRenderer)
+                {
+                    if (itemRendererFactory is ItemRendererClassFactory)
+                        (itemRendererFactory as 
ItemRendererClassFactory).itemRendererFactory = chartSeries.itemRenderer;
                     super.dataProviderChangeHandler(event);
+                }
             }
+            blockItemsCreatedEvent = false;
+            sendStrandEvent(_strand,"itemsCreated");
+        }
+        
+        override protected function dispatchItemCreatedEvent():void
+        {
+            if (blockItemsCreatedEvent)
+                return;
+            super.dispatchItemCreatedEvent();
         }
         
         override protected function 
removeAllItemRenderers(parent:IItemRendererOwnerView):void
@@ -109,7 +128,7 @@ package org.apache.royale.charts.beads
         
         override protected function get dataProviderLength():int
         {
-            return series.length;
+            return dp.length;
         }
         
         override protected function getItemAt(index:int):Object
@@ -120,17 +139,19 @@ package org.apache.royale.charts.beads
 }
 
 import org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData;
-import org.apache.royale.core.IDataProviderModel;
-import org.apache.royale.core.UIBase;
 import org.apache.royale.charts.core.IChartItemRenderer;
 import org.apache.royale.core.Bead;
-import org.apache.royale.core.IItemRenderer;
+import org.apache.royale.core.IDataProviderModel;
 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.IStrand;
-import org.apache.royale.core.ItemRendererClassFactory;
+import org.apache.royale.core.SelectableItemRendererClassFactory;
+import org.apache.royale.core.UIBase;
+import org.apache.royale.html.beads.IListView;
 
-class ChartItemRendererClassFactory extends ItemRendererClassFactory
+class ChartItemRendererClassFactory extends SelectableItemRendererClassFactory
 {
     private var owner:DataItemRendererFactoryForSeriesData;
     
@@ -172,8 +193,13 @@ class ChartItemRendererInitializer extends Bead implements 
IIndexedItemRendererI
     override public function set strand(value:IStrand):void
     {  
         _strand = value;
+        
+        var listView:IListView = _strand.getBeadByType(IListView) as IListView;
+        var ownerView:IItemRendererOwnerView = listView.dataGroup as 
IItemRendererOwnerView;
     }
     
+    private var ownerView:IItemRendererOwnerView;
+    
     /**
      *  @private
      *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
@@ -188,7 +214,10 @@ class ChartItemRendererInitializer extends Bead implements 
IIndexedItemRendererI
      */
     public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, 
data:Object, index:int):void
     {
-        (ir as IChartItemRenderer).series = owner.chartSeries;
+        var chartIR:IChartItemRenderer = ir as IChartItemRenderer;
+        chartIR.series = owner.chartSeries;
+        chartIR.itemRendererOwnerView = ownerView;
+        
         ir.index = index;
         initializeItemRenderer(ir, data);
     }        
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as
index 90ce57a..1e71656 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as
@@ -19,6 +19,7 @@
 package org.apache.royale.charts.core
 {
        import org.apache.royale.core.IItemRenderer;
+       import org.apache.royale.core.IItemRendererOwnerView;
        
        /**
         *  The IChartItemRenderer interface is the interface implemented by any
@@ -133,5 +134,17 @@ package org.apache.royale.charts.core
                 *  @productversion Royale 0.0
                 */
                function updateRenderer():void;
+        
+        /**
+         * Invoke this function to force the itemRenderer to redraw.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        function get itemRendererOwnerView():IItemRendererOwnerView;
+        function set itemRendererOwnerView(value:IItemRendererOwnerView):void;
+
        }
 }
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 1d9317f..c901cbf 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
@@ -114,7 +114,7 @@ package org.apache.royale.charts.supportClasses
             var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded");
             newEvent.item = renderer;
             
-            (host as IEventDispatcher).dispatchEvent(newEvent);
+            (parent as IEventDispatcher).dispatchEvent(newEvent);
         }
         
         /**
@@ -133,7 +133,7 @@ package org.apache.royale.charts.supportClasses
             var newEvent:ItemRemovedEvent = new 
ItemRemovedEvent("itemRemoved");
             newEvent.item = renderer;
             
-            (host as IEventDispatcher).dispatchEvent(newEvent);
+            (parent as IEventDispatcher).dispatchEvent(newEvent);
         }
         
         /**
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as
index 2f33417..47d503b 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as
@@ -21,6 +21,7 @@ package org.apache.royale.charts.supportClasses
        import org.apache.royale.charts.core.IChartItemRenderer;
        import org.apache.royale.charts.core.IChartSeries;
        import org.apache.royale.core.IBead;
+       import org.apache.royale.core.IItemRendererOwnerView;
        import org.apache.royale.core.ISelectableItemRenderer;
        import org.apache.royale.graphics.IFill;
        import org.apache.royale.graphics.IStroke;
@@ -163,7 +164,28 @@ package org.apache.royale.charts.supportClasses
                        super.height = value;
             updateRenderer();
                }               
-               
+
+        private var _itemRendererOwnerView:IItemRendererOwnerView;
+        
+        /**
+         *  The text of the renderer
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.4
+         */
+        public function get itemRendererOwnerView():IItemRendererOwnerView
+        {
+            return _itemRendererOwnerView;
+        }
+        
+        public function set 
itemRendererOwnerView(value:IItemRendererOwnerView):void
+        {
+            _itemRendererOwnerView = value;
+        }
+        
+
                public function updateRenderer():void
                {                       
 
diff --git 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as
 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as
index 9a63ac7..88bcdd4 100644
--- 
a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as
@@ -251,6 +251,8 @@ package org.apache.royale.charts.supportClasses
                {                               
             drawWedgeInternal();
             
+            if (!filledPath) return; // too early
+            
                        if (selectionBead.down || selectionBead.selected || 
selectionBead.hovered) {
                                if (hoverFill == null) {
                                        if(fill is SolidColor)
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as 
b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 7249311..7a7d3a1 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -114,6 +114,7 @@ internal class CoreClasses
     import org.apache.royale.core.IIndexedItemRenderer; IIndexedItemRenderer;
     import org.apache.royale.core.IIndexedItemRendererInitializer; 
IIndexedItemRendererInitializer;
     import org.apache.royale.core.ILabelFieldItemRenderer; 
ILabelFieldItemRenderer;
+    import org.apache.royale.core.IOwnerViewItemRenderer; 
IOwnerViewItemRenderer;
     import org.apache.royale.core.ILayoutChild; ILayoutChild;
        import org.apache.royale.core.ILayoutHost; ILayoutHost;
        import org.apache.royale.core.ILayoutView; ILayoutView;
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
index ca92ad1..eb11c20 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
@@ -30,7 +30,7 @@ package org.apache.royale.core
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class BeadViewBase extends DispatcherBead
+       public class BeadViewBase extends DispatcherBead implements IBeadView
        {
         /**
          *  Constructor.
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as
similarity index 63%
copy from 
frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
copy to 
frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as
index ca92ad1..2921a0a 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as
@@ -18,45 +18,30 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.core
 {
-       import org.apache.royale.core.IBeadView;
-       import org.apache.royale.core.IStrand;
-    import org.apache.royale.events.EventDispatcher;
-    
+       import org.apache.royale.events.IEventDispatcher;
+
     /**
-     *  The BeadViewBase class is the base class for most view beads.
+     *  The IOwnerViewItemRenderer interface is the basic interface for item 
renderers
+     *  that have an itemRendererOwnerView property that references the View 
of the component
+     *  that eventually parents the item renderers.
      *  
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class BeadViewBase extends DispatcherBead
+       public interface IOwnerViewItemRenderer extends IItemRenderer
        {
         /**
-         *  Constructor.
+         *  The reference to the IItemRendererOwnerView of the renderer
          *  
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+         *  @productversion Royale 0.9.4
          */
-               public function BeadViewBase()
-               {
-                       super();
-               }
-               
-        /**
-         *  The host component. 
-         * 
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         *  @royaleignorecoercion org.apache.royale.core.IUIBase
-         */
-        public function get host():IUIBase
-        {
-            return _strand as IUIBase;
-        }
-   }
+        function get itemRendererOwnerView():IItemRendererOwnerView;
+        function set itemRendererOwnerView(value:IItemRendererOwnerView):void;
+        
+       }
 }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
index adc60f3..1329d9d 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
@@ -23,8 +23,9 @@ package org.apache.royale.jewel.beads.itemRenderers
         import flash.display.Sprite;
     }
     import org.apache.royale.core.IBead;
-    import org.apache.royale.core.IUIBase;
+    import org.apache.royale.core.IRuntimeSelectableItemRenderer;
     import org.apache.royale.core.IStrand;
+    import org.apache.royale.core.IUIBase;
     import org.apache.royale.html.beads.SelectableItemRendererBeadBase;
     import org.apache.royale.utils.ClassSelectorList;
 
@@ -37,7 +38,7 @@ package org.apache.royale.jewel.beads.itemRenderers
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.8
         */
-       public class ClassSelectorListRuntimeSelectableItemRendererBead extends 
SelectableItemRendererBeadBase
+       public class ClassSelectorListRuntimeSelectableItemRendererBead extends 
SelectableItemRendererBeadBase implements IRuntimeSelectableItemRenderer
        {
 
                /**
@@ -55,7 +56,7 @@ package org.apache.royale.jewel.beads.itemRenderers
 
         protected var classSelectorList:ClassSelectorList;
         
-        private var _selectable:Boolean;
+        private var _selectable:Boolean = true;
         
         /**
          *  <code>true</code> if the item renderer is can be selected
@@ -80,7 +81,7 @@ package org.apache.royale.jewel.beads.itemRenderers
             
         }
         
-        private var _hoverable:Boolean;
+        private var _hoverable:Boolean = true;
         
         /**
          *  <code>true</code> if the item renderer is can be hovered
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as
index ed1015e..993d1b1 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as
@@ -33,6 +33,7 @@ package org.apache.royale.jewel.beads.itemRenderers
        import org.apache.royale.events.ItemRendererEvent;
        import org.apache.royale.html.beads.IListView;
        import org.apache.royale.html.supportClasses.DataItemRenderer;
+    import org.apache.royale.core.IOwnerViewItemRenderer;
        import 
org.apache.royale.jewel.beads.itemRenderers.DataFieldProviderBead;
        import 
org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
        import org.apache.royale.utils.loadBeadFromValuesManager;
@@ -186,6 +187,8 @@ package org.apache.royale.jewel.beads.itemRenderers
                 {
                     dataItemRenderer.dataField = dataField;
                 }
+                if (ir is IOwnerViewItemRenderer)
+                    (ir as IOwnerViewItemRenderer).itemRendererOwnerView = 
dataGroup;
 
                                if (presentationModel) {
                                        UIBase(ir).height = 
presentationModel.rowHeight;
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
index 7a5a525..614c8e7 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as
@@ -23,16 +23,17 @@ package org.apache.royale.jewel.beads.itemRenderers
        import org.apache.royale.core.IBeadModel;
        import org.apache.royale.core.IDataProviderItemRendererMapper;
        import org.apache.royale.core.IDataProviderModel;
+       import org.apache.royale.core.IIndexedItemRenderer;
        import org.apache.royale.core.IItemRendererClassFactory;
        import org.apache.royale.core.IItemRendererOwnerView;
-       import org.apache.royale.core.IIndexedItemRenderer;
-    import org.apache.royale.core.ILabelFieldItemRenderer;
+       import org.apache.royale.core.ILabelFieldItemRenderer;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.UIBase;
        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.core.IOwnerViewItemRenderer;
        import 
org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
        import org.apache.royale.utils.loadBeadFromValuesManager;
        
@@ -297,6 +298,8 @@ package org.apache.royale.jewel.beads.itemRenderers
                                        (itemRenderer as 
IAlignItemRenderer).align = presentationModel.align;
                                }
                        }
+            if (itemRenderer is IOwnerViewItemRenderer)
+                (itemRenderer as IOwnerViewItemRenderer).itemRendererOwnerView 
= dataGroup;
                        
                        setData(itemRenderer, item, index);
                        dataGroup.addItemRendererAt(itemRenderer, index);
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
index 34d4e47..627d23e 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as
@@ -22,6 +22,7 @@ package org.apache.royale.jewel.beads.views
     {
     import org.apache.royale.html.elements.Select;
     }
+    import org.apache.royale.core.IItemRenderer;
     import org.apache.royale.core.ISelectableItemRenderer;
     import org.apache.royale.core.ISelectionModel;
     import org.apache.royale.core.IStrand;
@@ -114,21 +115,30 @@ package org.apache.royale.jewel.beads.views
                 */
                protected function selectionChangeHandler(event:Event):void
                {
-            var ir:ISelectableItemRenderer;
+            var selectionBead:ISelectableItemRenderer;
+            var ir:IItemRenderer;
             if (lastSelectedIndex != -1) {
-                ir = dataGroup.getItemRendererAt(lastSelectedIndex) as 
ISelectableItemRenderer;
+                ir = dataGroup.getItemRendererAt(lastSelectedIndex) as 
IItemRenderer;
             }
 
                        if(ir)
-                               ir.selected = false;
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = false;
+            }
             var newIndex:int = model.selectedIndex;
             if (model is IDropDownListModel) {
                 newIndex += IDropDownListModel(model).offset;
             }
 
-                       ir = dataGroup.getItemRendererAt(newIndex) as 
ISelectableItemRenderer;
-                       if(ir)
-                               ir.selected = true;
+                       ir = dataGroup.getItemRendererAt(newIndex) as 
IItemRenderer;
+            if(ir) 
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = true;
+            }
 
                        lastSelectedIndex = newIndex;
         }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
index 5f82e09..4cc2122 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
@@ -22,6 +22,7 @@ package org.apache.royale.jewel.beads.views
        {
        import org.apache.royale.events.IEventDispatcher;
        }
+       import org.apache.royale.core.IItemRenderer;
        import org.apache.royale.core.IItemRendererOwnerView;
        import org.apache.royale.core.ILayoutView;
        import org.apache.royale.core.IRollOverModel;
@@ -114,17 +115,25 @@ package org.apache.royale.jewel.beads.views
                 * @private
                 * @royaleignorecoercion 
org.apache.royale.core.ISelectableItemRenderer
                 */
-               protected function selectionChangeHandler(event:Event):void
-               {
-                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer;
-                       if(ir)
-                               ir.selected = false;
-                       ir = 
dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer;
-                       if(ir)
-                               ir.selected = true;
-
-                       lastSelectedIndex = listModel.selectedIndex;
-               }
+        protected function selectionChangeHandler(event:Event):void
+        {
+            var selectionBead:ISelectableItemRenderer;
+            var ir:IItemRenderer = 
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+            if (ir) 
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = false;
+            }
+            ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as 
IItemRenderer;
+            if (ir) {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = true;
+            }
+            
+            lastSelectedIndex = listModel.selectedIndex;
+        }
 
                protected var lastRollOverIndex:int = -1;
 
@@ -133,16 +142,24 @@ package org.apache.royale.jewel.beads.views
                 * @royaleignorecoercion 
org.apache.royale.core.ISelectableItemRenderer
                 * @royaleignorecoercion org.apache.royale.core.IRollOverModel
                 */
-               protected function rollOverIndexChangeHandler(event:Event):void
-               {
-                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(lastRollOverIndex) as ISelectableItemRenderer;
-                       if(ir)
-                               ir.hovered = false;
-                       ir = dataGroup.getItemRendererAt((listModel as 
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
-                       if(ir)
-                               ir.hovered = true;
-                       lastRollOverIndex = (listModel as 
IRollOverModel).rollOverIndex;
-               }
+        protected function rollOverIndexChangeHandler(event:Event):void
+        {
+            var selectionBead:ISelectableItemRenderer;
+            var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
+            if (ir) 
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.hovered = false;
+            }
+            ir = dataGroup.getItemRendererForIndex((listModel as 
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
+            if (ir) {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.hovered = true;
+            }
+            lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex;
+        }
        }
 
        COMPILE::SWF
@@ -199,32 +216,47 @@ package org.apache.royale.jewel.beads.views
                /**
                 * @private
                 */
-               protected function selectionChangeHandler(event:Event):void
-               {
-                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer;
-            if (ir)
-                               ir.selected = false;
-                       ir = 
dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer;
-                       if (ir)
-                               ir.selected = true;
+        protected function selectionChangeHandler(event:Event):void
+        {
+            var selectionBead:ISelectableItemRenderer;
+            var ir:IItemRenderer = 
dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
+            if (ir) 
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = false;
+            }
+            ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as 
IItemRenderer;
+            if (ir) {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = true;
+            }
             lastSelectedIndex = listModel.selectedIndex;
-               }
+        }
 
                protected var lastRollOverIndex:int = -1;
 
                /**
                 * @private
                 */
-               protected function rollOverIndexChangeHandler(event:Event):void
-               {
-                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(lastRollOverIndex) as ISelectableItemRenderer;
-                       if(ir)
-                               ir.hovered = false;
-                       ir = 
dataGroup.getItemRendererAt(IRollOverModel(listModel).rollOverIndex) as 
ISelectableItemRenderer;
-                       if(ir)
-                               ir.hovered = true;
-
-                       lastRollOverIndex = 
IRollOverModel(listModel).rollOverIndex;
-               }
+        protected function rollOverIndexChangeHandler(event:Event):void
+        {
+            var selectionBead:ISelectableItemRenderer;
+            var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
+            if (ir) 
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.hovered = false;
+            }
+            ir = dataGroup.getItemRendererForIndex((listModel as 
IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
+            if (ir) {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.hovered = true;
+            }
+            lastRollOverIndex = IRollOverModel(listModel).rollOverIndex;
+        }
        }
 }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
index 702e343..91e94b3 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as
@@ -68,6 +68,7 @@ package org.apache.royale.jewel.beads.views
 
                        if(prev_ir) {
                 selectionBead = prev_ir.getBeadByType(ISelectableItemRenderer) 
as ISelectableItemRenderer;
+                selectionBead.selected = false;
                                var lastRect:ClientRect = 
prev_ir.getBoundingBox;
                                var currentRect:ClientRect = ir.getBoundingBox;
                                var widthDiff:Number = lastRect.width / 
currentRect.width;
@@ -75,7 +76,8 @@ package org.apache.royale.jewel.beads.views
                                        widthDiff = 1;
                                var positionDiff:Number = lastRect.left - 
currentRect.left;
                                
-                selectionBead.selected = false;
+                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as 
ISelectableItemRenderer;
+                selectionBead.selected = true;
                                ir.animateIndicator(positionDiff, widthDiff, 
300, 'ease-in-out');                               
                        } else
                        {
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
index 3255256..c7a7cdb 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as
@@ -18,6 +18,7 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.views
 {
+    import org.apache.royale.core.IItemRenderer;
        import org.apache.royale.core.ISelectableItemRenderer;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.IStrandWithModel;
@@ -115,13 +116,22 @@ package org.apache.royale.jewel.beads.views
                 */
                override protected function 
selectionChangeHandler(event:Event):void
                {
-                       var ir:ISelectableItemRenderer = 
dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer;
+            var selectionBead:ISelectableItemRenderer;
+                       var ir:IItemRenderer = 
dataGroup.getItemRendererAt(lastSelectedIndex) as IItemRenderer;
             if (ir)
-                               ir.selected = false;
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = false;
+            }
                        
-                       ir = 
dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer;
+                       ir = 
dataGroup.getItemRendererAt(listModel.selectedIndex) as IItemRenderer;
                        if (ir)
-                               ir.selected = true;
+            {
+                selectionBead = (ir as 
IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+                if (selectionBead)
+                    selectionBead.selected = true;
+            }
             lastSelectedIndex = listModel.selectedIndex;
                }
        }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
index 73b0f19..2f7271a 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as
@@ -23,6 +23,7 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.core.WrappedHTMLElement;
        }
        import org.apache.royale.core.IItemRendererOwnerView;
+    import org.apache.royale.core.IOwnerViewItemRenderer;
     import org.apache.royale.core.SimpleCSSStylesWithFlex;
        import org.apache.royale.events.ItemClickedEvent;
        import org.apache.royale.events.MouseEvent;
@@ -41,7 +42,7 @@ package org.apache.royale.jewel.itemRenderers
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.7
         */
-       public class ButtonBarItemRenderer extends Button implements 
ITextItemRenderer
+       public class ButtonBarItemRenderer extends Button implements 
ITextItemRenderer, IOwnerViewItemRenderer
        {
                public function ButtonBarItemRenderer()
                {
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as
index 778b034..71d169e 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as
@@ -68,7 +68,7 @@ package org.apache.royale.jewel.itemRenderers
                        }
                        open = false;
                        addEventListener('click', onSectionNav);
-            
addBead(ClassSelectorListHoverableRuntimeSelectableItemRendererBead(navLinkClassSelector));
+            addBead(new 
ClassSelectorListHoverableRuntimeSelectableItemRendererBead(navLinkClassSelector));
                }
                
                private function onSectionNav(event:Event):void{
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as
index c486b2f..3d7f4af 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as
@@ -60,7 +60,7 @@ package org.apache.royale.jewel.itemRenderers
                {
                        super.data = value;
 
-            var model:DateChooserModel = (itemRendererOwnerView.host as 
IStrandWithModel).model as DateChooserModel;
+            var model:DateChooserModel = (itemRendererOwnerView.host.parent as 
IStrandWithModel).model as DateChooserModel;
                        //itemRendererOwnerView.parent is DateChooser
                        var viewState:int = model.viewState;
 
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
index e71fc5b..80d5517 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as
@@ -23,10 +23,12 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.core.WrappedHTMLElement;
        import org.apache.royale.html.util.addElementToWrapper;
     }
-       import org.apache.royale.core.StyledMXMLItemRenderer;
+       import org.apache.royale.core.IRuntimeSelectableItemRenderer;
+    import org.apache.royale.core.StyledMXMLItemRenderer;
        import org.apache.royale.events.Event;
        import org.apache.royale.html.util.getLabelFromData;
        import org.apache.royale.jewel.beads.controls.TextAlign;
+    import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead;
        import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer;
        import org.apache.royale.jewel.beads.itemRenderers.ITextItemRenderer;
        
@@ -143,6 +145,13 @@ package org.apache.royale.jewel.itemRenderers
                        addElementToWrapper(this, 'li');
             return element;
         }
+        
+        override public function addedToParent():void
+        {
+            super.addedToParent();
+            if (!getBeadByType(IRuntimeSelectableItemRenderer))
+                addBead(new 
ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList));
+        }
 
        }
 }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as
index 9fc7cbf..574e77e 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as
@@ -58,7 +58,7 @@ package org.apache.royale.jewel.itemRenderers
                        {
                                addClass("mxmlContent");
                        }
-            
addBead(ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList));
+            addBead(new 
ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList));
                }
 
                // private var _href:String = "#";
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as
index d2edcdb..4072de5 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as
@@ -55,7 +55,7 @@ package org.apache.royale.jewel.itemRenderers
 
                        typeNames = "jewel tabbarbutton";
                        addClass("selectable");
-            
addBead(ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList));
+            addBead(new 
ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList));
                }
 
                // private var _href:String = "#";
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as
index 6f820bf..b107f40 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as
@@ -24,6 +24,8 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.html.util.addElementToWrapper;
        import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer;
     }
+    import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead;
+       import org.apache.royale.core.IRuntimeSelectableItemRenderer;
        import org.apache.royale.jewel.beads.controls.TextAlign;
 
        /**
@@ -58,8 +60,35 @@ package org.apache.royale.jewel.itemRenderers
 
                        textAlign = new TextAlign();
                        addBead(textAlign);
+            
+            // a more PAYG implementation might be to have a base class or 
interface for
+            // TableItemRenderer so that TableCellCloseIconItemRenderer 
doesn't load
+            // a selection bead at all and doesn't need hoverable or 
selectable APIs
+            // to disable default functionality.
+            selectionBead = new 
ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList);
+            addBead(selectionBead);
                }
                
+        private var selectionBead:IRuntimeSelectableItemRenderer;
+        
+        public function get hoverable():Boolean
+        {
+            return selectionBead.hoverable;
+        }
+        public function set hoverable(value:Boolean):void
+        {
+            selectionBead.hoverable = value;
+        }
+        
+        public function get selectable():Boolean
+        {
+            return selectionBead.selectable;
+        }
+        public function set selectable(value:Boolean):void
+        {
+            selectionBead.selectable = value;
+        }
+        
         /**
          * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
          */

Reply via email to