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 a43dde5e1dacaac6f97e508984d5bd3141214987
Author: Alex Harui <[email protected]>
AuthorDate: Mon Feb 10 21:28:44 2020 -0800

    get Jewel to use new 'has' pattern.  The non-selectable renderers no longer 
have to disable default functionality.  Selection is PAYG
---
 .../src/main/config/compile-app-config.xml         |   3 +
 .../AdvancedIconListItemRenderer.mxml              |   2 +-
 .../itemRenderers/IconDataGridItemRenderer.mxml    |   2 +-
 .../royale/itemRenderers/IconListItemRenderer.mxml |   2 +-
 .../NavigationGroupExampleItemRenderer.mxml        |   2 +-
 .../TableCellCloseIconItemRenderer.mxml            |   2 +-
 .../apache/royale/core/StyledMXMLItemRenderer.as   |  21 ++++
 .../html/supportClasses/UIItemRendererBase.as      |  20 ----
 .../html/beads/ListItemRendererInitializer.as      | 114 +++++++++++++++++++
 .../projects/Jewel/src/main/resources/defaults.css |   5 +
 .../projects/Jewel/src/main/royale/JewelClasses.as |   5 +
 ...stHoverableRuntimeSelectableItemRendererBead.as |   2 +-
 ...electorListRuntimeSelectableItemRendererBead.as |   2 +-
 .../JewelListItemRendererInitializer.as            | 122 +++++++++++++++++++++
 .../CollapsibleNavigationSectionRenderer.as        |   2 +-
 .../itemRenderers/DropDownListItemRenderer.as      |   4 +-
 .../royale/jewel/itemRenderers/ListItemRenderer.as |   2 -
 .../itemRenderers/NavigationLinkItemRenderer.as    |   2 +-
 .../itemRenderers/TabBarButtonItemRenderer.as      |   2 +-
 .../jewel/supportClasses/table/TBodyContentArea.as |   5 +-
 20 files changed, 285 insertions(+), 36 deletions(-)

diff --git a/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml 
b/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml
index 0f1dba8..ce3103c 100644
--- a/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml
+++ b/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml
@@ -21,6 +21,9 @@
         <optimization>skipAsCoercions</optimization>
     </js-output-optimization>
     <compiler>
+        <targets>
+            <target>JSRoyale</target>
+        </targets>
         <theme>
             
<filename>../../../../../../frameworks/libs/JewelTheme.swc</filename>
             
<filename>../../../../../../frameworks/themes/Jewel-Light-NoFlat-Primary-Blue-Theme/src/main/resources/defaults.css</filename>
diff --git 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml
 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml
index 506b295..47185f4 100644
--- 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml
+++ 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml
@@ -44,7 +44,7 @@ limitations under the License.
 
             private function clickCloseButton():void
                        {
-                var view:ListView = this.itemRendererParent as ListView;
+                var view:ListView = this.itemRendererOwnerView as ListView;
                                if (view) {
                                        var host:List = view.host as List;
                                        if (host) {
diff --git 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml
 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml
index a190f98..18eb319 100644
--- 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml
+++ 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml
@@ -38,7 +38,7 @@ limitations under the License.
 
             public function clickCloseButton(event:Event):void
                        {
-                var view:ListView = this.itemRendererParent as ListView;
+                var view:ListView = this.itemRendererOwnerView as ListView;
                 var column:DataGridColumnList = view.host as 
DataGridColumnList;
                 (column.datagrid.dataProvider as 
ArrayList).removeItemAt(index);
             }
diff --git 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
index 4a37606..ed47180 100644
--- 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
+++ 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
@@ -38,7 +38,7 @@ limitations under the License.
 
             public function clickCloseButton():void
                        {
-                var view:ListView = this.itemRendererParent as ListView;
+                var view:ListView = this.itemRendererOwnerView as ListView;
                                if (view) {
                                        var host:List = view.host as List;
                                        if (host) {
diff --git 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml
 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml
index da6c12e..5f8bec9 100644
--- 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml
+++ 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml
@@ -64,7 +64,7 @@ limitations under the License.
 
         override public function onChange(selectedItem:Object):void{
             trace('selectedItem',selectedItem)
-            var parentNav:Navigation =   this.itemRendererParent ? 
this.itemRendererParent.host as Navigation : null;
+            var parentNav:Navigation =   this.itemRendererOwnerView ? 
this.itemRendererOwnerView.host as Navigation : null;
             if (parentNav) {
                 //this hierarchy support is a bit kooky, and probably there 
will be something better later with Hierarchical data setup
                 navlink.selectedChild =selectedItem as NavigationLinkVO;
diff --git 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml
 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml
index 0b928d2..21d8a13 100644
--- 
a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml
+++ 
b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml
@@ -31,7 +31,7 @@ limitations under the License.
             
             private function clickCloseButton():void
                        {
-                var table:Table = itemRendererParent as Table;
+                var table:Table = itemRendererOwnerView.host as Table;
                 (table.dataProvider as ArrayList).removeItemAt(rowIndex);
             }
         ]]>
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 b765887..645d4e6 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
@@ -18,6 +18,7 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.core
 {
+    import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.html.supportClasses.MXMLItemRenderer;
     import org.apache.royale.utils.ClassSelectorList;
     import org.apache.royale.utils.IClassSelectorListSupport;
@@ -169,6 +170,26 @@ package org.apache.royale.core
             }
         }
 
+        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;
+        }
+        
         /**
                 *  The method called when added to a parent. The 
StyledItemRenderer class uses
                 *  this opportunity to assign emphasis from the strand if 
possible, otherwise defaults
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
index e7defb7..bea3af4 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
@@ -19,7 +19,6 @@
 package org.apache.royale.html.supportClasses
 {
     import org.apache.royale.core.IIndexedItemRenderer;
-    import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.core.ISelectableItemRenderer;
     import org.apache.royale.core.IBead;
        import org.apache.royale.core.UIBase;
@@ -77,25 +76,6 @@ package org.apache.royale.html.supportClasses
             
                }
                
-               private var _itemRendererOwnerView:IItemRendererOwnerView;
-               
-               /**
-                * The parent container for the itemRenderer instance.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.0
-                */
-               public function get 
itemRendererOwnerView():IItemRendererOwnerView
-               {
-                       return _itemRendererOwnerView;
-               }
-               public function set 
itemRendererOwnerView(value:IItemRendererOwnerView):void
-               {
-                       _itemRendererOwnerView = value;
-               }
-               
         /**
          *  @copy org.apache.royale.core.ItemRendererClassFactory#mxmlContent
          *  
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
new file mode 100644
index 0000000..409df36
--- /dev/null
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.html.beads
+{      
+       import org.apache.royale.core.IItemRendererOwnerView;
+       
+       import org.apache.royale.core.Bead;
+       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.ILabelFieldItemRenderer;
+    import org.apache.royale.core.IListPresentationModel;
+       import org.apache.royale.core.IStrand;
+    import org.apache.royale.core.IStrandWithPresentationModel;
+       import org.apache.royale.core.IUIBase;
+    import org.apache.royale.core.SimpleCSSStyles;
+       import org.apache.royale.core.UIBase;
+
+       /**
+        *  The ListItemRendererInitializer class initializes item renderers
+     *  in list classes.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.0
+        */
+       public class ListItemRendererInitializer extends Bead implements 
IIndexedItemRendererInitializer
+       {
+               /**
+                *  constructor.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
+                */
+               public function ListItemRendererInitializer()
+               {
+               }
+               
+        protected var presentationModel:IListPresentationModel;
+        protected var dataProviderModel:IDataProviderModel;
+        protected var labelField:String;
+        
+               /**
+                *  @copy org.apache.royale.core.IBead#strand
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
+                *  @royaleignorecoercion HTMLInputElement
+                *  @royaleignorecoercion org.apache.royale.core.UIBase;
+                */
+               override public function set strand(value:IStrand):void
+               {       
+                       _strand = value;
+            presentationModel = (_strand as 
IStrandWithPresentationModel).presentationModel as IListPresentationModel;      
      
+            dataProviderModel = _strand.getBeadByType(IDataProviderModel) as 
IDataProviderModel;
+            labelField = dataProviderModel.labelField;            
+               }
+               
+               /**
+                *  @private
+                *  @royaleignorecoercion 
org.apache.royale.core.HTMLElementWrapper
+                *  @royaleignorecoercion 
org.apache.royale.core.IIndexedItemRenderer
+                */
+               public function initializeItemRenderer(ir:IItemRenderer, 
data:Object):void
+               {
+            if (ir is ILabelFieldItemRenderer)
+                (ir as ILabelFieldItemRenderer).labelField = labelField;
+            
+            setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
+        }
+        
+        /**
+         *  @private
+         *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
+         */
+        public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, 
data:Object, index:int):void
+        {
+            ir.index = index;
+            initializeItemRenderer(ir, data);
+        }
+        
+        protected function 
setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
+        {
+            var style:SimpleCSSStyles = new SimpleCSSStyles();
+            style.marginBottom = presentationModel.separatorThickness;
+            UIBase(ir).style = style;
+            UIBase(ir).height = presentationModel.rowHeight;
+            UIBase(ir).percentWidth = 100;
+               }
+
+       }
+}
diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css 
b/frameworks/projects/Jewel/src/main/resources/defaults.css
index 75b853f..a875c19 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -116,6 +116,7 @@ j|DataContainer {
   IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.StringItemRenderer");
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
   IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport");
   IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 }
@@ -280,6 +281,7 @@ j|ButtonBar {
   IDataProviderItemRendererMapper: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.ButtonBarItemRenderer");
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
 }
 
 @media -royale-swf {
@@ -3176,6 +3178,7 @@ j|List {
   IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer");
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
   IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport");
   IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
   IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel");
@@ -3197,6 +3200,7 @@ j|Navigation {
   IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.NavigationLinkItemRenderer");
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
   IViewport: 
ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport");
   IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
   IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel");
@@ -3636,6 +3640,7 @@ j|TabBar {
   IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout");
   IItemRendererClassFactory: 
ClassReference("org.apache.royale.core.ItemRendererClassFactory");
   IItemRenderer: 
ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer");
+  IItemRendererInitializer: 
ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
   IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport");
   IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
   IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel");
diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as 
b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index f02c488..47feeec 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -129,5 +129,10 @@ package
         import dialogPolyfill; dialogPolyfill;
         import org.apache.royale.utils.transparentPixelElement; 
transparentPixelElement;
         }
+        
+        import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead;
 ClassSelectorListRuntimeSelectableItemRendererBead;
+        import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
 ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
+        import 
org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer; 
JewelListItemRendererInitializer;
+
     }
 }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
similarity index 97%
rename from 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
rename to 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
index b46c871..1d6f8d5 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as
@@ -16,7 +16,7 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads
+package org.apache.royale.jewel.beads.itemRenderers
 {
     COMPILE::SWF
     {
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
similarity index 98%
rename from 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as
rename to 
frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
index 2248e87..adc60f3 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
@@ -16,7 +16,7 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.jewel.beads
+package org.apache.royale.jewel.beads.itemRenderers
 {
     COMPILE::SWF
     {
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
new file mode 100644
index 0000000..5916f7f
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
@@ -0,0 +1,122 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.jewel.beads.itemRenderers
+{      
+       import org.apache.royale.core.IItemRendererOwnerView;
+       
+       import org.apache.royale.core.Bead;
+       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.ILabelFieldItemRenderer;
+    import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
+       import org.apache.royale.core.IStrand;
+    import org.apache.royale.core.IStrandWithPresentationModel;
+    import org.apache.royale.core.IStrandWithModelView;
+    import org.apache.royale.core.SimpleCSSStyles;
+    import org.apache.royale.core.StyledMXMLItemRenderer;
+       import org.apache.royale.core.UIBase;
+
+       /**
+        *  The ListItemRendererInitializer class initializes item renderers
+     *  in list classes.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 10.2
+        *  @playerversion AIR 2.6
+        *  @productversion Royale 0.0
+        */
+       public class JewelListItemRendererInitializer extends Bead implements 
IIndexedItemRendererInitializer
+       {
+               /**
+                *  constructor.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
+                */
+               public function JewelListItemRendererInitializer()
+               {
+               }
+               
+        protected var presentationModel:IListPresentationModel;
+        protected var dataProviderModel:IDataProviderModel;
+        protected var labelField:String;
+        private var ownerView:IItemRendererOwnerView;
+        
+               /**
+                *  @copy org.apache.royale.core.IBead#strand
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.0
+                *  @royaleignorecoercion HTMLInputElement
+                *  @royaleignorecoercion org.apache.royale.core.UIBase;
+                */
+               override public function set strand(value:IStrand):void
+               {       
+                       _strand = value;
+            ownerView = (value as IStrandWithModelView).view as 
IItemRendererOwnerView;
+            presentationModel = (_strand as 
IStrandWithPresentationModel).presentationModel as IListPresentationModel;      
      
+            dataProviderModel = _strand.getBeadByType(IDataProviderModel) as 
IDataProviderModel;
+            labelField = dataProviderModel.labelField;            
+               }
+               
+               /**
+                *  @private
+                *  @royaleignorecoercion 
org.apache.royale.core.HTMLElementWrapper
+                *  @royaleignorecoercion 
org.apache.royale.core.IIndexedItemRenderer
+                */
+               public function initializeItemRenderer(ir:IItemRenderer, 
data:Object):void
+               {
+            if (ir is ILabelFieldItemRenderer)
+                (ir as ILabelFieldItemRenderer).labelField = labelField;
+            
+            setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
+        }
+        
+        /**
+         *  @private
+         *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
+         */
+        public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, 
data:Object, index:int):void
+        {
+            ir.index = index;
+            initializeItemRenderer(ir, data);
+        }
+        
+        protected function 
setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
+        {
+            if (presentationModel) {
+                UIBase(ir).height = presentationModel.rowHeight;
+                
+                if(ir is IAlignItemRenderer)
+                {
+                    (ir as IAlignItemRenderer).align = presentationModel.align;
+                }
+            }
+            if (ir is StyledMXMLItemRenderer && ownerView)
+                (ir as StyledMXMLItemRenderer).itemRendererOwnerView = 
ownerView;
+               }
+
+       }
+}
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 072a24f..778b034 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
@@ -28,7 +28,7 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.events.Event;
        import org.apache.royale.html.elements.A;
        import org.apache.royale.jewel.Navigation;
-    import 
org.apache.royale.jewel.beads.ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
+    import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
        import org.apache.royale.jewel.supportClasses.INavigationRenderer;
        import org.apache.royale.utils.ClassSelectorList;
        import org.apache.royale.utils.MXMLDataInterpreter;
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as
index dfc864d..7ad5a8b 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as
@@ -24,7 +24,7 @@ package org.apache.royale.jewel.itemRenderers
     import org.apache.royale.jewel.beads.views.DropDownListView;            
     }
     import org.apache.royale.html.elements.Option;
-    import org.apache.royale.html.supportClasses.MXMLItemRenderer;
+    import org.apache.royale.core.StyledMXMLItemRenderer;
 
     /**
      *  The DropDownListItemRenderer class creates a DropDownList menu item
@@ -34,7 +34,7 @@ package org.apache.royale.jewel.itemRenderers
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.4
      */    
-       public class DropDownListItemRenderer extends MXMLItemRenderer
+       public class DropDownListItemRenderer extends StyledMXMLItemRenderer
        {
         public static const OPTION_DISABLED:String = 
"DropDownList.Select.Default.Prompt";
 
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 74a6c9c..e71fc5b 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
@@ -29,7 +29,6 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.jewel.beads.controls.TextAlign;
        import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer;
        import org.apache.royale.jewel.beads.itemRenderers.ITextItemRenderer;
-    import 
org.apache.royale.jewel.beads.ClassSelectorListRuntimeSelectableItemRendererBead;
        
        /**
         *  The ListItemRenderer defines the basic Item Renderer for a Jewel 
List Component.
@@ -60,7 +59,6 @@ package org.apache.royale.jewel.itemRenderers
                        {
                                addClass("mxmlContent");
                        }
-            
addBead(ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList));
                }
 
                private var _text:String = "";
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 8e369fb..9fc7cbf 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
@@ -25,7 +25,7 @@ package org.apache.royale.jewel.itemRenderers
     }
        import org.apache.royale.core.StyledMXMLItemRenderer;
        import org.apache.royale.jewel.supportClasses.INavigationRenderer;
-    import 
org.apache.royale.jewel.beads.ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
+    import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead;
 
        /**
         *  The NavigationLinkItemRenderer defines the basic Item Renderer for 
a Jewel 
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 4bce633..d2edcdb 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
@@ -27,7 +27,7 @@ package org.apache.royale.jewel.itemRenderers
        import org.apache.royale.events.Event;
        import org.apache.royale.html.util.getLabelFromData;
        import org.apache.royale.jewel.supportClasses.INavigationRenderer;
-    import 
org.apache.royale.jewel.beads.ClassSelectorListRuntimeSelectableItemRendererBead;
+    import 
org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead;
     
        /**
         *  The TabBarButtonItemRenderer defines the basic Item Renderer for a 
Jewel 
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
index 001d25a..eef4fb6 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as
@@ -29,6 +29,7 @@ package org.apache.royale.jewel.supportClasses.table
     import org.apache.royale.events.ItemAddedEvent;
     import org.apache.royale.events.ItemRemovedEvent;
     import org.apache.royale.html.supportClasses.ContainerContentArea;
+    import org.apache.royale.jewel.itemRenderers.ListItemRenderer;
     import org.apache.royale.html.supportClasses.DataItemRenderer;
     import org.apache.royale.jewel.supportClasses.table.TableRow;
 
@@ -90,7 +91,7 @@ package org.apache.royale.jewel.supportClasses.table
                public function addItemRenderer(renderer:IItemRenderer, 
dispatchAdded:Boolean):void
                {
                        // this method is not used for now, so it needs to be 
tested to see if it's correctly implemented
-                       var r:DataItemRenderer = renderer as DataItemRenderer;
+                       var r:ListItemRenderer = renderer as ListItemRenderer;
                        r.itemRendererOwnerView = this; // easy access from 
renderer to table
                        var tableCell:TableCell = new TableCell();
                        tableCell.addElement(r);
@@ -123,7 +124,7 @@ package org.apache.royale.jewel.supportClasses.table
                 */
                public function addItemRendererAt(renderer:IItemRenderer, 
index:int):void
                {
-                       var r:DataItemRenderer = renderer as DataItemRenderer;
+                       var r:ListItemRenderer = renderer as ListItemRenderer;
                        r.itemRendererOwnerView = this; // easy access from 
renderer to table
                        var tableCell:TableCell = new TableCell();
                        tableCell.addElement(r);

Reply via email to