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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 203f55e  get MXTests to pass again.  The change to use 
ListItemRenderer broke a lot of things.  I'm surprised it worked in any 
configuration
203f55e is described below

commit 203f55e1006532bb40767300900074cab7b6e58d
Author: Alex Harui <[email protected]>
AuthorDate: Wed Oct 23 12:10:44 2019 -0700

    get MXTests to pass again.  The change to use ListItemRenderer broke a lot 
of things.  I'm surprised it worked in any configuration
---
 .../org/apache/royale/html/beads/DataGridView.as   | 18 +++--
 .../org/apache/royale/html/beads/IDataGridView.as  |  3 +-
 .../org/apache/royale/html/beads/TreeGridView.as   | 13 ++--
 .../royale/html/beads/layouts/TreeGridLayout.as    |  8 +--
 .../MXRoyale/src/main/resources/defaults.css       | 29 +++++++-
 .../src/main/resources/mx-royale-manifest.xml      |  2 +
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |  2 +
 .../controls/dataGridClasses/DataGridColumnList.as | 79 ++++++++++++++++++++++
 .../controls/dataGridClasses/DataGridListArea.as}  | 37 +++++-----
 .../royale/mx/controls/listClasses/ListBase.as     |  2 +-
 .../mx/controls/listClasses/ListItemRenderer.as    | 63 ++++++++++++++++-
 .../src/main/royale/mx/core/UIComponent.as         | 18 ++++-
 .../src/main/royale/mx/display/Graphics.as         | 22 +++---
 13 files changed, 239 insertions(+), 57 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
index b2d37f8..7f77b65 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as
@@ -23,15 +23,16 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.IBeadModel;
        import org.apache.royale.core.IBeadView;
        import org.apache.royale.core.IChild;
+    import org.apache.royale.core.ILayoutChild;
     import org.apache.royale.core.IDataGrid;
        import org.apache.royale.core.IDataGridModel;
        import org.apache.royale.core.IDataGridPresentationModel;
-       import org.apache.royale.core.IUIBase;
+       import org.apache.royale.core.IParent;
+    import org.apache.royale.core.IUIBase;
        import org.apache.royale.core.ValuesManager;
        import org.apache.royale.debugging.assert;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
-       import org.apache.royale.html.Container;
        import org.apache.royale.html.DataGridButtonBar;
        import org.apache.royale.html.beads.layouts.ButtonBarLayout;
        import org.apache.royale.html.supportClasses.IDataGridColumnList;
@@ -65,7 +66,7 @@ package org.apache.royale.html.beads
                        }
 
                        private var _header:DataGridButtonBar;
-                       private var _listArea:Container;
+                       private var _listArea:IUIBase;
 
                        private var _lists:Array;
 
@@ -81,7 +82,7 @@ package org.apache.royale.html.beads
                         * The area used to hold the columns
                         *
                         */
-                       public function get listArea():Container
+                       public function get listArea():IUIBase
                        {
                                return _listArea;
                        }
@@ -106,6 +107,8 @@ package org.apache.royale.html.beads
                         * @royaleignorecoercion org.apache.royale.core.IBead
                         * @royaleignorecoercion 
org.apache.royale.core.IBeadModel
                         * @royaleignorecoercion org.apache.royale.core.IChild
+                        * @royaleignorecoercion 
org.apache.royale.core.ILayoutChild
+                        * @royaleignorecoercion org.apache.royale.core.IUIBase
                         * @royaleignorecoercion org.apache.royale.html.DataGrid
                         */
                        override protected function 
handleInitComplete(event:Event):void
@@ -128,8 +131,8 @@ package org.apache.royale.html.beads
 
                 var listAreaClass:Class = 
ValuesManager.valuesImpl.getValue(host, "listAreaClass") as Class;
                 assert(listAreaClass != null,"listAreaClass for DataGrid must 
be set!")
-                               _listArea = new listAreaClass() as 
DataGridListArea;
-                               _listArea.percentWidth = 100;
+                               _listArea = new listAreaClass() as IUIBase;
+                               (_listArea as ILayoutChild).percentWidth = 100;
 
                                createLists();
 
@@ -218,6 +221,7 @@ package org.apache.royale.html.beads
                         * @royaleignorecoercion 
org.apache.royale.core.IDataGridModel
                         * @royaleignorecoercion org.apache.royale.core.IBead
                         * @royaleignorecoercion org.apache.royale.core.IChild
+                        * @royaleignorecoercion org.apache.royale.core.IParent
                         * @royaleignorecoercion 
org.apache.royale.core.IDataGrid
                         * @royaleignorecoercion 
org.apache.royale.core.IDataGridPresentationModel
                         * @royaleignorecoercion 
org.apache.royale.html.supportClasses.IDataGridColumn
@@ -261,7 +265,7 @@ package org.apache.royale.html.beads
                                        
list.addEventListener('change',handleColumnListChange);
                                        list.addBead(presentationModel as 
IBead);
 
-                                       _listArea.addElement(list as IChild);
+                                       (_listArea as IParent).addElement(list 
as IChild);
                                        _lists.push(list);
                                }
 
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
index 7eeba64..6d56e16 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
@@ -20,7 +20,6 @@ package org.apache.royale.html.beads
 {
        import org.apache.royale.core.IBeadView;
        import org.apache.royale.core.IUIBase;
-       import org.apache.royale.html.Container;
        
        /**
         *  The IDataGridView interface marks as a component as being the bead 
that
@@ -34,7 +33,7 @@ package org.apache.royale.html.beads
        public interface IDataGridView extends IBeadView
        {
                function get columnLists():Array;
-               function get listArea():Container;
+               function get listArea():IUIBase;
                function get header():IUIBase;
        }
 }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
index 1a5bb4c..f71e150 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
@@ -24,6 +24,8 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.IDataGridModel;
        import org.apache.royale.core.IDataGridPresentationModel;
        import org.apache.royale.core.IStrand;
+    import org.apache.royale.core.ILayoutChild;
+    import org.apache.royale.core.IParent;
        import org.apache.royale.core.IUIBase;
        import org.apache.royale.core.UIBase;
        import org.apache.royale.core.ValuesManager;
@@ -31,7 +33,6 @@ package org.apache.royale.html.beads
        import org.apache.royale.html.supportClasses.Viewport;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
-       import org.apache.royale.html.Container;
        import org.apache.royale.html.DataGridButtonBar;
        import org.apache.royale.html.List;
        import org.apache.royale.html.Tree;
@@ -71,7 +72,7 @@ package org.apache.royale.html.beads
                
                private var _strand:IStrand;
                private var _header:DataGridButtonBar;
-               private var _listArea:Container;
+               private var _listArea:IUIBase;
                
                private var _lists:Array;
                
@@ -87,7 +88,7 @@ package org.apache.royale.html.beads
                 * The area used to hold the columns
                 *
                 */
-               public function get listArea():Container
+               public function get listArea():IUIBase
                {
                        return _listArea;
                }
@@ -138,6 +139,7 @@ package org.apache.royale.html.beads
                /**
                 * @private
                 * @royaleignorecoercion org.apache.royale.core.IBeadModel
+                * @royaleignorecoercion org.apache.royale.core.ILayoutChild
                 * @royaleignorecoercion org.apache.royale.core.IDataGridModel
                 * @royaleignorecoercion 
org.apache.royale.events.IEventDispatcher
                 * @royaleignorecoercion 
org.apache.royale.html.supportClasses.IDataGridColumn
@@ -162,7 +164,7 @@ package org.apache.royale.html.beads
                        sharedModel.headerModel = _header.model as IBeadModel;
                        
                        _listArea = new TreeGridListArea();
-                       _listArea.percentWidth = 100;
+                       (_listArea as ILayoutChild).percentWidth = 100;
                                
                        createColumns();
                        
@@ -258,6 +260,7 @@ package org.apache.royale.html.beads
                 * @private
                 * @royaleignorecoercion Class
                 * @royaleignorecoercion org.apache.royale.core.IDataGridModel
+                * @royaleignorecoercion org.apache.royale.core.IParent
                 * @royaleignorecoercion 
org.apache.royale.html.supportClasses.IDataGridColumn
          * @royaleignorecoercion 
org.apache.royale.core.IDataGridPresentationModel
                 */
@@ -302,7 +305,7 @@ package org.apache.royale.html.beads
                                column.addBead(new Viewport());
                                column.addEventListener('change', 
handleColumnListChange);
                                
-                               _listArea.addElement(column);
+                               (_listArea as IParent).addElement(column);
                                _lists.push(column);
                                
                        }
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
index bfa6fb2..d2a132f 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
@@ -19,12 +19,12 @@
 package org.apache.royale.html.beads.layouts
 {
        import org.apache.royale.core.IBeadLayout;
-    import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
+       import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.IUIBase;
-    import org.apache.royale.core.layout.EdgeData;
        import org.apache.royale.core.UIBase;
-    import org.apache.royale.core.ValuesManager;
+       import org.apache.royale.core.ValuesManager;
+       import org.apache.royale.core.layout.EdgeData;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
        import org.apache.royale.geom.Rectangle;
@@ -128,7 +128,7 @@ package org.apache.royale.html.beads.layouts
                        }
                        var model:TreeGridModel = uiHost.model as TreeGridModel;
                        var header:ButtonBar = (uiHost.view as 
TreeGridView).header as ButtonBar;
-                       var contentArea:UIBase = (uiHost.view as 
TreeGridView).listArea;
+                       var contentArea:UIBase = (uiHost.view as 
TreeGridView).listArea as UIBase;
                        var displayedColumns:Array = (uiHost.view as 
TreeGridView).columnLists;
                        
                        var borderMetrics:EdgeData = (ValuesManager.valuesImpl 
as IBorderPaddingMarginValuesImpl).getBorderMetrics(_strand as IUIBase);
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css 
b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index b66359c..6c246f0 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -150,6 +150,7 @@ Container
        IBeadLayout: 
ClassReference("org.apache.royale.html.beads.layouts.BasicLayout");
        IViewport: 
ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
        IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+       align-items: flex-start;
 }
 
 DataGrid
@@ -159,7 +160,10 @@ DataGrid
        IBeadView: ClassReference("org.apache.royale.html.beads.DataGridView");
        IBeadModel: 
ClassReference("org.apache.royale.html.beads.models.DataGridModel");
        IBeadLayout: ClassReference("mx.controls.beads.layouts.DataGridLayout");
-       columnClass: 
ClassReference("org.apache.royale.html.supportClasses.DataGridColumnList");
+       columnClass: 
ClassReference("mx.controls.dataGridClasses.DataGridColumnList");
+       columnContainerClass: 
ClassReference("org.apache.royale.html.DataGridButtonBar");
+       columnLayoutClass: 
ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout");
+       listAreaClass: 
ClassReference("mx.controls.dataGridClasses.DataGridListArea");
        
        background-color: #FFFFFF;
        border: 1px solid #222222;
@@ -167,6 +171,20 @@ DataGrid
        height: 200px;
 }
 
+DataGridColumnList {
+       IBeadModel: 
ClassReference("org.apache.royale.html.beads.models.DataGridModel");
+       border-style: none;
+       background-color: #FFFFFF;
+}
+
+DataGridListArea {
+       background-color: #FFFFFF;
+       IBeadLayout: 
ClassReference("org.apache.royale.html.beads.layouts.HorizontalLayout");
+       IViewport: 
ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
+       IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+       flex-grow: 1;
+}
+
 DateChooser 
 {
        IBeadView:   
ClassReference("org.apache.royale.html.beads.DateChooserView");
@@ -216,6 +234,15 @@ List
        IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 }
 
+ListItemRenderer
+{
+       padding-top: 4px;
+       padding-bottom: 4px;
+       flex-shrink: 0;
+       flex-grow: 1;
+       cursor: pointer;
+}
+
 MenuBar {
        IBeadModel: ClassReference("mx.controls.beads.models.MenuBarModel");
        IBeadView:  ClassReference("org.apache.royale.html.beads.ListView");    
                
diff --git 
a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml 
b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
index 5fd17d5..d2932af 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
+++ b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
@@ -27,6 +27,8 @@
   <component id="ComboBox" class="mx.controls.ComboBox" />
   <component id="DataGrid" class="mx.controls.DataGrid" />
   <component id="DataGridColumn" 
class="mx.controls.dataGridClasses.DataGridColumn" />
+  <component id="DataGridColumnList" 
class="mx.controls.dataGridClasses.DataGridColumnList" />
+  <component id="DataGridListArea" 
class="mx.controls.dataGridClasses.DataGridListArea" />
        <component id="DateChooser" class="mx.controls.DateChooser" />
        <component id="Image" class="mx.controls.Image" />
        <component id="Label" class="mx.controls.Label" />
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as 
b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 19991fd..5216039 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -160,6 +160,8 @@ internal class MXRoyaleClasses
     import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList; 
AdvancedDataGridColumnList;
     import mx.controls.advancedDataGridClasses.AdvancedDataGridListArea; 
AdvancedDataGridListArea;
     import 
mx.controls.advancedDataGridClasses.AdvancedDataGridSingleSelectionMouseController;
 AdvancedDataGridSingleSelectionMouseController;
+    import mx.controls.dataGridClasses.DataGridColumnList; DataGridColumnList;
+    import mx.controls.dataGridClasses.DataGridListArea; DataGridListArea;
     import mx.controls.beads.AdvancedDataGridView; AdvancedDataGridView;
     import mx.controls.beads.DataGridView; DataGridView;
     import mx.controls.beads.layouts.AdvancedDataGridLayout; 
AdvancedDataGridLayout;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
new file mode 100644
index 0000000..565be0c
--- /dev/null
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
@@ -0,0 +1,79 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 mx.controls.dataGridClasses
+{
+    import mx.controls.List;
+    import org.apache.royale.html.supportClasses.IDataGridColumnList;
+    
+    //--------------------------------------
+    //  Events
+    //--------------------------------------
+    
+    /**
+     *  @copy org.apache.royale.core.ISelectionModel#change
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     */
+    [Event(name="change", type="org.apache.royale.events.Event")]
+    
+    /**
+     *  The DataGridColumnList class is the List class used internally
+     *  by DataGrid for each column.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     */
+    public class DataGridColumnList extends List implements IDataGridColumnList
+    {
+        /**
+         *  Constructor.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+        public function DataGridColumnList()
+        {
+            super();
+            typeNames = "DataGridColumnList";
+        }
+        
+        /**
+         *  The DataGridColumn for this list
+         *  
+         *
+         *  @toplevel
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         * 
+         *  @royalesuppresspublicvarwarning
+         */
+        public var columnInfo: DataGridColumn;
+    }
+
+}
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
similarity index 61%
copy from 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
copy to 
frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
index 7eeba64..3e20020 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
@@ -16,25 +16,22 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads
+
+package mx.controls.dataGridClasses
 {
-       import org.apache.royale.core.IBeadView;
-       import org.apache.royale.core.IUIBase;
-       import org.apache.royale.html.Container;
-       
-       /**
-        *  The IDataGridView interface marks as a component as being the bead 
that
-        *  can create the visual pieces for a org.apache.royale.html.DataGrid. 
-        *  
-        *  @langversion 3.0
-        *  @playerversion Flash 10.2
-        *  @playerversion AIR 2.6
-        *  @productversion Royale 0.0
-        */
-       public interface IDataGridView extends IBeadView
-       {
-               function get columnLists():Array;
-               function get listArea():Container;
-               function get header():IUIBase;
-       }
+    import mx.core.Container;
+
+    public class DataGridListArea extends Container
+    {
+        public function DataGridListArea()
+        {
+            super();
+            COMPILE::JS
+            {
+                typeNames = 'Container DataGridListArea';
+            }
+                
+        }
+    }
+
 }
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
index 279b894..ae60a3a 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
@@ -25,7 +25,6 @@ import mx.collections.IList;
 import mx.collections.ListCollectionView;
 import mx.collections.XMLListCollection;
 import mx.core.EdgeMetrics;
-import mx.core.IFactory;
 import mx.core.IUIComponent;
 import mx.core.ScrollPolicy;
 import mx.core.UIComponent;
@@ -40,6 +39,7 @@ import org.apache.royale.core.IChild;
 import org.apache.royale.core.IContainer;
 import org.apache.royale.core.IContainerBaseStrandChildrenHost;
 import org.apache.royale.core.IDataProviderItemRendererMapper;
+import org.apache.royale.core.IFactory;
 import org.apache.royale.core.IItemRendererClassFactory;
 import org.apache.royale.core.ILayoutChild;
 import org.apache.royale.core.ILayoutHost;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
index b6120c5..c59c64e 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
@@ -22,18 +22,21 @@ package mx.controls.listClasses
 import mx.core.UIComponent;
 import mx.events.ListEvent;
 
-import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
 import org.apache.royale.core.IBead;
 import org.apache.royale.core.IBeadView;
+import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
 import org.apache.royale.core.IChild;
 import org.apache.royale.core.IParent;
+import org.apache.royale.core.ISelectableItemRenderer;
 import org.apache.royale.core.IStrand;
 import org.apache.royale.core.ValuesManager;
 import org.apache.royale.core.layout.EdgeData;
 import org.apache.royale.events.IEventDispatcher;
+import org.apache.royale.events.ItemClickedEvent;
 import org.apache.royale.events.MouseEvent;
 import org.apache.royale.html.supportClasses.StringItemRenderer;
 import org.apache.royale.html.util.getLabelFromData;
+
 COMPILE::SWF
 {
     import flash.text.TextFieldAutoSize;
@@ -50,7 +53,7 @@ COMPILE::SWF
  *  @productversion Flex 3
  */
 
-public class ListItemRenderer extends UIComponent implements IListItemRenderer
+public class ListItemRenderer extends UIComponent implements 
IListItemRenderer, ISelectableItemRenderer
 {
     public function ListItemRenderer()
     {
@@ -63,6 +66,11 @@ public class ListItemRenderer extends UIComponent implements 
IListItemRenderer
             textField.selectable = false;
             textField.parentDrawsBackground = true;
         }
+        COMPILE::JS
+        {
+            typeNames = "ListItemRenderer";
+            isAbsolute = false;
+        }
     }
 
     COMPILE::SWF
@@ -208,6 +216,12 @@ public class ListItemRenderer extends UIComponent 
implements IListItemRenderer
         le.columnIndex = 0;
         le.itemRenderer = this;
         getComponentDispatcher().dispatchEvent(le);
+        // not sure why this doesn't use ItemRendererMouseController
+        // selection controller is looking for clicked
+        var ice:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+        ice.index = rowIndex;
+        ice.data = data;
+        dispatchEvent(ice);
     }
 
     private var _itemRendererParent:Object;
@@ -306,7 +320,10 @@ public class ListItemRenderer extends UIComponent 
implements IListItemRenderer
             }
             return getLabelFromData(this,value);
         }
-                       private var _data:Object;
+        
+    private var _data:Object;
+    private var _listData:Object;
+    private var _index:int;
                
     [Bindable("__NoChangeEvent__")]
     /**
@@ -329,6 +346,46 @@ public class ListItemRenderer extends UIComponent 
implements IListItemRenderer
         text = dataToString(value);
     }
 
+    [Bindable("__NoChangeEvent__")]
+    /**
+     *  The extra data being represented by this itemRenderer. This can be 
something simple like a String or
+     *  a Number or something very complex.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     */
+    public function get listData():Object
+    {
+        return _listData;
+    }
+    
+    public function set listData(value:Object):void
+    {
+        _listData = value;
+    }
+    
+    [Bindable("__NoChangeEvent__")]
+    /**
+     *  The index being represented by this itemRenderer. This can be 
something simple like a String or
+     *  a Number or something very complex.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     */
+    public function get index():int
+    {
+        return _index;
+    }
+    
+    public function set index(value:int):void
+    {
+        _index = value;
+    }
+    
     public function get nestLevel():int
     {
        throw new Error("Method not implemented.");
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
index 1da127f..98c7add 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
@@ -736,6 +736,12 @@ public class UIComponent extends UIBase
             return _graphics;
         }            
             
+        COMPILE::SWF
+        public function get flashgraphics():flash.display.Graphics
+        {
+            return super.graphics;
+        }            
+        
     COMPILE::JS{
        private var _mask:UIComponent;
                 public function set mask(value:UIComponent):void
@@ -1903,14 +1909,20 @@ COMPILE::JS
         _mxmlDocument = value;
     }
     
+    /**
+     * If the component is going to be used in an absolute positioning layout
+     */
+    COMPILE::JS
+    protected var isAbsolute:Boolean = true;
     
     override public function addedToParent():void
     {
         COMPILE::JS
         {
-            // Flex layouts don't use percentages the way the browser
-            // does, so we have to absolute position everything.
-            element.style.position = "absolute";
+            if (isAbsolute)
+                // Flex layouts don't use percentages the way the browser
+                // does, so we have to absolute position everything.
+                element.style.position = "absolute";
         }
         super.addedToParent();
         
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
index 01aa824..7caee4f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
@@ -55,7 +55,7 @@ package mx.display
             fillInProgress = false;
             COMPILE::SWF
             {
-                displayObject.graphics.clear();
+                displayObject.flashgraphics.clear();
             }
             COMPILE::JS
             {
@@ -76,7 +76,7 @@ package mx.display
         {
             COMPILE::SWF
             {
-                displayObject.graphics.beginFill(color, alpha);
+                displayObject.flashgraphics.beginFill(color, alpha);
             }
             COMPILE::JS
             {
@@ -95,7 +95,7 @@ package mx.display
                {
             COMPILE::SWF
             {
-                displayObject.graphics.endFill();
+                displayObject.flashgraphics.endFill();
             }
             COMPILE::JS
             {
@@ -189,7 +189,7 @@ package mx.display
                {
             COMPILE::SWF
             {
-                displayObject.graphics.lineStyle(thickness, color, alpha);
+                displayObject.flashgraphics.lineStyle(thickness, color, alpha);
             }
             COMPILE::JS
             {
@@ -203,7 +203,7 @@ package mx.display
                {
             COMPILE::SWF
             {
-                displayObject.graphics.moveTo(x, y);
+                displayObject.flashgraphics.moveTo(x, y);
             }
             COMPILE::JS
             {
@@ -217,7 +217,7 @@ package mx.display
                {
             COMPILE::SWF
             {
-                displayObject.graphics.lineTo(x, y);
+                displayObject.flashgraphics.lineTo(x, y);
             }
             COMPILE::JS
             {
@@ -231,7 +231,7 @@ package mx.display
                {
             COMPILE::SWF
             {
-                displayObject.graphics.curveTo(controlX, controlY, anchorX, 
anchorY);
+                displayObject.flashgraphics.curveTo(controlX, controlY, 
anchorX, anchorY);
             }
             COMPILE::JS
             {
@@ -248,7 +248,7 @@ package mx.display
         {
             COMPILE::SWF
             {
-                displayObject.graphics.drawEllipse(x, y, width, height);
+                displayObject.flashgraphics.drawEllipse(x, y, width, height);
             }
             COMPILE::JS
             {
@@ -279,7 +279,7 @@ package mx.display
         {
             COMPILE::SWF
             {
-                displayObject.graphics.drawRoundRect(x, y, width, height, 
radiusX, radiusY);
+                displayObject.flashgraphics.drawRoundRect(x, y, width, height, 
radiusX, radiusY);
             }
             COMPILE::JS
             {
@@ -315,7 +315,7 @@ package mx.display
         {
             COMPILE::SWF
             {
-                displayObject.graphics.drawRect(x, y, width, height);
+                displayObject.flashgraphics.drawRect(x, y, width, height);
             }
             COMPILE::JS
             {
@@ -346,7 +346,7 @@ package mx.display
         {
             COMPILE::SWF
             {
-                displayObject.graphics.drawCircle(x, y, radius);
+                displayObject.flashgraphics.drawCircle(x, y, radius);
             }
             COMPILE::JS
             {

Reply via email to