You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/02/20 02:07:07 UTC

[royale-asjs] branch develop updated (21ced85 -> b632cd9)

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

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


    from 21ced85  jewel-themes: upgrade all themes with latest changes
     add ef3d94b  rename IItemRendererParent to IItemRendererOwnerView
     add 5414af8  start to move selection/hover to a bead
     add 40d7a98  add bead to SWC
     add f1bdcd3  rename IItemRendererParent to IItemRendererOwnerView because that's what it is.  It isn't really a parent
     add 823f026  rough pieces of the refactor.  Still need to add 'has' checks
     add 8b603dc  more refactoring, some has
     add fb8b203  working towards a clean compile
     add 1d6474e  working towards a clean compile
     add 19124aa  clean compile of Core, Basic, Charts, MDL, MXRoyale, SparkRoyale
     add bdaf4c8  clean compile
     add 6c5488b  drop itemRendererOwner as a requirement for IItemRenderer and get ListExample to work
     add a43dde5  get Jewel to use new 'has' pattern.  The non-selectable renderers no longer have to disable default functionality.  Selection is PAYG
     add 14f85e6  Jewel and Charts seem to be working
     add ad03195  restore properties in ADGIR
     add a1da93c  menubar is working in MXRoyale
     add d58f7a9  MX ADG
     add d878877  MDLExample
     add ea6e90e  Button and Label as dropin item renderers
     add 07fada3  more fixes for has
     add bac0d85  don't need this
     new 19797e9  Merge branch 'has' into develop
     new edb9bd1  refactor IListPresentationModel to resolve some issues found in the 'has' branch merge
     new 7082ae3  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
     new 0a7385c  we don't always get a collectionchange so set adg after list creation
     new 17e8fdb  fix issues in tree node closing.  Should fix #673
     new 97e33c5  distinguish between clicking on open/close icon or label of Tree ItemRenderer.  Should fix #670
     new ea9279b  mxtests pass
     new 3617abc  clean compile ASDoc
     new f1948e9  ASDoc runs again
     new 9ac18ad  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
     new daa2ee1  refactor to propagate events so we don't have to send an event from the factory
     new 6763700  get examples to compile
     new b632cd9  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../main/royale/products/ProductItemRenderer.as    |   1 -
 .../ASDoc/src/main/royale/ASDocMainView.mxml       |  17 +-
 ...gBackgroundColorHashAnchorStringItemRenderer.as |  75 +++----
 .../src/main/royale/EventSummaryRenderer.mxml      |  53 +----
 .../src/main/royale/MethodSummaryRenderer.mxml     |  51 +----
 .../royale/OptionalHashAnchorStringItemRenderer.as |  27 ++-
 .../ASDoc/src/main/royale/ParameterRenderer.as     |  29 ++-
 .../ASDoc/src/main/royale/SummaryRenderer.mxml     |  53 +----
 .../main/royale/products/ProductItemRenderer.as    |   2 -
 .../main/royale/products/ProductItemRenderer.as    |   2 -
 .../ListExample/src/main/royale/MyInitialView.mxml |   7 +-
 .../main/royale/simple/IRFactoryForArrayData.as    | 178 ---------------
 .../TodoListSingleSelectionMouseController.as      |  59 +++++
 .../sample/todo/renderers/TodoItemRenderer.mxml    |  12 +-
 .../royale/sample/todo/views/TodoListView.mxml     |  24 +-
 .../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 +-
 .../projects/Basic/src/main/resources/defaults.css |  40 +++-
 .../projects/Basic/src/main/royale/BasicClasses.as |   5 +
 .../org/apache/royale/core/DataContainerBase.as    |   2 +-
 .../apache/royale/core/StyledMXMLItemRenderer.as   |  78 +++----
 .../royale/org/apache/royale/html/DataContainer.as |  12 +-
 .../src/main/royale/org/apache/royale/html/List.as |   1 -
 .../org/apache/royale/html/MultiSelectionList.as   |   1 -
 .../org/apache/royale/html/MultiSelectionTree.as   |   1 -
 .../accessories/ToolTipRemovalWhenItemRemoved.as   |   5 +-
 .../royale/html/beads/AccordionCollapseBead.as     |   4 +-
 ...ingBackgroundColorSelectableItemRendererBead.as | 129 +++++++++++
 .../apache/royale/html/beads/DataContainerView.as  |  28 +--
 .../html/beads/DataItemRendererFactoryBase.as      | 126 +++++++++++
 .../beads/DataItemRendererFactoryForArrayData.as   | 168 +++-----------
 .../beads/DataItemRendererFactoryForArrayList.as   | 139 ++----------
 .../DataItemRendererFactoryForCollectionView.as    | 218 +++++-------------
 .../beads/DataItemRendererFactoryForColumnData.as  |  86 +------
 .../DataItemRendererFactoryForHierarchicalData.as  |  52 +----
 .../DynamicAddItemRendererForArrayListData.as      | 184 +++------------
 .../DynamicItemsRendererFactoryForArrayListData.as | 187 +++-------------
 ...cRemoveAllByNullItemRendererForArrayListData.as |  16 +-
 ...DynamicRemoveAllItemRendererForArrayListData.as |  16 +-
 .../DynamicRemoveItemRendererForArrayListData.as   | 102 +--------
 .../DynamicUpdateItemRendererForArrayListData.as   | 109 ++-------
 .../apache/royale/html/beads/ITextItemRenderer.as  |   7 +-
 .../html/beads/IndexedItemRendererInitializer.as   | 107 +++++++++
 ...yForArrayData.as => ItemRendererFactoryBase.as} | 149 ++++++-------
 .../html/beads/ListItemRendererInitializer.as      |  87 ++++++++
 .../beads/ListOwnerViewItemRendererInitializer.as  |  97 ++++++++
 .../org/apache/royale/html/beads/ListView.as       |  79 +++++--
 .../MultiSelectionItemRendererClassFactory.as      |   6 +-
 .../royale/html/beads/MultiSelectionListView.as    |   2 +-
 ...dBackgroundRuntimeSelectableItemRendererBead.as | 128 +++++++++++
 .../SolidBackgroundSelectableItemRendererBead.as}  |  59 ++---
 .../beads/TextItemRendererFactoryForArrayData.as   |   8 +-
 .../TextItemRendererFactoryForStringVectorData.as  |  10 +-
 .../html/beads/TreeItemRendererInitializer.as      |  86 +++++++
 .../royale/html/beads/VirtualDataContainerView.as  |   4 +-
 ...ta.as => VirtualDataItemRendererFactoryBase.as} |  92 ++++----
 .../VirtualDataItemRendererFactoryForArrayData.as  | 166 ++------------
 .../apache/royale/html/beads/VirtualListView.as    |  74 +++++--
 .../controllers/ItemRendererMouseController.as     |  57 +++--
 .../ListMultiSelectionMouseController.as           |  29 ++-
 .../ListSingleSelectionMouseController.as          |  26 ++-
 .../MultiSelectionItemRendererMouseController.as   |  59 +++--
 .../TreeSingleSelectionMouseController.as          |  26 ++-
 .../layouts/UseMaxChildForTileCellDimensions.as    |   4 +-
 .../beads/layouts/VirtualListVerticalLayout.as     |   8 +-
 .../html/beads/models/ListPresentationModel.as     |   2 +-
 .../html/supportClasses/AccordionItemRenderer.as   | 107 +--------
 ...AlternatingBackgroundColorStringItemRenderer.as |  39 ++--
 .../supportClasses/ButtonBarButtonItemRenderer.as  |   4 +-
 .../supportClasses/CascadingMenuItemRenderer.as    |   2 -
 .../html/supportClasses/ColorItemRenderer.as       |  51 ++---
 .../html/supportClasses/ContainerContentArea.as    |  11 +-
 .../DataGridButtonBarButtonItemRenderer.as         |   2 +-
 .../apache/royale/html/supportClasses/DataGroup.as |   4 +-
 .../royale/html/supportClasses/DataItemRenderer.as |  25 ---
 .../html/supportClasses/GraphicsItemRenderer.as    |  21 +-
 .../html/supportClasses/MenuBarItemRenderer.as     |   2 -
 .../royale/html/supportClasses/MenuItemRenderer.as |   2 -
 .../html/supportClasses/StringItemRenderer.as      |   1 -
 .../html/supportClasses/TextButtonItemRenderer.as  | 124 +----------
 .../html/supportClasses/TextFieldItemRenderer.as   |  17 +-
 .../supportClasses/TreeGridControlItemRenderer.as  |  37 +++-
 .../royale/html/supportClasses/TreeItemRenderer.as |  25 ++-
 .../html/supportClasses/UIItemRendererBase.as      | 170 +-------------
 .../Charts/src/main/resources/defaults.css         |   5 +
 .../Charts/src/main/royale/ChartsClasses.as        |   1 +
 .../charts/beads/ChartItemRendererFactory.as       |   7 +-
 .../beads/ChartSelectableItemRendererBead.as       | 110 +++++++++
 .../org/apache/royale/charts/beads/ChartView.as    |  11 +-
 ...ataItemRendererFactoryForSeriesArrayListData.as |  94 ++------
 .../beads/DataItemRendererFactoryForSeriesData.as  | 246 ++++++++++++++-------
 .../controllers/ChartSeriesMouseController.as      |   4 +-
 .../layouts/LineChartCategoryVsLinearLayout.as     |   1 -
 .../beads/layouts/LineChartLinearVsLinearLayout.as |   1 -
 .../apache/royale/charts/core/IChartDataGroup.as   |   4 +-
 .../royale/charts/core/IChartItemRenderer.as       |  13 ++
 .../royale/charts/optimized/SVGBoxItemRenderer.as  |   1 -
 .../royale/charts/optimized/SVGChartDataGroup.as   |  22 +-
 .../charts/optimized/SVGLineSegmentItemRenderer.as |  78 +------
 .../charts/optimized/SVGWedgeItemRenderer.as       |  52 +----
 .../charts/supportClasses/BoxItemRenderer.as       | 120 +---------
 .../royale/charts/supportClasses/ChartDataGroup.as |  24 +-
 .../ChartItemRenderer.as}                          |  76 +++++--
 .../supportClasses/LineSegmentItemRenderer.as      |  73 +-----
 .../charts/supportClasses/WedgeItemRenderer.as     |  79 +------
 .../org/apache/royale/collections/IArrayList.as    |   2 +-
 .../projects/Core/src/main/royale/CoreClasses.as   |  11 +-
 .../core/IDataProviderVirtualItemRendererMapper.as |   2 +-
 .../apache/royale/core/IIndexedItemRenderer.as}    |  18 +-
 ...arent.as => IIndexedItemRendererInitializer.as} |  28 +--
 .../royale/org/apache/royale/core/IItemRenderer.as |  25 +--
 .../royale/core/IItemRendererClassFactory.as       |   8 +-
 ...ndererParent.as => IItemRendererInitializer.as} |  31 ++-
 ...RendererParent.as => IItemRendererOwnerView.as} |   9 +-
 .../apache/royale/core/ILabelFieldItemRenderer.as} |  26 +--
 .../main/royale/org/apache/royale/core/IList.as    |   2 +-
 .../apache/royale/core/IListDataItemRenderer.as}   |  19 +-
 .../apache/royale/core/IListPresentationModel.as   |  10 -
 .../apache/royale/core/IOwnerViewItemRenderer.as}  |  27 +--
 .../apache/royale/core/ISelectableItemRenderer.as  |  25 +--
 .../apache/royale/core/ItemRendererClassFactory.as |  13 +-
 .../royale/core/ItemRendererOwnerViewBead.as}      |  31 +--
 ...er.as => SelectableItemRendererClassFactory.as} |  85 ++++---
 .../org/apache/royale/events/ItemAddedEvent.as     |   2 +-
 .../org/apache/royale/events/ItemRemovedEvent.as   |   2 +-
 .../org/apache/royale/events/ItemRendererEvent.as  |   2 +-
 .../{core => html}/IListPresentationModel.as       |  17 +-
 .../org/apache/royale/html/beads/IListView.as      |   4 +-
 .../html/beads/SelectableItemRendererBeadBase.as   | 212 ++++++++++++++++++
 .../DragDrop/src/main/royale/DragDropClasses.as    |   2 +
 .../royale/html/beads/ButtonBarReorderBead.as      |  14 +-
 .../beads/DragDropListItemRendererInitializer.as   |  87 ++++++++
 .../html/beads/MultiSelectionDragImageBead.as      |   6 +-
 .../beads/SensitiveMultiSelectionDropTargetBead.as |  22 +-
 .../SensitiveSingleSelectionDropTargetBead.as      |  22 +-
 .../html/beads/SingleSelectionDragImageBead.as     |   2 +-
 .../html/beads/SingleSelectionDragSourceBead.as    |   4 +-
 .../html/beads/SingleSelectionDropIndicatorBead.as |   2 +-
 .../html/beads/SingleSelectionDropTargetBead.as    |  20 +-
 .../projects/Flat/src/main/resources/defaults.css  |   3 +-
 .../projects/Flat/src/main/royale/FlatClasses.as   |   2 +-
 ...stSolidBackgroundSelectableItemRendererBead.as} |  16 +-
 .../projects/Jewel/src/main/resources/defaults.css |   5 +
 .../projects/Jewel/src/main/royale/JewelClasses.as |   5 +
 .../main/royale/org/apache/royale/jewel/List.as    |  12 +-
 .../controllers/ItemRendererMouseController.as     |  68 +++---
 .../TableCellSelectionMouseController.as           |  18 +-
 .../AddListItemRendererForArrayListData.as         |  34 +--
 .../itemRenderers/AddTableRowForArrayListData.as   |  22 +-
 ...tHoverableRuntimeSelectableItemRendererBead.as} |  46 ++--
 ...electorListRuntimeSelectableItemRendererBead.as | 122 ++++++++++
 .../DataItemRendererFactoryForArrayData.as         |  19 +-
 .../DataItemRendererFactoryForCollectionView.as    |  39 ++--
 ...DownListItemRendererFactoryForCollectionView.as |  10 +-
 .../jewel/beads/itemRenderers/ITextItemRenderer.as |   5 +-
 .../JewelListItemRendererInitializer.as            | 122 ++++++++++
 .../RemoveAllItemRendererForArrayListData.as       |  16 +-
 .../RemoveListItemRendererForArrayListData.as      |  26 +--
 .../RemoveTableRowForArrayListData.as              |  24 +-
 .../TableItemRendererFactoryForCollectionView.as   |  22 +-
 .../UpdateListItemRendererForArrayListData.as      |  20 +-
 .../UpdateTableRowForArrayListData.as              |  24 +-
 ...tualDataItemRendererFactoryForCollectionView.as | 163 ++------------
 .../beads/layouts/VirtualListVerticalLayout.as     |   8 +-
 .../royale/jewel/beads/views/DropDownListView.as   |  22 +-
 .../apache/royale/jewel/beads/views/ListView.as    | 134 ++++++-----
 .../apache/royale/jewel/beads/views/TabBarView.as  |  12 +-
 .../apache/royale/jewel/beads/views/TableView.as   |  18 +-
 .../royale/jewel/beads/views/VirtualListView.as    |  49 ++--
 .../jewel/itemRenderers/ButtonBarItemRenderer.as   |  20 +-
 .../CollapsibleNavigationSectionRenderer.as        |  15 +-
 .../royale/jewel/itemRenderers/DateItemRenderer.as |   8 +-
 .../itemRenderers/DropDownListItemRenderer.as      |   6 +-
 .../itemRenderers/IconButtonBarItemRenderer.as     | 125 +----------
 .../royale/jewel/itemRenderers/ListItemRenderer.as |  54 +----
 .../itemRenderers/NavigationLinkItemRenderer.as    |  15 +-
 .../jewel/itemRenderers/StringItemRenderer.as      |   1 -
 .../itemRenderers/TabBarButtonItemRenderer.as      |  41 +---
 .../jewel/itemRenderers/TableItemRenderer.as       |  29 +++
 .../itemRenderers/ToggleButtonBarItemRenderer.as   |  23 +-
 .../supportClasses/container/DataContainerBase.as  |   2 +-
 .../royale/jewel/supportClasses/list/DataGroup.as  |   2 +-
 .../supportClasses/list/IListPresentationModel.as  |  13 +-
 .../jewel/supportClasses/table/TBodyContentArea.as |  31 +--
 .../MXRoyale/src/main/resources/defaults.css       |  15 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   7 +
 .../main/royale/mx/collections/ICollectionView.as  |   1 -
 .../MXRoyale/src/main/royale/mx/controls/Button.as |  49 +++-
 .../MXRoyale/src/main/royale/mx/controls/Label.as  |  43 +++-
 .../AdvancedDataGridHeaderRenderer.as              |  19 --
 .../AdvancedDataGridItemRenderer.as                |  88 +++-----
 .../AdvancedDataGridSelectableItemRendererBead.as  | 140 ++++++++++++
 ...actoryForICollectionViewAdvancedDataGridData.as | 105 +--------
 .../AdvancedDataGridItemRendererInitializer.as     | 117 ++++++++++
 .../mx/controls/beads/AdvancedDataGridView.as      |  15 +-
 .../controls/beads/ListItemRendererInitializer.as  |  85 +++++++
 .../controls/beads/TreeItemRendererInitializer.as  |  86 +++++++
 .../beads/TreeItemRendererMouseController.as       |  96 ++++++++
 .../beads/layouts/AdvancedDataGridLayout.as        |   2 +-
 .../AdvancedDataGridVirtualListVerticalLayout.as   |   8 +-
 .../beads/models/ListPresentationModel.as}         |  20 +-
 .../mx/controls/listClasses/AdvancedListBase.as    |  23 +-
 ...ataItemRendererFactoryForICollectionViewData.as | 190 ++++++++++++----
 .../DataItemRendererFactoryForIListData.as         |  76 ++++---
 .../listClasses/IDropInListItemRenderer.as         |  23 +-
 .../mx/controls/listClasses/IListItemRenderer.as   |   2 +-
 .../royale/mx/controls/listClasses/ListBase.as     |   1 +
 .../mx/controls/listClasses/ListItemRenderer.as    | 137 ++----------
 ...ataItemRendererFactoryForICollectionViewData.as |  42 +---
 .../VirtualDataItemRendererFactoryForIListData.as  |  57 ++---
 .../listClasses/VirtualListVerticalLayout.as       |   8 +-
 ...rerFactoryForICollectionViewHierarchicalData.as |  86 ++-----
 .../treeClasses/HierarchicalCollectionView.as      |  73 ++++--
 .../mx/controls/treeClasses/TreeItemRenderer.as    | 173 +--------------
 .../src/main/royale/mx/core/IDataRenderer.as       |  22 +-
 .../src/main/royale/mx/core/UIComponent.as         |  18 ++
 .../src/main/resources/defaults.css                |   7 +
 .../src/main/royale/MDLClasses.as                  |   1 +
 .../DynamicTabsAddItemRendererForArrayListData.as  |  37 ----
 .../TabsDataItemRendererFactoryForArrayListData.as |  72 +-----
 .../beads/TabsItemRendererFactoryForArrayData.as   |  10 +-
 .../mdl/beads/TabsItemRendererInitializer.as       | 120 ++++++++++
 .../itemRenderers/FooterLinkItemMouseRenderer.as   |   5 -
 .../royale/mdl/itemRenderers/MenuItemRenderer.as   |   5 -
 .../NavigationLinkItemMouseRenderer.as             |   5 -
 .../mdl/itemRenderers/TableRowItemRenderer.as      |   2 +-
 .../TableRowItemSingleSelectionMouseRenderer.as    |  32 ++-
 .../royale/mdl/supportClasses/ITabItemRenderer.as  |   5 +-
 .../SparkRoyale/src/main/resources/defaults.css    |  12 +-
 .../main/royale/spark/components/DataRenderer.as   |  29 ++-
 .../royale/spark/components/beads/TabBarView.as    |  21 +-
 .../components/supportClasses/ItemRenderer.as      |  18 +-
 .../supportClasses/SparkTextButtonItemRenderer.as  |  12 +-
 237 files changed, 4835 insertions(+), 4998 deletions(-)
 delete mode 100644 examples/royale/ListExample/src/main/royale/simple/IRFactoryForArrayData.as
 create mode 100644 examples/royale/TodoListSampleApp/src/main/royale/sample/todo/controllers/TodoListSingleSelectionMouseController.as
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IndexedItemRendererInitializer.as
 copy frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/{DataItemRendererFactoryForArrayData.as => ItemRendererFactoryBase.as} (63%)
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundRuntimeSelectableItemRendererBead.as
 copy frameworks/projects/{MaterialDesignLite/src/main/royale/org/apache/royale/mdl/itemRenderers/TableRowItemSingleSelectionMouseRenderer.as => Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundSelectableItemRendererBead.as} (54%)
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeItemRendererInitializer.as
 copy frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/{VirtualDataItemRendererFactoryForArrayData.as => VirtualDataItemRendererFactoryBase.as} (74%)
 create mode 100644 frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as
 copy frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/{optimized/SVGBoxItemRenderer.as => supportClasses/ChartItemRenderer.as} (69%)
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as => Core/src/main/royale/org/apache/royale/core/IIndexedItemRenderer.as} (74%)
 copy frameworks/projects/Core/src/main/royale/org/apache/royale/core/{IItemRendererParent.as => IIndexedItemRendererInitializer.as} (60%)
 copy frameworks/projects/Core/src/main/royale/org/apache/royale/core/{IItemRendererParent.as => IItemRendererInitializer.as} (60%)
 rename frameworks/projects/Core/src/main/royale/org/apache/royale/core/{IItemRendererParent.as => IItemRendererOwnerView.as} (87%)
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as => Core/src/main/royale/org/apache/royale/core/ILabelFieldItemRenderer.as} (73%)
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as => Core/src/main/royale/org/apache/royale/core/IListDataItemRenderer.as} (74%)
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as => Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as} (68%)
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/supportClasses/DataGroup.as => Core/src/main/royale/org/apache/royale/core/ItemRendererOwnerViewBead.as} (70%)
 copy frameworks/projects/Core/src/main/royale/org/apache/royale/core/{ISelectableItemRenderer.as => SelectableItemRendererClassFactory.as} (50%)
 copy frameworks/projects/Core/src/main/royale/org/apache/royale/{core => html}/IListPresentationModel.as (81%)
 create mode 100644 frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as
 create mode 100644 frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
 rename frameworks/projects/Flat/src/main/royale/org/apache/royale/flat/supportClasses/{DropDownListStringItemRenderer.as => DropDownListSolidBackgroundSelectableItemRendererBead.as} (77%)
 copy frameworks/projects/{MaterialDesignLite/src/main/royale/org/apache/royale/mdl/itemRenderers/FooterLinkItemMouseRenderer.as => Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as} (59%)
 create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as
 create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as
 create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSelectableItemRendererBead.as
 create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as
 create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ListItemRendererInitializer.as
 create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererInitializer.as
 create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererMouseController.as
 copy frameworks/projects/{Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as => MXRoyale/src/main/royale/mx/controls/beads/models/ListPresentationModel.as} (75%)
 create mode 100644 frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as


[royale-asjs] 02/13: refactor IListPresentationModel to resolve some issues found in the 'has' branch merge

Posted by ah...@apache.org.
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

commit edb9bd10cb31fa0cca8323f68146833578447466
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 01:35:20 2020 -0800

    refactor IListPresentationModel to resolve some issues found in the 'has' branch merge
---
 .../main/royale/org/apache/royale/html/DataContainer.as |  1 -
 .../src/main/royale/org/apache/royale/html/List.as      |  1 -
 .../royale/org/apache/royale/html/MultiSelectionList.as |  1 -
 .../royale/org/apache/royale/html/MultiSelectionTree.as |  1 -
 .../royale/html/beads/ListItemRendererInitializer.as    |  2 +-
 .../royale/html/beads/models/ListPresentationModel.as   |  2 +-
 frameworks/projects/Core/src/main/royale/CoreClasses.as |  3 ++-
 .../org/apache/royale/core/IListPresentationModel.as    | 10 ----------
 .../royale/{core => html}/IListPresentationModel.as     | 17 ++++-------------
 .../src/main/royale/org/apache/royale/jewel/List.as     | 12 +++++++-----
 .../jewel/supportClasses/list/IListPresentationModel.as | 13 +------------
 .../mx/controls/beads/layouts/AdvancedDataGridLayout.as |  2 +-
 .../AdvancedDataGridVirtualListVerticalLayout.as        |  2 +-
 .../mdl/beads/TabsItemRendererFactoryForArrayData.as    |  2 +-
 .../royale/mdl/beads/TabsItemRendererInitializer.as     |  2 +-
 15 files changed, 20 insertions(+), 51 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
index d31d6c9..d3dae3d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
@@ -31,7 +31,6 @@ package org.apache.royale.html
 	import org.apache.royale.core.IItemRendererOwnerView;
 	import org.apache.royale.core.ILayoutView;
     import org.apache.royale.core.IStrandWithPresentationModel;
-	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.IDataProviderModel;
 	import org.apache.royale.core.UIBase;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
index 8124a28..71f7b6f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/List.as
@@ -18,7 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html
 {
-	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.ISelectionModel;
 
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionList.as
index 7a2801d..ba93bb3 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionList.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionList.as
@@ -18,7 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html
 {
-	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.IMultiSelectionModel;
 
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionTree.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionTree.as
index eca7e50..a68e0d8 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionTree.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MultiSelectionTree.as
@@ -18,7 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html
 {
-	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.IMultiSelectionModel;
 
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
index 3cea766..22a81ac 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
@@ -26,7 +26,7 @@ package org.apache.royale.html.beads
 	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.html.IListPresentationModel;
 	import org.apache.royale.core.IStrand;
     import org.apache.royale.core.IStrandWithPresentationModel;
 	import org.apache.royale.core.IUIBase;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ListPresentationModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ListPresentationModel.as
index c5e86e8..010a793 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ListPresentationModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ListPresentationModel.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads.models
 {
-	import org.apache.royale.core.IListPresentationModel;
+	import org.apache.royale.html.IListPresentationModel;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.EventDispatcher;
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 786a010..d7858ee 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -49,6 +49,7 @@ internal class CoreClasses
 	import org.apache.royale.html.beads.IBackgroundBead; IBackgroundBead;
 	import org.apache.royale.html.beads.IBorderBead; IBorderBead;
     import org.apache.royale.html.beads.SelectableItemRendererBeadBase; SelectableItemRendererBeadBase;
+    import org.apache.royale.html.IListPresentationModel; org.apache.royale.html.IListPresentationModel;
 
     import org.apache.royale.core.BeadViewBase; BeadViewBase;
     import org.apache.royale.core.ImageViewBase; ImageViewBase;
@@ -120,7 +121,7 @@ internal class CoreClasses
 	import org.apache.royale.core.ILayoutHost; ILayoutHost;
 	import org.apache.royale.core.ILayoutView; ILayoutView;
 	import org.apache.royale.core.ILayoutParent; ILayoutParent;
-    import org.apache.royale.core.IListPresentationModel; IListPresentationModel;
+    import org.apache.royale.core.IListPresentationModel; org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IMeasurementBead; IMeasurementBead;
     import org.apache.royale.core.IModule; IModule;
     import org.apache.royale.core.IPanelModel; IPanelModel;
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as
index 0e3313a..c49d7eb 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as
@@ -40,15 +40,5 @@ package org.apache.royale.core
 		function get rowHeight():Number;
 		function set rowHeight(value:Number):void;
 		
-		/**
-		 * The distance each row should be separated from the row above.
-		 * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.0
-		 */
-		function get separatorThickness():Number;
-		function set separatorThickness(value:Number):void;
 	}
 }
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/IListPresentationModel.as
similarity index 81%
copy from frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as
copy to frameworks/projects/Core/src/main/royale/org/apache/royale/html/IListPresentationModel.as
index 0e3313a..9803bfe 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IListPresentationModel.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/IListPresentationModel.as
@@ -16,8 +16,10 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.core
+package org.apache.royale.html
 {
+import org.apache.royale.core.IListPresentationModel;
+
 	/**
 	 *  The IListPresentationModel interface holds key values for the display
 	 *  of lists.
@@ -27,20 +29,9 @@ package org.apache.royale.core
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.0
 	 */
-	public interface IListPresentationModel extends IBead
+	public interface IListPresentationModel extends org.apache.royale.core.IListPresentationModel
 	{
 		/**
-		 *  The height of every row in the list.
-		 * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.0
-		 */
-		function get rowHeight():Number;
-		function set rowHeight(value:Number):void;
-		
-		/**
 		 * The distance each row should be separated from the row above.
 		 * 
 		 *  @langversion 3.0
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
index 6821e60..315d4db 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/List.as
@@ -18,12 +18,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel
 {
+	import org.apache.royale.core.IBead;
 	import org.apache.royale.core.IDataProviderModel;
+	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IRollOverModel;
 	import org.apache.royale.core.ISelectionModel;
+	import org.apache.royale.core.IStrandWithPresentationModel;
 	import org.apache.royale.jewel.beads.models.ListPresentationModel;
 	import org.apache.royale.jewel.supportClasses.container.DataContainerBase;
-	import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
 
 	/**
 	 *  Indicates that the initialization of the list is complete.
@@ -63,7 +65,7 @@ package org.apache.royale.jewel
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.4
 	 */
-	public class List extends DataContainerBase
+	public class List extends DataContainerBase implements IStrandWithPresentationModel
 	{
 		/**
 		 *  constructor.
@@ -176,7 +178,7 @@ package org.apache.royale.jewel
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
-		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.list.IListPresentationModel
+		 *  @royaleignorecoercion org.apache.royale.core.IListPresentationModel
 		 */
         public function get rowHeight():Number
         {
@@ -217,9 +219,9 @@ package org.apache.royale.jewel
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.4
-		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.list.IListPresentationModel
+		 *  @royaleignorecoercion org.apache.royale.core.IListPresentationModel
 		 */
-		public function get presentationModel():IListPresentationModel
+		public function get presentationModel():IBead
 		{
 			var presModel:IListPresentationModel = getBeadByType(IListPresentationModel) as IListPresentationModel;
 			if (presModel == null) {
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/list/IListPresentationModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/list/IListPresentationModel.as
index a103b4d..5ca1849 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/list/IListPresentationModel.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/list/IListPresentationModel.as
@@ -29,19 +29,8 @@ package org.apache.royale.jewel.supportClasses.list
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.7
 	 */
-    public interface IListPresentationModel extends IBead
+    public interface IListPresentationModel extends org.apache.royale.core.IListPresentationModel
     {
-		/**
-		 *  The height of every row in the list.
-		 * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.7
-		 */
-		function get rowHeight():Number;
-		function set rowHeight(value:Number):void;
-
         /**
 		 *  How text aligns in the itemRenderer instance.
 		 *
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
index df9fc82..231830b 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as
@@ -24,7 +24,7 @@ package mx.controls.beads.layouts
     import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
     import org.apache.royale.core.IDataGridModel;
     import org.apache.royale.core.IDataProviderModel;
-    import org.apache.royale.core.IListPresentationModel;
+    import org.apache.royale.html.IListPresentationModel;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.IStrandWithPresentationModel;
     import org.apache.royale.core.IUIBase;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
index 6a8f5e3..5cf4c5d 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridVirtualListVerticalLayout.as
@@ -22,7 +22,7 @@ package mx.controls.beads.layouts
     import org.apache.royale.core.IDataProviderModel;
     import org.apache.royale.core.IDataProviderVirtualItemRendererMapper;
     import org.apache.royale.core.ILayoutView;
-    import org.apache.royale.core.IListPresentationModel;
+    import org.apache.royale.html.IListPresentationModel;
     import org.apache.royale.core.IScrollingViewport;
     import org.apache.royale.core.IIndexedItemRenderer;
     import org.apache.royale.core.IStrand;
diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
index 834cecf..22babf4 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
@@ -22,7 +22,7 @@ package org.apache.royale.mdl.beads
     import org.apache.royale.core.IDataProviderItemRendererMapper;
     import org.apache.royale.core.IItemRendererClassFactory;
     import org.apache.royale.core.IItemRendererOwnerView;
-    import org.apache.royale.core.IListPresentationModel;
+    import org.apache.royale.html.IListPresentationModel;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.SimpleCSSStyles;
     import org.apache.royale.core.UIBase;
diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
index f01af3c..5eb66e5 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
@@ -25,7 +25,7 @@ package org.apache.royale.mdl.beads
 	import org.apache.royale.core.IItemRenderer;
 	import org.apache.royale.core.IItemRendererOwnerView;
 	import org.apache.royale.core.ILabelFieldItemRenderer;
-	import org.apache.royale.core.IListPresentationModel;
+	import org.apache.royale.html.IListPresentationModel;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IUIBase;
 	import org.apache.royale.core.SimpleCSSStyles;


[royale-asjs] 04/13: we don't always get a collectionchange so set adg after list creation

Posted by ah...@apache.org.
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

commit 0a7385c3046c59f43ec15ee297d7ac6836ddf0e5
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 10:40:21 2020 -0800

    we don't always get a collectionchange so set adg after list creation
---
 .../src/main/royale/mx/controls/beads/AdvancedDataGridView.as      | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
index c6057a4..fc25a33 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridView.as
@@ -153,7 +153,12 @@ package mx.controls.beads
                 }
             }        
             super.createLists();
-            
+            for (i =0; i < columnLists.length; i++)
+            {
+                var list:AdvancedDataGridColumnList = columnLists[i] as AdvancedDataGridColumnList;
+                list.adg = _strand as AdvancedDataGrid;
+			}
+
             for (i=0; i < sharedModel.columns.length; i++)
             {
                 (sharedModel.columns[i] as AdvancedDataGridColumn).list = columnLists[i];


[royale-asjs] 08/13: clean compile ASDoc

Posted by ah...@apache.org.
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

commit 3617abc3d5b91f3c0c9fede55729e2b87217bcc0
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 10:55:54 2020 -0800

    clean compile ASDoc
---
 .../ASDoc/src/main/config/asdoc-js-config.xml      |   1 -
 .../ASDoc/src/main/royale/ASDocMainView.mxml       |   2 +-
 ...gBackgroundColorHashAnchorStringItemRenderer.as |  51 +--------
 .../src/main/royale/EventSummaryRenderer.mxml      |  53 +--------
 .../src/main/royale/MethodSummaryRenderer.mxml     |  51 +--------
 .../royale/OptionalHashAnchorStringItemRenderer.as |  27 ++++-
 .../ASDoc/src/main/royale/ParameterRenderer.as     |  29 ++++-
 .../ASDoc/src/main/royale/SummaryRenderer.mxml     |  53 +--------
 .../projects/Basic/src/main/royale/BasicClasses.as |   1 +
 ...ingBackgroundColorSelectableItemRendererBead.as | 122 +++++++++++++++++++++
 .../beads/DataItemRendererFactoryForColumnData.as  |   2 +-
 .../DragDrop/src/main/royale/DragDropClasses.as    |   2 +
 .../beads/DragDropListItemRendererInitializer.as   |   7 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   1 +
 .../listClasses/VirtualListVerticalLayout.as       |   8 +-
 15 files changed, 197 insertions(+), 213 deletions(-)

diff --git a/examples/royale/ASDoc/src/main/config/asdoc-js-config.xml b/examples/royale/ASDoc/src/main/config/asdoc-js-config.xml
index 8223575..17b9f56 100644
--- a/examples/royale/ASDoc/src/main/config/asdoc-js-config.xml
+++ b/examples/royale/ASDoc/src/main/config/asdoc-js-config.xml
@@ -616,7 +616,6 @@
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/scrollbar/ScrollBar.as</path-element>
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ScrollBarModel.as</path-element>
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ButtonView.as</path-element>
-       <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/CheckBoxView.as</path-element>
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/RadioButtonView.as</path-element>
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TextFieldView.as</path-element>
        <path-element>${frameworks_dir}/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/SliderTrackView.as</path-element>
diff --git a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
index 508677f..64a20b3 100644
--- a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
+++ b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
@@ -392,7 +392,7 @@ limitations under the License.
 	</fx:Style>
 	<fx:Declarations>
 		<fx:Component className="AltBGRenderer">
-		    <local:AlternatingBackgroundColorHashAnchorStringItemRenderer backgroundColor0="#ffffff" backgroundColor1="#ffeeee" />
+		    <local:AlternatingBackgroundColorHashAnchorStringItemRenderer/>
 		</fx:Component>
 	</fx:Declarations>
 	<rs:states>
diff --git a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
index 6033830..5b2de9f 100644
--- a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
+++ b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
+import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead;
 
 	/**
 	 *  The AlternatingBackgroundColorHashAnchorItemRenderer class displays data in string form using the data's toString()
@@ -41,55 +42,7 @@ package
 		 */
 		public function AlternatingBackgroundColorHashAnchorStringItemRenderer()
 		{
-		}
-
-		private var _color0:String;
-		
-		public function get backgroundColor0():String
-		{
-			return _color0;
-		}
-		public function set backgroundColor0(value:String):void
-		{
-			_color0 = value;
-		}
-		
-		private var _color1:String;
-		
-		public function get backgroundColor1():String
-		{
-			return _color1;
-		}
-		public function set backgroundColor1(value:String):void
-		{
-			_color1 = value;
-		}
-		
-		private var oddIndex:Boolean;
-		
-		override public function addedToParent():void
-		{
-			super.addedToParent();
-
-			var index:int = parent.getElementIndex(this);
-			oddIndex = ((index % 2) == 1)
-			COMPILE::JS
-			{
-				element.style.backgroundColor = oddIndex ? _color1 : _color0;
-			}
-		}
-
-		/**
-		 * @private
-		 */
-		override public function updateRenderer():void
-		{
-			super.updateRenderer();
-			COMPILE::JS
-			{
-				if (element.style.backgroundColor == null || element.style.backgroundColor == "")
-					element.style.backgroundColor = oddIndex ? _color1 : _color0;
-			}
+			addBead(new AlternatingBackgroundColorSelectableItemRendererBead());
 		}
 
 	}
diff --git a/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml b/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
index 81fb01b..21f21a1 100644
--- a/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/EventSummaryRenderer.mxml
@@ -25,31 +25,11 @@ limitations under the License.
     <fx:Script>
         <![CDATA[
             import models.ASDocModel;
-            
-			private var _color0:String = "#fff";
-			
-			public function get backgroundColor0():String
-			{
-				return _color0;
-			}
-			public function set backgroundColor0(value:String):void
-			{
-				_color0 = value;
-			}
-			
-			private var _color1:String = "#ffeeee";
-			
-			public function get backgroundColor1():String
-			{
-				return _color1;
-			}
-			public function set backgroundColor1(value:String):void
-			{
-				_color1 = value;
-			}
-			
+			import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead;
+            			
 			override public function set data(value:Object):void
 			{
+				addBead(new AlternatingBackgroundColorSelectableItemRendererBead);
 				super.data = value;
 				qname.href = "#!" + obj.ownerhref + ASDocModel.DELIMITER + obj.qname;
                 if (obj.platforms.length == 1)
@@ -70,33 +50,6 @@ limitations under the License.
                 return data as ASDocClassEvents;
             }
             		
-			private var oddIndex:Boolean;
-
-			override public function addedToParent():void
-			{
-				super.addedToParent();
-	
-				var index:int = parent.getElementIndex(this);
-				oddIndex = ((index % 2) == 1)
-				COMPILE::JS
-				{
-					element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
-			/**
-			 * @private
-			 */
-			override public function updateRenderer():void
-			{
-				super.updateRenderer();
-				COMPILE::JS
-				{
-					if (element.style.backgroundColor == null || element.style.backgroundColor == "")
-						element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
 		]]>
     </fx:Script>
 	<fx:Style>
diff --git a/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml b/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
index 6c4b500..786448e 100644
--- a/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/MethodSummaryRenderer.mxml
@@ -25,37 +25,15 @@ limitations under the License.
     <fx:Script>
         <![CDATA[
             import models.ASDocModel;
+			import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead;
 
             private static var fakeBothPlatforms:Object = {"addEventListener": 1, "removeEventListener" : 1,
                 "hasEventListener": 1, "dispatchEvent": 1,
                 "toString": 1};
                 
-			private var _color0:String = "#fff";
-			
-			public function get backgroundColor0():String
-			{
-				return _color0;
-			}
-			public function set backgroundColor0(value:String):void
-			{
-				_color0 = value;
-			}
-			
-			private var _color1:String = "#ffeeee";
-			
-			public function get backgroundColor1():String
-			{
-				return _color1;
-			}
-			public function set backgroundColor1(value:String):void
-			{
-				_color1 = value;
-			}
-			
-			private var oddIndex:Boolean;
-
 			override public function set data(value:Object):void
 			{
+				addBead(new AlternatingBackgroundColorSelectableItemRendererBead);
 				super.data = value;
 				if (value.returnhref)
 					typeGroup.removeElement(label);
@@ -80,31 +58,6 @@ limitations under the License.
                 return data as ASDocClassMembers;
             }
 		
-			override public function addedToParent():void
-			{
-				super.addedToParent();
-	
-				var index:int = parent.getElementIndex(this);
-				oddIndex = ((index % 2) == 1)
-				COMPILE::JS
-				{
-					element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
-			/**
-			 * @private
-			 */
-			override public function updateRenderer():void
-			{
-				super.updateRenderer();
-				COMPILE::JS
-				{
-					if (element.style.backgroundColor == null || element.style.backgroundColor == "")
-						element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
 		]]>
     </fx:Script>
 	<fx:Style>
diff --git a/examples/royale/ASDoc/src/main/royale/OptionalHashAnchorStringItemRenderer.as b/examples/royale/ASDoc/src/main/royale/OptionalHashAnchorStringItemRenderer.as
index a68e128..091ebf9 100644
--- a/examples/royale/ASDoc/src/main/royale/OptionalHashAnchorStringItemRenderer.as
+++ b/examples/royale/ASDoc/src/main/royale/OptionalHashAnchorStringItemRenderer.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
+import  org.apache.royale.core.IOwnerViewItemRenderer;
+import  org.apache.royale.core.IItemRendererOwnerView;
 import  org.apache.royale.html.supportClasses.StringItemRenderer;
 import  org.apache.royale.html.List;
 
@@ -33,7 +35,7 @@ import  org.apache.royale.html.List;
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.0
 	 */
-	public class OptionalHashAnchorStringItemRenderer extends StringItemRenderer
+	public class OptionalHashAnchorStringItemRenderer extends StringItemRenderer implements IOwnerViewItemRenderer
 	{
 		/**
 		 *  constructor.
@@ -51,7 +53,7 @@ import  org.apache.royale.html.List;
 		override public function set text(value:String):void
 		{
 			var last:Boolean = false;
-			if (itemRendererParent)
+			if (itemRendererOwnerView)
 			{
 				var n:int = (parent as List).dataProvider.length;
 				last = n == index + 1; 
@@ -69,6 +71,27 @@ import  org.apache.royale.html.List;
 	                this.element.innerHTML = "<a href='#!" + href + "' class='HashAnchorAnchor'>" + value + "</a>" + (last ? "" : " -> ");
             }
 		}
+		
+		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;
+        }
+
 
 	}
 }
diff --git a/examples/royale/ASDoc/src/main/royale/ParameterRenderer.as b/examples/royale/ASDoc/src/main/royale/ParameterRenderer.as
index ad22949..f00ff21 100644
--- a/examples/royale/ASDoc/src/main/royale/ParameterRenderer.as
+++ b/examples/royale/ASDoc/src/main/royale/ParameterRenderer.as
@@ -18,6 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
+import  org.apache.royale.core.IOwnerViewItemRenderer;
+import  org.apache.royale.core.IItemRendererOwnerView;
 import  org.apache.royale.html.supportClasses.StringItemRenderer;
 import  org.apache.royale.html.DataContainer;
 
@@ -29,7 +31,7 @@ import  org.apache.royale.html.DataContainer;
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.0
 	 */
-	public class ParameterRenderer extends StringItemRenderer
+	public class ParameterRenderer extends StringItemRenderer implements IOwnerViewItemRenderer
 	{
 		/**
 		 *  constructor.
@@ -47,9 +49,9 @@ import  org.apache.royale.html.DataContainer;
 		override public function set text(value:String):void
 		{
 			var last:Boolean = false;
-			if (itemRendererParent)
+			if (itemRendererOwnerView)
 			{
-				var n:int = (parent as DataContainer).dataProvider.length;
+				var n:int = (itemRendererOwnerView.host as DataContainer).dataProvider.length;
 				last = n == index + 1; 
 			}			
 			var html:String = "<span class='paramName'>" + data.name + ":</span>";
@@ -68,6 +70,27 @@ import  org.apache.royale.html.DataContainer;
                 this.element.innerHTML = html;
             }
 		}
+		
+        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;
+        }
+        
 
 	}
 }
diff --git a/examples/royale/ASDoc/src/main/royale/SummaryRenderer.mxml b/examples/royale/ASDoc/src/main/royale/SummaryRenderer.mxml
index bbb3ca9..392d2db 100644
--- a/examples/royale/ASDoc/src/main/royale/SummaryRenderer.mxml
+++ b/examples/royale/ASDoc/src/main/royale/SummaryRenderer.mxml
@@ -25,33 +25,11 @@ limitations under the License.
     <fx:Script>
         <![CDATA[
             import models.ASDocModel;
-
-            private var _color0:String = "#fff";
-			
-			public function get backgroundColor0():String
-			{
-				return _color0;
-			}
-			public function set backgroundColor0(value:String):void
-			{
-				_color0 = value;
-			}
-			
-			private var _color1:String = "#ffeeee";
-			
-			public function get backgroundColor1():String
-			{
-				return _color1;
-			}
-			public function set backgroundColor1(value:String):void
-			{
-				_color1 = value;
-			}
-			
-			private var oddIndex:Boolean;
+			import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead;
 
 			override public function set data(value:Object):void
 			{
+				addBead(new AlternatingBackgroundColorSelectableItemRendererBead);
 				super.data = value;
 				if (value.returnhref)
 					typeGroup.removeElement(label);
@@ -75,32 +53,7 @@ limitations under the License.
             {
                 return data as ASDocClassMembers;
             }
-            		
-			override public function addedToParent():void
-			{
-				super.addedToParent();
-	
-				var index:int = parent.getElementIndex(this);
-				oddIndex = ((index % 2) == 1)
-				COMPILE::JS
-				{
-					element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
-			/**
-			 * @private
-			 */
-			override public function updateRenderer():void
-			{
-				super.updateRenderer();
-				COMPILE::JS
-				{
-					if (element.style.backgroundColor == null || element.style.backgroundColor == "")
-						element.style.backgroundColor = oddIndex ? _color1 : _color0;
-				}
-			}
-			
+           			
 		]]>
     </fx:Script>
 	<fx:Style>
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index f354794..2f89a5a 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -77,6 +77,7 @@ internal class BasicClasses
 	import org.apache.royale.html.supportClasses.CascadingMenuItemRenderer; CascadingMenuItemRenderer;
     import org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead; SolidBackgroundSelectableItemRendererBead;
     import org.apache.royale.html.beads.SolidBackgroundRuntimeSelectableItemRendererBead; SolidBackgroundRuntimeSelectableItemRendererBead;
+    import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead; AlternatingBackgroundColorSelectableItemRendererBead;
 	
 	COMPILE::SWF
 	{
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as
new file mode 100644
index 0000000..73ffb88
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.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.html.beads
+{
+
+
+import org.apache.royale.utils.CSSUtils;
+import org.apache.royale.core.IIndexedItemRenderer;
+import org.apache.royale.core.IOwnerViewItemRenderer;
+import org.apache.royale.core.ISelectionModel;
+import org.apache.royale.core.ISelectableItemRenderer;
+import org.apache.royale.core.IStrand;
+import org.apache.royale.core.IStrandWithModel;
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IEventDispatcher;
+import org.apache.royale.html.beads.SelectableItemRendererBeadBase;
+
+/**
+ *  The AdvancedDataGridListData class defines the data type of the <code>listData</code> property 
+ *  implemented by drop-in item renderers or drop-in item editors for the AdvancedDataGrid control. 
+ *  All drop-in item renderers and drop-in item editors must implement the 
+ *  IDropInListItemRenderer interface, which defines the <code>listData</code> property.
+ *
+ *  <p>While the properties of this class are writable, you should consider them to 
+ *  be read only. They are initialized by the AdvancedDataGrid class, and read by an item renderer 
+ *  or item editor. Changing these values can lead to unexpected results.</p>
+ *
+ *  @see mx.controls.listClasses.IDropInListItemRenderer
+ *  @see mx.controls.AdvancedDataGrid
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AlternatingBackgroundColorSelectableItemRendererBead extends SelectableItemRendererBeadBase
+{
+//    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+
+    override public function set strand(value:IStrand):void 
+	{
+		super.strand = value;
+		(value as IEventDispatcher).addEventListener("dataChange", dataChangeHandler);
+	}
+	
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+    
+    public var backgroundColor0:String = "#fff";
+    public var backgroundColor1:String = "#ffeeee";
+    
+    /**
+     * @private
+     */
+    override public function updateRenderer():void
+    {
+        var ir:IIndexedItemRenderer = _strand as IIndexedItemRenderer;
+        var backgroundColor:String = ((ir.index % 2) == 1) ? backgroundColor1 : backgroundColor0;
+            
+        COMPILE::SWF
+        {
+            super.updateRenderer();
+        }
+        COMPILE::JS
+        {
+            if (selected)
+            {
+                ir.element.style.backgroundColor = '#9C9C9C';
+            }
+            else if (hovered)
+            {
+                ir.element.style.backgroundColor = '#ECECEC';
+            }
+            else
+            {
+                ir.element.style.backgroundColor = backgroundColor;
+            }
+        }
+    }
+
+	private function dataChangeHandler(event:Event):void
+	{
+        var ir:IIndexedItemRenderer = _strand as IIndexedItemRenderer;
+        var owner:IStrandWithModel = (ir as IOwnerViewItemRenderer).itemRendererOwnerView.host as IStrandWithModel;
+		var model:ISelectionModel = owner.model as ISelectionModel;
+        if (model.selectedIndex == ir.index)
+        {
+            selected = true;            
+        }
+		else
+			selected = false;        
+	}
+}
+
+}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as
index 150f470..62d63e3 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as
@@ -66,7 +66,7 @@ package org.apache.royale.html.beads
          * @royaleignorecoercion org.apache.royale.html.beads.DataGridColumnView
          * @royaleignorecoercion org.apache.royale.html.supportClasses.DataItemRenderer
 		 */
-		private function dataProviderChangeHandler(event:Event):void
+		override protected function dataProviderChangeHandler(event:Event):void
 		{
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
diff --git a/frameworks/projects/DragDrop/src/main/royale/DragDropClasses.as b/frameworks/projects/DragDrop/src/main/royale/DragDropClasses.as
index 49c55cc..54194db 100644
--- a/frameworks/projects/DragDrop/src/main/royale/DragDropClasses.as
+++ b/frameworks/projects/DragDrop/src/main/royale/DragDropClasses.as
@@ -49,6 +49,8 @@ internal class DragDropClasses
 	import org.apache.royale.html.beads.ButtonBarReorderBead; ButtonBarReorderBead;
 
 	import org.apache.royale.html.beads.DataGridDragDropBead; DataGridDragDropBead;
+	
+	import org.apache.royale.html.beads.DragDropListItemRendererInitializer; DragDropListItemRendererInitializer;
 
 }
 
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
index d118cb1..c888473 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
@@ -27,7 +27,8 @@ package org.apache.royale.html.beads
 	import org.apache.royale.core.ILabelFieldItemRenderer;
 	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.IUIBase;
+	import org.apache.royale.core.IStrandWithModelView;
+	import org.apache.royale.core.ItemRendererOwnerViewBead;
 	import org.apache.royale.core.SimpleCSSStyles;
 	import org.apache.royale.core.UIBase;
 
@@ -62,12 +63,12 @@ package org.apache.royale.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.0
 		 *  @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
-		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
+		 *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
 		 */
 		override public function set strand(value:IStrand):void
 		{	
             super.strand = value;
-            ownerView = (value as IUIBase).view as IItemRendererOwnerView;
+            ownerView = (value as IStrandWithModelView).view as IItemRendererOwnerView;
 		}
 		
         private var ownerView:IItemRendererOwnerView;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index b2de5ae..8bc090f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -179,6 +179,7 @@ internal class MXRoyaleClasses
     import mx.controls.beads.layouts.AdvancedDataGridLayout; AdvancedDataGridLayout;
     import mx.controls.beads.layouts.DataGridLayout; DataGridLayout;
     import mx.controls.beads.layouts.AdvancedDataGridVirtualListVerticalLayout; AdvancedDataGridVirtualListVerticalLayout;
+    import mx.controls.listClasses.VirtualListVerticalLayout; VirtualListVerticalLayout;
     import mx.controls.beads.TreeItemRendererMouseController; TreeItemRendererMouseController;
 	import mx.formatters.Formatter; Formatter;
 	import mx.formatters.IFormatter; IFormatter;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualListVerticalLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualListVerticalLayout.as
index 58e87b1..c0ecf81 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualListVerticalLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualListVerticalLayout.as
@@ -30,7 +30,7 @@ package mx.controls.listClasses
 	import org.apache.royale.core.IListPresentationModel;
 	import org.apache.royale.core.IParentIUIBase;
 	import org.apache.royale.core.IScrollingViewport;
-	import org.apache.royale.core.ISelectableItemRenderer;
+	import org.apache.royale.core.IIndexedItemRenderer;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IStrandWithPresentationModel;
 	import org.apache.royale.core.IUIBase;
@@ -228,7 +228,7 @@ package mx.controls.listClasses
                 }
                 for (var i:int = startIndex; i < endIndex; i++)
                 {
-                    var ir:ISelectableItemRenderer;
+                    var ir:IIndexedItemRenderer;
                     if (i < firstIndex)
                     {
                         ir  = factory.getItemRendererForIndex(i, i - startIndex);
@@ -342,7 +342,7 @@ package mx.controls.listClasses
                 }
                 for (var i:int = startIndex; i < endIndex; i++)
                 {
-                    var ir:ISelectableItemRenderer;
+                    var ir:IIndexedItemRenderer;
                     if (i < firstIndex)
                     {
                        ir  = factory.getItemRendererForIndex(i, i - startIndex + 1);
@@ -380,7 +380,7 @@ package mx.controls.listClasses
         }
 
         COMPILE::SWF
-        private function sizeAndPositionRenderer(ir:ISelectableItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void
+        private function sizeAndPositionRenderer(ir:IIndexedItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void
         {
             var ilc:ILayoutChild;
             var positions:Object = childPositions(ir);


[royale-asjs] 12/13: get examples to compile

Posted by ah...@apache.org.
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

commit 67637008fe2e2f3c203310172b07086e9545bfed
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 17:33:52 2020 -0800

    get examples to compile
---
 .../DataGridExample/src/main/royale/products/ProductItemRenderer.as     | 1 -
 .../DragAndDropExample/src/main/royale/products/ProductItemRenderer.as  | 2 --
 2 files changed, 3 deletions(-)

diff --git a/examples/express/DataGridExample/src/main/royale/products/ProductItemRenderer.as b/examples/express/DataGridExample/src/main/royale/products/ProductItemRenderer.as
index 89e6862..1282e79 100644
--- a/examples/express/DataGridExample/src/main/royale/products/ProductItemRenderer.as
+++ b/examples/express/DataGridExample/src/main/royale/products/ProductItemRenderer.as
@@ -60,7 +60,6 @@ package products
 			image.width = 32;
 			image.height = 32;
 
-			updateRenderer();
 		}
 	}
 }
diff --git a/examples/royale/DragAndDropExample/src/main/royale/products/ProductItemRenderer.as b/examples/royale/DragAndDropExample/src/main/royale/products/ProductItemRenderer.as
index 89e6862..7e8a834 100644
--- a/examples/royale/DragAndDropExample/src/main/royale/products/ProductItemRenderer.as
+++ b/examples/royale/DragAndDropExample/src/main/royale/products/ProductItemRenderer.as
@@ -59,8 +59,6 @@ package products
 			image.y = cy - 16;
 			image.width = 32;
 			image.height = 32;
-
-			updateRenderer();
 		}
 	}
 }


[royale-asjs] 01/13: Merge branch 'has' into develop

Posted by ah...@apache.org.
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

commit 19797e9dcc3f78257d60a1368f9fd278ed6158d8
Merge: 8de9ead bac0d85
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Feb 17 23:43:45 2020 -0800

    Merge branch 'has' into develop

 .../main/royale/products/ProductItemRenderer.as    |   2 -
 .../ListExample/src/main/royale/MyInitialView.mxml |   7 +-
 .../main/royale/simple/IRFactoryForArrayData.as    | 178 ---------------
 .../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 +-
 .../projects/Basic/src/main/resources/defaults.css |  40 +++-
 .../projects/Basic/src/main/royale/BasicClasses.as |   4 +
 .../org/apache/royale/core/DataContainerBase.as    |   2 +-
 .../apache/royale/core/StyledMXMLItemRenderer.as   |  78 +++----
 .../royale/org/apache/royale/html/DataContainer.as |   2 +-
 .../accessories/ToolTipRemovalWhenItemRemoved.as   |   5 +-
 .../royale/html/beads/AccordionCollapseBead.as     |   4 +-
 .../apache/royale/html/beads/DataContainerView.as  |  28 +--
 .../html/beads/DataItemRendererFactoryBase.as      | 126 +++++++++++
 .../beads/DataItemRendererFactoryForArrayData.as   | 168 +++-----------
 .../beads/DataItemRendererFactoryForArrayList.as   | 139 ++----------
 .../DataItemRendererFactoryForCollectionView.as    | 217 +++++-------------
 .../beads/DataItemRendererFactoryForColumnData.as  |  84 +------
 .../DataItemRendererFactoryForHierarchicalData.as  |  52 +----
 .../DynamicAddItemRendererForArrayListData.as      | 184 +++------------
 .../DynamicItemsRendererFactoryForArrayListData.as | 187 +++-------------
 ...cRemoveAllByNullItemRendererForArrayListData.as |  16 +-
 ...DynamicRemoveAllItemRendererForArrayListData.as |  16 +-
 .../DynamicRemoveItemRendererForArrayListData.as   | 102 +--------
 .../DynamicUpdateItemRendererForArrayListData.as   | 109 ++-------
 .../apache/royale/html/beads/ITextItemRenderer.as  |   7 +-
 .../html/beads/IndexedItemRendererInitializer.as   | 107 +++++++++
 ...yForArrayData.as => ItemRendererFactoryBase.as} | 149 ++++++-------
 .../html/beads/ListItemRendererInitializer.as      |  87 ++++++++
 .../org/apache/royale/html/beads/ListView.as       |  79 +++++--
 .../MultiSelectionItemRendererClassFactory.as      |   6 +-
 .../royale/html/beads/MultiSelectionListView.as    |   2 +-
 ...dBackgroundRuntimeSelectableItemRendererBead.as | 128 +++++++++++
 .../SolidBackgroundSelectableItemRendererBead.as}  |  59 ++---
 .../beads/TextItemRendererFactoryForArrayData.as   |   8 +-
 .../TextItemRendererFactoryForStringVectorData.as  |  10 +-
 .../html/beads/TreeItemRendererInitializer.as      |  86 +++++++
 .../royale/html/beads/VirtualDataContainerView.as  |   4 +-
 ...ta.as => VirtualDataItemRendererFactoryBase.as} |  92 ++++----
 .../VirtualDataItemRendererFactoryForArrayData.as  | 166 ++------------
 .../apache/royale/html/beads/VirtualListView.as    |  74 +++++--
 .../controllers/ItemRendererMouseController.as     |  57 +++--
 .../ListMultiSelectionMouseController.as           |  29 ++-
 .../ListSingleSelectionMouseController.as          |  26 ++-
 .../MultiSelectionItemRendererMouseController.as   |  59 +++--
 .../layouts/UseMaxChildForTileCellDimensions.as    |   4 +-
 .../beads/layouts/VirtualListVerticalLayout.as     |   8 +-
 .../html/supportClasses/AccordionItemRenderer.as   | 107 +--------
 ...AlternatingBackgroundColorStringItemRenderer.as |  39 ++--
 .../supportClasses/ButtonBarButtonItemRenderer.as  |   4 +-
 .../supportClasses/CascadingMenuItemRenderer.as    |   2 -
 .../html/supportClasses/ColorItemRenderer.as       |  51 ++---
 .../html/supportClasses/ContainerContentArea.as    |  11 +-
 .../DataGridButtonBarButtonItemRenderer.as         |   2 +-
 .../apache/royale/html/supportClasses/DataGroup.as |   4 +-
 .../royale/html/supportClasses/DataItemRenderer.as |  25 ---
 .../html/supportClasses/GraphicsItemRenderer.as    |  21 +-
 .../html/supportClasses/MenuBarItemRenderer.as     |   2 -
 .../royale/html/supportClasses/MenuItemRenderer.as |   2 -
 .../html/supportClasses/StringItemRenderer.as      |   1 -
 .../html/supportClasses/TextButtonItemRenderer.as  | 124 +----------
 .../html/supportClasses/TextFieldItemRenderer.as   |  17 +-
 .../supportClasses/TreeGridControlItemRenderer.as  |  37 +++-
 .../royale/html/supportClasses/TreeItemRenderer.as |  25 ++-
 .../html/supportClasses/UIItemRendererBase.as      | 170 +-------------
 .../Charts/src/main/resources/defaults.css         |   5 +
 .../Charts/src/main/royale/ChartsClasses.as        |   1 +
 .../charts/beads/ChartItemRendererFactory.as       |   7 +-
 .../beads/ChartSelectableItemRendererBead.as       | 110 +++++++++
 .../org/apache/royale/charts/beads/ChartView.as    |  11 +-
 ...ataItemRendererFactoryForSeriesArrayListData.as |  94 ++------
 .../beads/DataItemRendererFactoryForSeriesData.as  | 246 ++++++++++++++-------
 .../controllers/ChartSeriesMouseController.as      |   4 +-
 .../layouts/LineChartCategoryVsLinearLayout.as     |   1 -
 .../beads/layouts/LineChartLinearVsLinearLayout.as |   1 -
 .../apache/royale/charts/core/IChartDataGroup.as   |   4 +-
 .../royale/charts/core/IChartItemRenderer.as       |  13 ++
 .../royale/charts/optimized/SVGBoxItemRenderer.as  |   1 -
 .../royale/charts/optimized/SVGChartDataGroup.as   |  22 +-
 .../charts/optimized/SVGLineSegmentItemRenderer.as |  78 +------
 .../charts/optimized/SVGWedgeItemRenderer.as       |  52 +----
 .../charts/supportClasses/BoxItemRenderer.as       | 120 +---------
 .../royale/charts/supportClasses/ChartDataGroup.as |  24 +-
 .../ChartItemRenderer.as}                          |  76 +++++--
 .../supportClasses/LineSegmentItemRenderer.as      |  73 +-----
 .../charts/supportClasses/WedgeItemRenderer.as     |  79 +------
 .../org/apache/royale/collections/IArrayList.as    |   2 +-
 .../projects/Core/src/main/royale/CoreClasses.as   |   8 +
 .../core/IDataProviderVirtualItemRendererMapper.as |   2 +-
 .../apache/royale/core/IIndexedItemRenderer.as}    |  18 +-
 ...arent.as => IIndexedItemRendererInitializer.as} |  28 +--
 .../royale/org/apache/royale/core/IItemRenderer.as |  25 +--
 .../royale/core/IItemRendererClassFactory.as       |   8 +-
 ...ndererParent.as => IItemRendererInitializer.as} |  31 ++-
 ...RendererParent.as => IItemRendererOwnerView.as} |   9 +-
 .../apache/royale/core/ILabelFieldItemRenderer.as} |  26 +--
 .../main/royale/org/apache/royale/core/IList.as    |   2 +-
 .../apache/royale/core/IListDataItemRenderer.as}   |  19 +-
 .../apache/royale/core/IOwnerViewItemRenderer.as}  |  27 +--
 .../apache/royale/core/ISelectableItemRenderer.as  |  25 +--
 .../apache/royale/core/ItemRendererClassFactory.as |  13 +-
 .../royale/core/ItemRendererOwnerViewBead.as}      |  31 +--
 ...er.as => SelectableItemRendererClassFactory.as} |  85 ++++---
 .../org/apache/royale/events/ItemAddedEvent.as     |   2 +-
 .../org/apache/royale/events/ItemRemovedEvent.as   |   2 +-
 .../org/apache/royale/events/ItemRendererEvent.as  |   2 +-
 .../org/apache/royale/html/beads/IListView.as      |   4 +-
 .../html/beads/SelectableItemRendererBeadBase.as   | 212 ++++++++++++++++++
 .../royale/html/beads/ButtonBarReorderBead.as      |  14 +-
 .../beads/DragDropListItemRendererInitializer.as   |  86 +++++++
 .../html/beads/MultiSelectionDragImageBead.as      |   6 +-
 .../beads/SensitiveMultiSelectionDropTargetBead.as |  22 +-
 .../SensitiveSingleSelectionDropTargetBead.as      |  22 +-
 .../html/beads/SingleSelectionDragImageBead.as     |   2 +-
 .../html/beads/SingleSelectionDragSourceBead.as    |   4 +-
 .../html/beads/SingleSelectionDropIndicatorBead.as |   2 +-
 .../html/beads/SingleSelectionDropTargetBead.as    |  20 +-
 .../projects/Flat/src/main/resources/defaults.css  |   3 +-
 .../projects/Flat/src/main/royale/FlatClasses.as   |   2 +-
 ...stSolidBackgroundSelectableItemRendererBead.as} |  16 +-
 .../projects/Jewel/src/main/resources/defaults.css |   5 +
 .../projects/Jewel/src/main/royale/JewelClasses.as |   5 +
 .../controllers/ItemRendererMouseController.as     |  68 +++---
 .../TableCellSelectionMouseController.as           |  18 +-
 .../AddListItemRendererForArrayListData.as         |  34 +--
 .../itemRenderers/AddTableRowForArrayListData.as   |  22 +-
 ...tHoverableRuntimeSelectableItemRendererBead.as} |  46 ++--
 ...electorListRuntimeSelectableItemRendererBead.as | 122 ++++++++++
 .../DataItemRendererFactoryForArrayData.as         |  19 +-
 .../DataItemRendererFactoryForCollectionView.as    |  39 ++--
 ...DownListItemRendererFactoryForCollectionView.as |  10 +-
 .../jewel/beads/itemRenderers/ITextItemRenderer.as |   5 +-
 .../JewelListItemRendererInitializer.as            | 122 ++++++++++
 .../RemoveAllItemRendererForArrayListData.as       |  16 +-
 .../RemoveListItemRendererForArrayListData.as      |  26 +--
 .../RemoveTableRowForArrayListData.as              |  24 +-
 .../TableItemRendererFactoryForCollectionView.as   |  22 +-
 .../UpdateListItemRendererForArrayListData.as      |  20 +-
 .../UpdateTableRowForArrayListData.as              |  24 +-
 ...tualDataItemRendererFactoryForCollectionView.as | 163 ++------------
 .../beads/layouts/VirtualListVerticalLayout.as     |   8 +-
 .../royale/jewel/beads/views/DropDownListView.as   |  22 +-
 .../apache/royale/jewel/beads/views/ListView.as    | 134 ++++++-----
 .../apache/royale/jewel/beads/views/TabBarView.as  |  12 +-
 .../apache/royale/jewel/beads/views/TableView.as   |  18 +-
 .../royale/jewel/beads/views/VirtualListView.as    |  49 ++--
 .../jewel/itemRenderers/ButtonBarItemRenderer.as   |  20 +-
 .../CollapsibleNavigationSectionRenderer.as        |  15 +-
 .../royale/jewel/itemRenderers/DateItemRenderer.as |   8 +-
 .../itemRenderers/DropDownListItemRenderer.as      |   6 +-
 .../itemRenderers/IconButtonBarItemRenderer.as     | 125 +----------
 .../royale/jewel/itemRenderers/ListItemRenderer.as |  54 +----
 .../itemRenderers/NavigationLinkItemRenderer.as    |  15 +-
 .../jewel/itemRenderers/StringItemRenderer.as      |   1 -
 .../itemRenderers/TabBarButtonItemRenderer.as      |  41 +---
 .../jewel/itemRenderers/TableItemRenderer.as       |  29 +++
 .../itemRenderers/ToggleButtonBarItemRenderer.as   |  23 +-
 .../supportClasses/container/DataContainerBase.as  |   2 +-
 .../royale/jewel/supportClasses/list/DataGroup.as  |   2 +-
 .../jewel/supportClasses/table/TBodyContentArea.as |  31 +--
 .../MXRoyale/src/main/resources/defaults.css       |  11 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   4 +
 .../MXRoyale/src/main/royale/mx/controls/Button.as |  43 +++-
 .../MXRoyale/src/main/royale/mx/controls/Label.as  |  43 +++-
 .../AdvancedDataGridHeaderRenderer.as              |  19 --
 .../AdvancedDataGridItemRenderer.as                |  88 +++-----
 .../AdvancedDataGridSelectableItemRendererBead.as  | 140 ++++++++++++
 ...actoryForICollectionViewAdvancedDataGridData.as | 105 +--------
 .../AdvancedDataGridItemRendererInitializer.as     | 117 ++++++++++
 .../mx/controls/beads/AdvancedDataGridView.as      |   8 +-
 .../controls/beads/ListItemRendererInitializer.as  |  85 +++++++
 .../controls/beads/TreeItemRendererInitializer.as  |  86 +++++++
 .../AdvancedDataGridVirtualListVerticalLayout.as   |   6 +-
 .../mx/controls/listClasses/AdvancedListBase.as    |  23 +-
 ...ataItemRendererFactoryForICollectionViewData.as |  88 ++++----
 .../DataItemRendererFactoryForIListData.as         |  76 ++++---
 .../listClasses/IDropInListItemRenderer.as         |  23 +-
 .../mx/controls/listClasses/IListItemRenderer.as   |   2 +-
 .../mx/controls/listClasses/ListItemRenderer.as    | 137 ++----------
 ...ataItemRendererFactoryForICollectionViewData.as |  42 +---
 .../VirtualDataItemRendererFactoryForIListData.as  |  57 ++---
 ...rerFactoryForICollectionViewHierarchicalData.as |  86 ++-----
 .../mx/controls/treeClasses/TreeItemRenderer.as    | 171 +-------------
 .../src/main/royale/mx/core/IDataRenderer.as       |  22 +-
 .../src/main/royale/mx/core/UIComponent.as         |  18 ++
 .../src/main/resources/defaults.css                |   7 +
 .../src/main/royale/MDLClasses.as                  |   1 +
 .../DynamicTabsAddItemRendererForArrayListData.as  |  37 ----
 .../TabsDataItemRendererFactoryForArrayListData.as |  72 +-----
 .../beads/TabsItemRendererFactoryForArrayData.as   |   8 +-
 .../mdl/beads/TabsItemRendererInitializer.as       | 120 ++++++++++
 .../itemRenderers/FooterLinkItemMouseRenderer.as   |   5 -
 .../royale/mdl/itemRenderers/MenuItemRenderer.as   |   5 -
 .../NavigationLinkItemMouseRenderer.as             |   5 -
 .../mdl/itemRenderers/TableRowItemRenderer.as      |   2 +-
 .../TableRowItemSingleSelectionMouseRenderer.as    |  32 ++-
 .../royale/mdl/supportClasses/ITabItemRenderer.as  |   5 +-
 .../SparkRoyale/src/main/resources/defaults.css    |  12 +-
 .../main/royale/spark/components/DataRenderer.as   |  29 ++-
 .../royale/spark/components/beads/TabBarView.as    |  21 +-
 .../components/supportClasses/ItemRenderer.as      |  18 +-
 .../supportClasses/SparkTextButtonItemRenderer.as  |  12 +-
 206 files changed, 4080 insertions(+), 4692 deletions(-)

diff --cc frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as
index fd63ad2,7b38413..b1cf951
--- 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,7 -18,9 +18,9 @@@
  ////////////////////////////////////////////////////////////////////////////////
  package org.apache.royale.core
  {
 +    import org.apache.royale.html.supportClasses.MXMLStatesItemRenderer;
+     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;
      import org.apache.royale.utils.IEmphasis;
@@@ -32,7 -34,7 +34,7 @@@
  	 *  @playerversion AIR 2.6
  	 *  @productversion Royale 0.9.3
  	 */
- 	public class StyledMXMLItemRenderer extends MXMLStatesItemRenderer implements IClassSelectorListSupport, IRuntimeSelectableItemRenderer, IEmphasis
 -	public class StyledMXMLItemRenderer extends MXMLItemRenderer implements IClassSelectorListSupport, IEmphasis, IOwnerViewItemRenderer
++	public class StyledMXMLItemRenderer extends MXMLStatesItemRenderer implements IClassSelectorListSupport, IEmphasis, IOwnerViewItemRenderer
  	{
  		/**
  		 *  constructor.
@@@ -233,9 -205,9 +205,9 @@@
  		{
  			super.addedToParent();
  			
- 			if (itemRendererParent && itemRendererParent.host is IEmphasis && (itemRendererParent.host as IEmphasis).emphasis)
 -			if (itemRendererOwnerView.host is IEmphasis && (itemRendererOwnerView.host as IEmphasis).emphasis)
++			if (itemRendererOwnerView && itemRendererOwnerView.host is IEmphasis && (itemRendererOwnerView.host as IEmphasis).emphasis)
  			{
- 				emphasis = (itemRendererParent.host as IEmphasis).emphasis;
+ 				emphasis = (itemRendererOwnerView.host as IEmphasis).emphasis;
  			} else
  			{
  				emphasis = "primary";
diff --cc frameworks/projects/Basic/src/main/royale/org/apache/royale/html/accessories/ToolTipRemovalWhenItemRemoved.as
index a72b82d,5108897..3ef69d6
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/accessories/ToolTipRemovalWhenItemRemoved.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/accessories/ToolTipRemovalWhenItemRemoved.as
@@@ -16,20 -16,20 +16,21 @@@
  //  limitations under the License.
  //
  ////////////////////////////////////////////////////////////////////////////////
 -package org.apache.royale.reflection.beads
 +package org.apache.royale.html.accessories
  {
 +	import org.apache.royale.core.IBead;
 +	import org.apache.royale.core.IBeadView;
- 	import org.apache.royale.core.IItemRenderer;
++	import org.apache.royale.core.IOwnerViewItemRenderer;
++	import org.apache.royale.core.IItemRendererOwnerView;
 +	import org.apache.royale.core.IToolTipBead;
 +	import org.apache.royale.core.IStrand;
 +	import org.apache.royale.events.IEventDispatcher;
 +	import org.apache.royale.events.ItemRemovedEvent;
  
 -    import org.apache.royale.reflection.TypeDefinition;
 -    import org.apache.royale.core.IBead;
 -    import org.apache.royale.core.IStrand;
 -    
      /**
 -     *  An easy way to configure Royale Reflection classes to use caching.
 -     *  This can increase memory use, but will provide faster performance for any
 -     *  application that uses reflection in a central role.
 -     *  This bead should be used at the Application level, before any reflection support
 -     *  is needed.
 -     * 
 +     *  The ToolTipRemovalWhenItemRemoved class can be used in lists that have 
 +     *  item tenderers that have tooltips.
 +     *  
       *  @langversion 3.0
       *  @playerversion Flash 10.2
       *  @playerversion AIR 2.6
@@@ -57,24 -56,13 +58,24 @@@
           *  @langversion 3.0
           *  @playerversion Flash 10.2
           *  @playerversion AIR 2.6
 -         *  @productversion Royale 0.0
 +         *  @productversion Royale 0.9.7
           */
 -        public function set strand(value:IStrand):void
 +		public function set strand(value:IStrand):void
 +		{
-             var eventDispatcher:IEventDispatcher = ((value as IItemRenderer).itemRendererParent as IBeadView).host as IEventDispatcher;
++            var eventDispatcher:IEventDispatcher = ((value as IOwnerViewItemRenderer).itemRendererOwnerView as IBeadView).host as IEventDispatcher;
 +            eventDispatcher.addEventListener("itemRemoved", handleItemRemoved);
 +		}
 +
 +        protected function handleItemRemoved(event:ItemRemovedEvent):void
          {
 -            TypeDefinition.useCache = true;
 +                _tooltip.removeTip();
          }
 -            
  
 -    }
 +        private var _tooltip:IToolTipBead;
 +        public function set tooltip(value:IToolTipBead):void
 +            {
 +                    _tooltip = value;
 +            }
 +		
 +	}
  }
diff --cc frameworks/projects/Core/src/main/royale/CoreClasses.as
index 4acda47,7a7d3a1..786a010
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@@ -261,8 -266,9 +268,9 @@@ internal class CoreClasse
      
      import org.apache.royale.core.IDataGridModel; IDataGridModel;
      import org.apache.royale.core.IDataGridPresentationModel; IDataGridPresentationModel;
 -    import org.apache.royale.core.IDateChooserModel; IDateChooserModel;
 +    import org.apache.royale.core.IDateChooserModelWithChangeCheck; IDateChooserModelWithChangeCheck;
  	import org.apache.royale.core.ParentDocumentBead; ParentDocumentBead;
+     import org.apache.royale.core.ItemRendererOwnerViewBead; ItemRendererOwnerViewBead;
  	import org.apache.royale.core.TransformBeadBase; TransformBeadBase;
  	import org.apache.royale.core.TransformModel; TransformModel;
  	import org.apache.royale.core.TransformCompoundModel; TransformCompoundModel;
diff --cc frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
index d5b6532,0000000..6d3a89b
mode 100644,000000..100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
@@@ -1,253 -1,0 +1,132 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.collections.ArrayList;
 +	import org.apache.royale.collections.ICollectionView;
 +	import org.apache.royale.core.IBead;
 +	import org.apache.royale.core.IDataProviderModel;
 +	import org.apache.royale.core.IDataProviderVirtualItemRendererMapper;
 +	import org.apache.royale.core.IItemRendererClassFactory;
- 	import org.apache.royale.core.IItemRendererParent;
++	import org.apache.royale.core.IIndexedItemRenderer;
 +	import org.apache.royale.core.ISelectableItemRenderer;
 +	import org.apache.royale.core.ISelectionModel;
 +	import org.apache.royale.core.IStrand;
 +	import org.apache.royale.core.IStrandWithModelView;
 +	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.events.ItemRendererEvent;
 +	import org.apache.royale.html.beads.IListView;
++	import org.apache.royale.html.beads.VirtualDataItemRendererFactoryBase;
 +	import org.apache.royale.html.supportClasses.DataItemRenderer;
 +	import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
 +	import org.apache.royale.utils.loadBeadFromValuesManager;
 +	import org.apache.royale.utils.sendStrandEvent;
 +
 +    [Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
 +	
 +    /**
 +     *  The DataItemRendererFactoryForArrayData class reads an
 +     *  array of data and creates an item renderer for every
 +     *  item in the array.  Other implementations of
 +     *  IDataProviderItemRendererMapper map different data 
 +     *  structures or manage a virtual set of renderers.
 +     *  
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion Royale 0.9.7
 +     */
- 	public class VirtualDataItemRendererFactoryForCollectionView extends EventDispatcher implements IBead, IDataProviderVirtualItemRendererMapper
++	public class VirtualDataItemRendererFactoryForCollectionView extends VirtualDataItemRendererFactoryBase
 +	{
 +        /**
 +         *  Constructor.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion Royale 0.9.7
 +         */
 +		public function VirtualDataItemRendererFactoryForCollectionView(target:Object=null)
 +		{
 +			super(target);
 +		}
 +
- 		protected var dataProviderModel:IDataProviderModel;
- 		protected var dataFieldProvider:DataFieldProviderBead;
- 		
- 		protected var labelField:String;
-         protected var dataField:String;
- 
- 		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.9.7
-          */
- 		public function set strand(value:IStrand):void
- 		{
- 			_strand = value;
- 			IEventDispatcher(value).addEventListener("initComplete", initComplete);
- 		}
- 		
- 		/**
- 		 * @private
- 		 */
- 		private function initComplete(event:Event):void
- 		{
-             IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
- 
-             var view:IListView = (_strand as IStrandWithModelView).view as IListView;
- 			dataGroup = view.dataGroup;
- 
- 			dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- 			dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
- 			labelField = dataProviderModel.labelField;
- 
-             dataFieldProvider = _strand.getBeadByType(DataFieldProviderBead) as DataFieldProviderBead;
- 			if (dataFieldProvider)
-             {
-                 dataField = dataFieldProvider.dataField;
-             }
- 
- 			// if the host component inherits from DataContainerBase, the itemRendererClassFactory will 
- 			// already have been loaded by DataContainerBase.addedToParent function.
- 			if(!_itemRendererFactory)
-     			_itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory;				
- 			
- 			dataProviderChangeHandler(null);
- 		}
- 		
- 		private var _itemRendererFactory:IItemRendererClassFactory;
- 		
-         /**
-          *  The org.apache.royale.core.IItemRendererClassFactory used 
-          *  to generate instances of item renderers.
-          *  
-          *  @langversion 3.0
-          *  @playerversion Flash 10.2
-          *  @playerversion AIR 2.6
-          *  @productversion Royale 0.9.7
-          */
- 		public function get itemRendererFactory():IItemRendererClassFactory
- 		{
- 			if(!_itemRendererFactory)
-     			_itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory;
- 			
- 			return _itemRendererFactory;
- 		}
- 		
-         /**
-          *  @private
-          */
- 		public function set itemRendererFactory(value:IItemRendererClassFactory):void
- 		{
- 			_itemRendererFactory = value;
- 		}
- 
-         /**
- 		 *  The org.apache.royale.core.IItemRendererParent that will
- 		 *  parent the item renderers.
- 		 *
- 		 *  @langversion 3.0
- 		 *  @playerversion Flash 10.2
- 		 *  @playerversion AIR 2.6
- 		 *  @productversion Royale 0.9.7
- 		 */
- 		protected var dataGroup:IItemRendererParent;
++		private var dp:ArrayList;
 +		
 +        /**
-          *  The org.apache.royale.core.IItemRendererParent that will
-          *  parent the item renderers.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion Royale 0.9.7
 +         *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
 +         *  @royaleignorecoercion org.apache.royale.html.beads.IListView
 +         */		
- 		protected function dataProviderChangeHandler(event:Event):void
++		override protected function dataProviderChangeHandler(event:Event):void
 +		{
 +            if (!dataProviderModel)
 +				return;
- 			var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
++            dp = dataProviderModel.dataProvider as ArrayList;
 +			if (!dp)
 +				return;
 +			
- 			dataGroup.removeAllItemRenderers();
++			super.dataProviderChangeHandler(event);
 +
 +            sendStrandEvent(_strand, "layoutNeeded");
 +        }
 +        
 +        /**
-          *  Free an item renderer for a given index.
-          *
-          *  @langversion 3.0
-          *  @playerversion Flash 10.2
-          *  @playerversion AIR 2.6
-          *  @productversion Royale 0.9.7
-          *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
-          *  @royaleignorecoercion org.apache.royale.html.beads.IListView
-          */
-         public function freeItemRendererForIndex(index:int):void
-         {
-             dataGroup.removeItemRenderer(rendererMap[index]);
-             delete rendererMap[index];
-         }
-         
-         protected var rendererMap:Object = {};
-         
-         /**
 +         *  Get an item renderer for a given index.
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion Royale 0.9.7
 +         *  @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
 +         *  @royaleignorecoercion org.apache.royale.html.beads.IListView
 +         */
-         public function getItemRendererForIndex(index:int, elementIndex:int):ISelectableItemRenderer
++        override public function getItemRendererForIndex(index:int, elementIndex:int):IIndexedItemRenderer
 +        {
-             var ir:ISelectableItemRenderer = rendererMap[index];
++            var ir:IIndexedItemRenderer = rendererMap[index];
 +            if (ir) return ir;
 +            
-             var dp:ArrayList = dataProviderModel.dataProvider as ArrayList;
-             
- 			ir = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
-             var dataItemRenderer:DataItemRenderer = ir as DataItemRenderer;
- 
-             dataGroup.addItemRendererAt(ir, elementIndex);
- 			ir.index = index;
- 			ir.labelField = labelField;
-             if (dataItemRenderer)
-             {
-                 dataItemRenderer.dataField = dataField;
-             }
-             rendererMap[index] = ir;
-             
-             var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
- 			if (presentationModel) {
- 				UIBase(ir).height = presentationModel.rowHeight;
- 				
- 				if(ir is IAlignItemRenderer)
- 				{
- 					(ir as IAlignItemRenderer).align = presentationModel.align;
- 				}
- 			}
- 			ir.data = dp.getItemAt(index);
-             
++			ir = super.getItemRendererForIndex(index, elementIndex);
++			            
 +            // if the item was already selected make the item show it
 +            if(index == (dataProviderModel as ISelectionModel).selectedIndex)
 +            {
-                 ir.selected = true;
++	            var selectionBead:ISelectableItemRenderer;
++                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
++                if (selectionBead)
++                    selectionBead.selected = false;
 +            }
 +				
- 			var itemCreatedEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED);
- 			itemCreatedEvent.itemRenderer = ir;
- 			sendStrandEvent(_strand, itemCreatedEvent);
 +            return ir;
 +		}
++		
++		override public function getItemAt(index:int):Object
++        {
++            return dp.getItemAt(index);
++        }
++
 +	}
 +}
diff --cc frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualListVerticalLayout.as
index a22ca7a,0000000..aba0652
mode 100644,000000..100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualListVerticalLayout.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualListVerticalLayout.as
@@@ -1,463 -1,0 +1,463 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.layouts
 +{
 +    COMPILE::SWF {
 +    import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
 +    import org.apache.royale.core.ILayoutChild;
 +    import org.apache.royale.core.IScrollingViewport;
 +    import org.apache.royale.core.ISelectionModel;
 +    import org.apache.royale.core.IUIBase;
 +    import org.apache.royale.core.ValuesManager;
 +    import org.apache.royale.core.layout.EdgeData;
 +    import org.apache.royale.geom.Size;
 +    import org.apache.royale.html.beads.VirtualDataContainerView;
 +    }
 +	import org.apache.royale.collections.ICollectionView;
 +	import org.apache.royale.core.IBeadLayout;
 +	import org.apache.royale.core.IDataProviderModel;
 +	import org.apache.royale.core.IDataProviderVirtualItemRendererMapper;
 +	import org.apache.royale.core.ILayoutView;
- 	import org.apache.royale.core.ISelectableItemRenderer;
++	import org.apache.royale.core.IIndexedItemRenderer;
 +	import org.apache.royale.core.IStrand;
 +	import org.apache.royale.core.IStrandWithPresentationModel;
 +	import org.apache.royale.events.Event;
 +	import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
 +        
 +	/**
 +	 *  The VirtualListVerticalLayout class is used for Jewel List that wants to use VirtualListView
 +     *  and Virtual ItemRenders.
 +	 *
 +	 *  @langversion 3.0
 +	 *  @playerversion Flash 10.2
 +	 *  @playerversion AIR 2.6
 +	 *  @productversion Royale 0.9.7
 +	 */
 +	public class VirtualListVerticalLayout extends StyledLayoutBase implements IBeadLayout
 +	{
 +		/**
 +		 *  Constructor.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion Royale 0.9.7
 +         *  @royaleignorecoercion HTMLDivElement
 +		 */
 +		public function VirtualListVerticalLayout()
 +		{
 +			super();
 +		}
 +
 +        protected var dataProviderModel:IDataProviderModel;
 +
 +        override public function set strand(value:IStrand):void
 +        {
 +            super.strand = value;
 +            dataProviderModel = host.getBeadByType(IDataProviderModel) as IDataProviderModel;
 +            
 +            COMPILE::JS
 +            {
 +                host.element.addEventListener("scroll", scrollHandler);
 +            }
 +        }
 +
 +        // override public function set strand(value:IStrand):void
 +        // {
 +        //     super.strand = value;
 +        //     // dataProviderModel = host.getBeadByType(IDataProviderModel) as IDataProviderModel;
 +        //     listModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
 +
 +        //     //if the list is composed as part of another component, with a shared model (e.g. ComboBox) then it should not be the primary dispatcher
 +		// 	if (listModel is IJewelSelectionModel && !(IJewelSelectionModel(listModel).hasDispatcher)) {
 +        //          IJewelSelectionModel(listModel).dispatcher = IEventDispatcher(value);
 +		// 	}
 +        //     else {
 +		// 		IEventDispatcher(listModel).addEventListener('rollOverIndexChanged', modelChangeHandler);
 +		// 		IEventDispatcher(listModel).addEventListener('selectionChanged', modelChangeHandler);
 +        //         IEventDispatcher(listModel).addEventListener('dataProviderChanged', modelChangeHandler);
 +        //     }
 +        //     COMPILE::JS
 +        //     {
 +        //         host.element.addEventListener("scroll", scrollHandler);
 +        //     }
 +        // }
 +        // protected function modelChangeHandler(event:Event):void{
 +        //     IEventDispatcher(_strand).dispatchEvent(new Event(event.type));
 +        // }
 +        
 +        COMPILE::JS
 +        protected var topSpacer:HTMLDivElement;
 +        
 +        COMPILE::JS
 +        protected var bottomSpacer:HTMLDivElement;
 +        
 +        protected var visibleIndexes:Array = [];
 +        
 +        protected function scrollHandler(e:Event):void
 +        {
 +            layout();
 +        }
 +        
 +        private var inLayout:Boolean;
 +        
 +		/**
 +		 *  Layout children vertically
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion Royale 0.9.7
 +		 *  @royaleignorecoercion Array
 +		 *  @royaleignorecoercion org.apache.royale.core.ILayoutHost
 +		 *  @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
 +		 *  @royaleignorecoercion org.apache.royale.jewel.supportClasses.list.IListPresentationModel
 +		 *  @royaleignorecoercion org.apache.royale.core.IStrandWithPresentationModel
 +		 */
 +		override public function layout():Boolean
 +		{
 +            if (inLayout) return true;
 +            inLayout = true;
 +             
 +			COMPILE::SWF
 +			{
 +                // the strategy for virtualization in SWF is based on the
 +                // fact that we can completely control the scrolling metrics
 +                // instead of trying to rely on the browsers built-in scrolling.
 +                // This code puts enough renderers on the screen and then dictates
 +                // the scrolling metrics.
 +				var contentView:ILayoutView = layoutView;
 +
 +				var maxWidth:Number = 0;
 +				var maxHeight:Number = 0;
 +                var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
 +                if (!dp) 
 +                {
 +                    inLayout = false;
 +                    return true;
 +                }
 +                var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
 +				var hostWidthSizedToContent:Boolean = host.isWidthSizedToContent();
 +				var hostHeightSizedToContent:Boolean = host.isHeightSizedToContent();
 +				var hostWidth:Number = host.width;
 +				var hostHeight:Number = host.height;
 +
 +				var data:Object;
 +				var canAdjust:Boolean = false;
 +
 +				var paddingMetrics:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getPaddingMetrics(host);
 +				var borderMetrics:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getBorderMetrics(host);
 +				
 +				// adjust the host's usable size by the metrics. If hostSizedToContent, then the
 +				// resulting adjusted value may be less than zero.
 +				hostWidth -= paddingMetrics.left + paddingMetrics.right + borderMetrics.left + borderMetrics.right;
 +				hostHeight -= paddingMetrics.top + paddingMetrics.bottom + borderMetrics.top + borderMetrics.bottom;
 +
 +				var xpos:Number = borderMetrics.left + paddingMetrics.left;
 +                var ypos:Number = borderMetrics.top + paddingMetrics.top;
 +                
 +                var viewport:IScrollingViewport = host.getBeadByType(IScrollingViewport) as IScrollingViewport;
 +                viewport.addEventListener("verticalScrollPositionChanged", scrollHandler);
 +                var viewportTop:Number = viewport.verticalScrollPosition;
 +                var viewportHeight:Number = hostHeight;
 +                var startIndex:int = Math.floor(viewportTop / presentationModel.rowHeight);
 +                var factory:IDataProviderVirtualItemRendererMapper = host.getBeadByType(IDataProviderVirtualItemRendererMapper) as IDataProviderVirtualItemRendererMapper;
 +                var endIndex:int = Math.ceil((viewportTop + viewportHeight) / presentationModel.rowHeight);
 +                var freeIndex:int;
 +                var firstIndex:int;
 +                var lastIndex:int;
 +
 +                if (visibleIndexes.length)
 +                {
 +                    if (startIndex < visibleIndexes[0])
 +                    {
 +                        // see if we can re-use any renderers
 +                        freeIndex = visibleIndexes.pop();
 +                        while (freeIndex >= endIndex)
 +                        {
 +                            factory.freeItemRendererForIndex(freeIndex);
 +                            if (visibleIndexes.length == 0)
 +                                break;
 +                            freeIndex = visibleIndexes.pop();
 +                        }
 +                        if (visibleIndexes.length)
 +                            endIndex = visibleIndexes[visibleIndexes.length - 1];
 +                    }
 +                    else if (startIndex > visibleIndexes[0])
 +                    {
 +                        // see if we can re-use any renderers
 +                        freeIndex = visibleIndexes.shift();
 +                        while (freeIndex < startIndex)
 +                        {
 +                            factory.freeItemRendererForIndex(freeIndex);
 +                            if (visibleIndexes.length == 0)
 +                                break;
 +                            freeIndex = visibleIndexes.shift();
 +                        }
 +                    }
 +                    else
 +                    {
 +                        // see if rows got added or removed because height changed
 +                        lastIndex = visibleIndexes[visibleIndexes.length - 1];
 +                        if (lastIndex > endIndex)
 +                        {
 +                            // see if we can re-use any renderers
 +                            freeIndex = visibleIndexes.pop();
 +                            while (freeIndex > endIndex)
 +                            {
 +                                factory.freeItemRendererForIndex(freeIndex);
 +                                if (visibleIndexes.length == 0)
 +                                    break;
 +                                freeIndex = visibleIndexes.pop();
 +                            }
 +                            inLayout = false;
 +                            return true;  // we should be all done if we shrunk
 +                        }
 +                    }
 +                    firstIndex = visibleIndexes[0];
 +                    lastIndex = visibleIndexes[visibleIndexes.length - 1];
 +                }
 +                else
 +                {
 +                    firstIndex = dp.length;
 +                    lastIndex = 0;
 +                }
 +                for (var i:int = startIndex; i < endIndex; i++)
 +                {
 +                    if (i >= dp.length) continue; // no more renderers needed
 +                    
-                     var ir:ISelectableItemRenderer;
++                    var ir:IIndexedItemRenderer;
 +                    if (i < firstIndex)
 +                    {
 +                        ir  = factory.getItemRendererForIndex(i, i - startIndex);
 +                        sizeAndPositionRenderer(ir, xpos, ypos + (presentationModel.rowHeight * i), hostWidth, hostHeight);
 +                        visibleIndexes.push(i);
 +                    }
 +                    else if (i > lastIndex)
 +                    {
 +                        ir  = factory.getItemRendererForIndex(i, i - startIndex);
 +                        sizeAndPositionRenderer(ir, xpos, ypos + (presentationModel.rowHeight * i), hostWidth, hostHeight);
 +                        visibleIndexes.push(i);
 +                    }
 +                }
 +                visibleIndexes = visibleIndexes.sort(numberSort);
 +
 +                var view:VirtualDataContainerView = host.getBeadByType(VirtualDataContainerView) as VirtualDataContainerView;
 +                view.lastContentSize = new Size(hostWidth, dp.length * presentationModel.rowHeight);
 +
 +                inLayout = false;
 +				return true;
 +			}
 +			COMPILE::JS
 +			{
 +                // the strategy for virtualization in JS is to leverage the built-in scrollbars
 +                // by creating a topSpacer and bottomSpacer that take up the area that is offscreen
 +                // so the scrollbars have the right metrics, then create enough renderers to
 +                // show in the visible area.  This code does not recycle renderers, but the
 +                // factory can.  This code does try to keep renderers on the DOM that aren't
 +                // going off-screen
 +                var contentView:ILayoutView = layoutView;
 +                var dp:ICollectionView = dataProviderModel.dataProvider as ICollectionView;
 +                if (!dp) 
 +                {
 +                    inLayout = false;
 +                    return true;
 +                }
 +                var presentationModel:IListPresentationModel = (host as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
 +                var totalHeight:Number = presentationModel.rowHeight * dp.length;
 +                var viewportTop:Number = Math.max(contentView.element.scrollTop, 0);
 +                var viewportHeight:Number = contentView.height;
 +                var startIndex:int = Math.floor(viewportTop / presentationModel.rowHeight);
 +                var factory:IDataProviderVirtualItemRendererMapper = host.getBeadByType(IDataProviderVirtualItemRendererMapper) as IDataProviderVirtualItemRendererMapper;
 +                var endIndex:int = Math.ceil((viewportTop + viewportHeight) / presentationModel.rowHeight) + 1;
 +                var freeIndex:int;
 +                var firstIndex:int;
 +                var lastIndex:int;
 +                if (!topSpacer)
 +                {
 +                    topSpacer = document.createElement("div") as HTMLDivElement;
 +                    contentView.element.appendChild(topSpacer);
 +                }
 +                topSpacer.style.height = (startIndex * presentationModel.rowHeight).toString() + "px";
 +                // trace("starting layout: startIndex = " + startIndex + " endIndex = " + endIndex);
 +                if (visibleIndexes.length)
 +                {
 +                    // trace("visibleIndexes: " + visibleIndexes);
 +                    if (startIndex < visibleIndexes[0])
 +                    {
 +                        // trace("startIndex < visibleIndex[0]");
 +                        // see if we can re-use any renderers
 +                        freeIndex = visibleIndexes.pop();
 +                        // trace("freeIndex: " + freeIndex);
 +                        while (freeIndex > endIndex)
 +                        {
 +                            // trace("free: " + freeIndex);
 +                            factory.freeItemRendererForIndex(freeIndex);
 +                            if (visibleIndexes.length == 0)
 +                                break;
 +                            freeIndex = visibleIndexes.pop();
 +                        }
 +                        // we popped it off at the end of loop but if we didn't
 +                        // use it, then push it back on
 +                        if (freeIndex == endIndex)
 +                            visibleIndexes.push(freeIndex);
 +                        if (visibleIndexes.length)
 +                        {
 +                            endIndex = visibleIndexes[visibleIndexes.length - 1];
 +                            // trace("changing endIndex: " + endIndex);
 +                        }
 +                    }
 +                    else if (startIndex > visibleIndexes[0])
 +                    {
 +                        // trace("startIndex > visibleIndex[0]");
 +                        // see if we can re-use any renderers
 +                        freeIndex = visibleIndexes.shift();
 +                        // trace("freeIndex: " + freeIndex);
 +                        while (freeIndex < startIndex)
 +                        {
 +                            // trace("free: " + freeIndex);
 +                            factory.freeItemRendererForIndex(freeIndex);
 +                            if (visibleIndexes.length == 0)
 +                                break;
 +                            freeIndex = visibleIndexes.shift();
 +                        }
 +                    }
 +                    else
 +                    {
 +                        // trace("startIndex == visibleIndex[0]");
 +                        // see if rows got added or removed because height changed
 +                        lastIndex = visibleIndexes[visibleIndexes.length - 1];
 +                        // trace("lastIndex: " + lastIndex);
 +                        if (lastIndex > endIndex)
 +                        {
 +                            // see if we can re-use any renderers
 +                            freeIndex = visibleIndexes.pop();
 +                            // trace("freeIndex: " + freeIndex);
 +                            while (freeIndex > endIndex)
 +                            {
 +                                // trace("free: " + freeIndex);
 +                                factory.freeItemRendererForIndex(freeIndex);
 +                                if (visibleIndexes.length == 0)
 +                                    break;
 +                                freeIndex = visibleIndexes.pop();
 +                            }
 +                            inLayout = false;
 +                            return true;  // we should be all done if we shrunk
 +                        }
 +                    }
 +                    firstIndex = visibleIndexes[0];
 +                    lastIndex = visibleIndexes[visibleIndexes.length - 1];
 +                    // trace("done freeing: firstIndex = " + firstIndex + " lastIndex = " + lastIndex);
 +                }
 +                else
 +                {
 +                    firstIndex = dp.length;
 +                    lastIndex = 0;
 +                    // trace("no freeing: firstIndex = " + firstIndex + " lastIndex = " + lastIndex);
 +                }
 +                for (var i:int = startIndex; i < endIndex; i++)
 +                {
 +                    if (i >= dp.length) continue; // no more renderers needed
 +                    
-                     var ir:ISelectableItemRenderer;
++                    var ir:IIndexedItemRenderer;
 +                    if (i < firstIndex)
 +                    {
 +                    //    trace("i < firstIndex: creating: i = " + i);
 +                       ir  = factory.getItemRendererForIndex(i, i - startIndex + 1);
 +                       visibleIndexes.push(i);
 +                    }
 +                    else if (i > lastIndex)
 +                    {
 +                        // trace("i > lastIndex: creating: i = " + i);
 +                        ir  = factory.getItemRendererForIndex(i, i - startIndex + 1);
 +                        visibleIndexes.push(i);
 +                    }
 +                }
 +                visibleIndexes = visibleIndexes.sort(numberSort);
 +                // trace("visibleIndexes: " + visibleIndexes);
 +                if (!bottomSpacer)
 +                {
 +                    bottomSpacer = document.createElement("div") as HTMLDivElement;
 +                    contentView.element.appendChild(bottomSpacer);
 +                }
 +                else
 +                {
 +                    // ensure bottom spacer is at the bottom!
 +                    contentView.element.removeChild(bottomSpacer);                    
 +                    contentView.element.appendChild(bottomSpacer);                    
 +                }
 +                
 +                var numBottomRows:int = dp.length - endIndex;
 +                bottomSpacer.style.height = (numBottomRows > 0) ? (numBottomRows * presentationModel.rowHeight).toString() + "px" : "0px";  
 +                // trace("ENDING LAYOUT: bottom spacer = " + bottomSpacer.style.height);
 +                inLayout = false;
 +				return true;
 +			}
 +		}
 +        
 +        public function numberSort(a:int, b:int):int
 +        {
 +            return a - b;
 +        }
 +
 +        COMPILE::SWF
-         protected function sizeAndPositionRenderer(ir:ISelectableItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void
++        protected function sizeAndPositionRenderer(ir:IIndexedItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void
 +        {
 +            var ilc:ILayoutChild;
 +            var positions:Object = childPositions(ir);
 +            var margins:Object = childMargins(ir, hostWidth, hostHeight);
 +            
 +            ilc = ir as ILayoutChild;
 +            var child:IUIBase = ir as IUIBase;
 +            
 +            ypos += margins.top;
 +            
 +            var childXpos:Number = xpos + margins.left; // default x position
 +            
 +            var childWidth:Number = child.width;
 +            if (ilc != null && !isNaN(ilc.percentWidth)) {
 +                childWidth = hostWidth * ilc.percentWidth/100.0;
 +                ilc.setWidth(childWidth);
 +            }
 +            else if (ilc.isWidthSizedToContent() && !margins.auto)
 +            {
 +                childWidth = hostWidth;
 +                ilc.setWidth(childWidth);
 +            }
 +            if (margins.auto)
 +                childXpos = (hostWidth - childWidth) / 2;
 +            
 +            if (ilc) {
 +                ilc.setX(childXpos);
 +                ilc.setY(ypos);
 +                
 +                if (!isNaN(ilc.percentHeight)) {
 +                    var newHeight:Number = hostHeight * ilc.percentHeight / 100;
 +                    ilc.setHeight(newHeight);
 +                }
 +                
 +            } else {
 +                child.x = childXpos;
 +                child.y = ypos;
 +            }
 +            
 +            ypos += child.height + margins.bottom;
 +        }
 +	}
 +}
diff --cc frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
index d8ad7e8,4cc2122..cb781f8
--- 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
@@@ -18,9 -18,14 +18,10 @@@
  ////////////////////////////////////////////////////////////////////////////////
  package org.apache.royale.jewel.beads.views
  {
- 	import org.apache.royale.core.IItemRendererParent;
 -	COMPILE::JS
 -	{
 -	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;
++	import org.apache.royale.core.IItemRenderer;
  	import org.apache.royale.core.ISelectableItemRenderer;
  	import org.apache.royale.core.ISelectionModel;
  	import org.apache.royale.core.IStrand;
diff --cc frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
index 26737a1,0000000..a65bcb4
mode 100644,000000..100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
@@@ -1,137 -1,0 +1,154 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.views
 +{
 +	import org.apache.royale.core.IItemRenderer;
 +	import org.apache.royale.core.IRollOverModel;
++	import org.apache.royale.core.IIndexedItemRenderer;
 +	import org.apache.royale.core.ISelectableItemRenderer;
 +	import org.apache.royale.core.ISelectionModel;
 +	import org.apache.royale.events.Event;
 +	import org.apache.royale.html.beads.VirtualDataContainerView;
 +        
 +	/**
 +	 *  The VirtualListView class creates the visual elements of the org.apache.royale.jewel.List
 +	 *  component in a way that can be recicled to reuse as the user scrolls the list getting performance improvements
 +	 *  when dataproviders with lots of items are passed to the component. In This way Royale just create a few 
 +	 *  item renderers visible for the user, instead of one renderer for each item in the data provider. 
 +	 *   
 +	 *  A List consists of the area to display the data (in the dataGroup), any
 +	 *  scrollbars, and so forth.
 +	 *
 +	 *  @viewbead
 +	 *  @langversion 3.0
 +	 *  @playerversion Flash 10.2
 +	 *  @playerversion AIR 2.6
 +	 *  @productversion Royale 0.9.7
 +	 */
 +	public class VirtualListView extends VirtualDataContainerView
 +	{
 +		public function VirtualListView()
 +		{
 +			super();
 +		}
 +
 +		protected var listModel:ISelectionModel;
 +
 +		protected var lastSelectedIndex:int = -1;
 +
 +		/**
 +		 * @private
 +		 * @royaleignorecoercion org.apache.royale.core.ISelectionModel
 +		 */
 +		override protected function handleInitComplete(event:Event):void
 +		{
 +			listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
 +			listModel.addEventListener("selectionChanged", selectionChangeHandler);
 +			listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler);
 +			// listenOnStrand("itemsCreated", itemsCreatedHandler);
 +
 +			super.handleInitComplete(event);
 +		}
 +
 +		/**
 +		 * @private
 +		 * Ensure the list selects the selectedItem if some is set by the user at creation time
 +		 */
 +		// override protected function itemsCreatedHandler(event:Event):void
 +		// {
 +        //     super.itemsCreatedHandler(event);
 +		// 	if(listModel.selectedIndex != -1)
 +		// 		selectionChangeHandler(null);
 +		// }
 +
 +        protected var firstElementIndex:int = 1;
 +		/**
 +		 * Retrieve the renderer for a given index
 +		 */
 +        override public function getItemRendererForIndex(index:int):IItemRenderer
 +        {
 +            if (contentView.numElements == 0)
 +                return null;
 +            
-             var firstIndex:int = (contentView.getElementAt(firstElementIndex) as ISelectableItemRenderer).index;
++            var firstIndex:int = (contentView.getElementAt(firstElementIndex) as IIndexedItemRenderer).index;
 +            
 +            if (index < firstIndex) 
 +                return null;
 +            if (index >= (firstIndex + contentView.numElements))
 +                return null;
 +            
 +            return contentView.getElementAt(index - firstIndex + firstElementIndex) as IItemRenderer;            
 +        }
 +        
 +		/**
 +		 * @private
- 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
++		 * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
 +		 */
 +		protected function selectionChangeHandler(event:Event):void
 +		{
- 			var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastSelectedIndex) as ISelectableItemRenderer;
- 			if(ir)
- 				ir.selected = false;
- 			ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as ISelectableItemRenderer;
- 			if(ir)
- 				ir.selected = true;
- 
++            var selectionBead:ISelectableItemRenderer;
++            var ir:IItemRenderer = dataGroup.getItemRendererForIndex(lastSelectedIndex) as IItemRenderer;
++            if (ir) 
++            {
++                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
++                if (selectionBead)
++                    selectionBead.selected = false;
++            }
++            ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
++            if (ir) {
++                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
++                if (selectionBead)
++                    selectionBead.selected = true;
++            }
++				
 +			lastSelectedIndex = listModel.selectedIndex;
 +		}
 +
 +		protected var lastRollOverIndex:int = -1;
 +
 +		/**
 +		 * @private
- 		 * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer
++		 * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
 +		 * * @royaleignorecoercion org.apache.royale.core.IRollOverModel
 +		 */
 +		protected function rollOverIndexChangeHandler(event:Event):void
 +		{
- 			var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- 			if(ir)
- 				ir.hovered = false;
- 			ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- 			if(ir)
- 				ir.hovered = true;
++            var selectionBead:ISelectableItemRenderer;
++            var ir:IIndexedItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as IIndexedItemRenderer;
++            if (ir) 
++            {
++                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
++                if (selectionBead)
++                    selectionBead.hovered = false;
++            }
++            ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as IIndexedItemRenderer;
++            if (ir) {
++                selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
++                if (selectionBead)
++                    selectionBead.hovered = true;
++            }
 +			lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex;
 +		}
 +
 +		override protected function dataProviderChangeHandler(event:Event):void
 +		{
 +
 +		}
 +	}
 +}


[royale-asjs] 06/13: distinguish between clicking on open/close icon or label of Tree ItemRenderer. Should fix #670

Posted by ah...@apache.org.
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

commit 97e33c52fb9f1f69d23f5b58c38fc5a16cc388d1
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 16:53:29 2020 -0800

    distinguish between clicking on open/close icon or label of Tree ItemRenderer.  Should fix #670
---
 .../TreeSingleSelectionMouseController.as          | 26 +++++-
 .../MXRoyale/src/main/resources/defaults.css       |  2 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |  1 +
 .../beads/TreeItemRendererMouseController.as       | 96 ++++++++++++++++++++++
 .../mx/controls/treeClasses/TreeItemRenderer.as    |  2 +-
 5 files changed, 123 insertions(+), 4 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as
index 9636991..a0cd0d0 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as
@@ -20,7 +20,10 @@ package org.apache.royale.html.beads.controllers
 {
 	import org.apache.royale.collections.ITreeData;
 	import org.apache.royale.core.IStrand;
+	import org.apache.royale.events.IEventDispatcher;
+	import org.apache.royale.events.ItemAddedEvent;
 	import org.apache.royale.events.ItemClickedEvent;
+	import org.apache.royale.events.ItemRemovedEvent;
 	import org.apache.royale.utils.sendStrandEvent;
 
 	/**
@@ -63,7 +66,7 @@ package org.apache.royale.html.beads.controllers
 		/**
 		 * @private
 		 */
-		override protected function selectedHandler(event:ItemClickedEvent):void
+		protected function expandedHandler(event:ItemClickedEvent):void
 		{
 			var treeData:ITreeData = listModel.dataProvider as ITreeData;
 			if (treeData == null) return;
@@ -78,10 +81,29 @@ package org.apache.royale.html.beads.controllers
 					treeData.openNode(node);
 				}
 			}
-			
+			/** what is this for? was in selectedHandler
 			// reset the selection
 			listModel.selectedItem = node;
 			sendStrandEvent(_strand,"change");
+			*/
+		}
+		
+		/**
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		override protected function handleItemAdded(event:ItemAddedEvent):void
+		{
+			super.handleItemAdded(event);
+			IEventDispatcher(event.item).addEventListener("itemExpanded", expandedHandler);
+		}
+		
+		/**
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		override protected function handleItemRemoved(event:ItemRemovedEvent):void
+		{
+			super.handleItemRemoved(event);
+			IEventDispatcher(event.item).removeEventListener("itemExpanded", expandedHandler);
 		}
 	}
 }
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index 6e83a85..b0f4e39 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -449,7 +449,7 @@ Tree
 
 TreeItemRenderer
 {
-	IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ItemRendererMouseController");
+	IBeadController: ClassReference("mx.controls.beads.TreeItemRendererMouseController");
 	cursor: pointer;
 }
 
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 8547ab9..cd54e79 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -179,6 +179,7 @@ internal class MXRoyaleClasses
     import mx.controls.beads.layouts.AdvancedDataGridLayout; AdvancedDataGridLayout;
     import mx.controls.beads.layouts.DataGridLayout; DataGridLayout;
     import mx.controls.beads.layouts.AdvancedDataGridVirtualListVerticalLayout; AdvancedDataGridVirtualListVerticalLayout;
+    import mx.controls.beads.TreeItemRendererMouseController; TreeItemRendererMouseController;
 	import mx.formatters.Formatter; Formatter;
 	import mx.formatters.IFormatter; IFormatter;
 	import mx.formatters.NumberBase; NumberBase;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererMouseController.as
new file mode 100644
index 0000000..6c17086
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeItemRendererMouseController.as
@@ -0,0 +1,96 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.beads
+{	
+	import org.apache.royale.core.IBeadController;
+	import org.apache.royale.core.IIndexedItemRenderer;
+    import org.apache.royale.core.ISelectableItemRenderer;
+	import org.apache.royale.core.IStrand;
+	import org.apache.royale.core.IUIBase;
+COMPILE::SWF {
+	import org.apache.royale.events.Event;
+	import org.apache.royale.events.MouseEvent;
+}
+COMPILE::JS {
+	import org.apache.royale.core.WrappedHTMLElement;
+	import org.apache.royale.events.BrowserEvent;
+	import goog.events.Event;
+	import goog.events.EventType;
+	import goog.events;
+}    
+    import org.apache.royale.html.beads.controllers.ItemRendererMouseController;
+	import org.apache.royale.events.ItemClickedEvent;
+	import org.apache.royale.utils.sendEvent;
+	import mx.controls.treeClasses.TreeItemRenderer;
+	    
+	/**
+	 *  The TreeItemRendererMouseController class handles mouse events for item renderers
+     *  in tree classes.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 */
+	public class TreeItemRendererMouseController extends ItemRendererMouseController
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function TreeItemRendererMouseController()
+		{
+		}
+				
+		/**
+		 * @private
+		 * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer
+		 */
+		COMPILE::JS
+		override protected function handleMouseClick(event:BrowserEvent):void
+		{
+			var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer;
+			if (target)
+			{
+				if (target is TreeItemRenderer)
+				{
+					var expandIcon:IUIBase = (target as TreeItemRenderer).disclosureIcon;
+					if (event.target == expandIcon)
+					{
+						var expandEvent:ItemClickedEvent = new ItemClickedEvent("itemExpanded");
+						expandEvent.data = target.data;
+						expandEvent.index = target.index;
+						sendEvent(target,expandEvent);
+						return;
+					}
+				}
+				var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+				newEvent.data = target.data;
+				newEvent.index = target.index;
+
+				sendEvent(target,newEvent);
+			}
+		}
+		        
+	}
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/TreeItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/TreeItemRenderer.as
index f3daf68..146d621 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/TreeItemRenderer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/TreeItemRenderer.as
@@ -169,7 +169,7 @@ public class TreeItemRenderer extends UIComponent
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    protected var disclosureIcon:Label;
+    public var disclosureIcon:Label;
 
     //--------------------------------------------------------------------------
     //


[royale-asjs] 03/13: Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

Posted by ah...@apache.org.
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

commit 7082ae3f6ad718de386e384d7e5455b3f91a1e7d
Merge: edb9bd1 b3c63f5
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 01:35:58 2020 -0800

    Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

 .../royale/org/apache/royale/binding/PropertyWatcher.as     | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)


[royale-asjs] 07/13: mxtests pass

Posted by ah...@apache.org.
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

commit ea9279bb16da91dec0c16019044af2b7ec77387a
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 23:39:27 2020 -0800

    mxtests pass
---
 .../royale/org/apache/royale/html/DataContainer.as |   9 +-
 .../MXRoyale/src/main/resources/defaults.css       |   2 +
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   1 +
 .../main/royale/mx/collections/ICollectionView.as  |   1 -
 .../MXRoyale/src/main/royale/mx/controls/Button.as |   6 +-
 .../controls/beads/ListItemRendererInitializer.as  |   2 +-
 .../controls/beads/models/ListPresentationModel.as |  47 +++++++++
 ...ataItemRendererFactoryForICollectionViewData.as | 108 ++++++++++++++++++++-
 .../royale/mx/controls/listClasses/ListBase.as     |   1 +
 9 files changed, 168 insertions(+), 9 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
index d3dae3d..be71a3a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/DataContainer.as
@@ -35,6 +35,7 @@ package org.apache.royale.html
 	import org.apache.royale.core.IDataProviderModel;
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.core.ValuesManager;
+	import org.apache.royale.utils.loadBeadFromValuesManager;
     COMPILE::JS
     {
         import org.apache.royale.core.WrappedHTMLElement;
@@ -146,8 +147,12 @@ package org.apache.royale.html
 		{
 			var presModel:IListPresentationModel = getBeadByType(IListPresentationModel) as IListPresentationModel;
 			if (presModel == null) {
-				presModel = new ListPresentationModel();
-				addBead(presModel);
+			    presModel = loadBeadFromValuesManager(IListPresentationModel, "iListPresentationModel", this) as IListPresentationModel;
+				if (presModel == null)
+				{		
+					presModel = new ListPresentationModel();
+					addBead(presModel);
+				}
 			}
 			return presModel;
 		}
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index b0f4e39..3f18c00 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -59,12 +59,14 @@ Basic|CascadingMenu
 	IDataProviderItemRendererMapper: ClassReference("mx.controls.listClasses.DataItemRendererFactoryForICollectionViewData");
 	IBeadController: ClassReference("mx.controls.beads.controllers.CascadingMenuSelectionMouseController");
 	IMenu: ClassReference("mx.controls.menuClasses.CascadingMenuWithOnScreenCheck");
+	IListPresentationModel: ClassReference("mx.controls.beads.models.ListPresentationModel");
 }
 
 Basic|ComboBoxList
 {
 	IDataProviderItemRendererMapper: ClassReference("mx.controls.listClasses.DataItemRendererFactoryForICollectionViewData");
 	IBeadModel: ClassReference("mx.controls.beads.models.SingleSelectionICollectionViewModel");
+	IListPresentationModel: ClassReference("mx.controls.beads.models.ListPresentationModel");
 }
 
 Basic|DataGridColumnList {
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index cd54e79..b2de5ae 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -257,6 +257,7 @@ internal class MXRoyaleClasses
 	import mx.controls.beads.models.DataGridColumnICollectionViewModel; DataGridColumnICollectionViewModel;
     import mx.controls.beads.models.DataGridICollectionViewModel; DataGridICollectionViewModel;
     import mx.controls.beads.models.DataGridPresentationModel; DataGridPresentationModel;
+    import mx.controls.beads.models.ListPresentationModel; ListPresentationModel;
     import mx.controls.beads.models.SingleSelectionIListModel; SingleSelectionIListModel;
     import mx.controls.buttonBarClasses.TextButtonDataGridColumnItemRenderer; TextButtonDataGridColumnItemRenderer;
     
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as
index d9ea7e0..33e4b94 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as
@@ -21,7 +21,6 @@ package mx.collections
 {
 import mx.events.CollectionEvent;
 
-import org.apache.royale.collections.ICollectionView;
 import org.apache.royale.events.IEventDispatcher;
 
 /**
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
index 311b077..fc3ea48 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Button.as
@@ -479,7 +479,7 @@ public class Button extends UIComponent implements IDataRenderer, IListItemRende
 	 *  @private
 	 *  Storage for the listData property.
 	 */
-	private var _listData:BaseListData;
+	private var _listData:Object;
 	
 	[Bindable("dataChange")]
 	[Inspectable(environment="none")]
@@ -504,7 +504,7 @@ public class Button extends UIComponent implements IDataRenderer, IListItemRende
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
-	public function get listData():BaseListData
+	public function get listData():Object
 	{
 		return _listData;
 	}
@@ -512,7 +512,7 @@ public class Button extends UIComponent implements IDataRenderer, IListItemRende
 	/**
 	 *  @private
 	 */
-	public function set listData(value:BaseListData):void
+	public function set listData(value:Object):void
 	{
 		_listData = value;
 	}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ListItemRendererInitializer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ListItemRendererInitializer.as
index 439ce92..642e72c 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ListItemRendererInitializer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ListItemRendererInitializer.as
@@ -75,7 +75,7 @@ package mx.controls.beads
             if (!dataProviderModel)
                 return;
             
-            super.initializeItemRenderer(ir, data, index);
+            super.initializeIndexedItemRenderer(ir, data, index);
             
 			if (ir is IOwnerViewItemRenderer)
 				(ir as IOwnerViewItemRenderer).itemRendererOwnerView = ownerView;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/ListPresentationModel.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/ListPresentationModel.as
new file mode 100644
index 0000000..6dfaa74
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/ListPresentationModel.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.beads.models
+{
+    import org.apache.royale.html.beads.models.ListPresentationModel;
+
+    /**
+     *  DataGrid Presentation Model
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     */
+	public class ListPresentationModel extends org.apache.royale.html.beads.models.ListPresentationModel
+	{
+        /**
+         *  Constructor.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.0
+         */
+		public function ListPresentationModel()
+		{
+            super();
+            rowHeight = 22;
+		}		
+    }
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/DataItemRendererFactoryForICollectionViewData.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/DataItemRendererFactoryForICollectionViewData.as
index ee6d141..7ecf118 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/DataItemRendererFactoryForICollectionViewData.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/DataItemRendererFactoryForICollectionViewData.as
@@ -30,7 +30,9 @@ package mx.controls.listClasses
     import org.apache.royale.core.IItemRendererOwnerView;
     import org.apache.royale.core.IListPresentationModel;
     import org.apache.royale.core.IIndexedItemRenderer;
+    import org.apache.royale.core.IIndexedItemRendererInitializer;
     import org.apache.royale.core.IStrand;
+    import org.apache.royale.core.IStrandWithModelView;
     import org.apache.royale.core.IUIBase;
     import org.apache.royale.core.SimpleCSSStyles;
     import org.apache.royale.core.UIBase;
@@ -41,7 +43,8 @@ package mx.controls.listClasses
     import org.apache.royale.events.IEventDispatcher;
     import org.apache.royale.events.ItemRendererEvent;
     import org.apache.royale.html.List;
-    import org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView;
+    import org.apache.royale.html.beads.IListView;
+    import org.apache.royale.html.beads.DataItemRendererFactoryBase;
     import org.apache.royale.html.supportClasses.TreeListData;
 	
     /**
@@ -56,7 +59,7 @@ package mx.controls.listClasses
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-	public class DataItemRendererFactoryForICollectionViewData extends DataItemRendererFactoryForCollectionView
+	public class DataItemRendererFactoryForICollectionViewData extends DataItemRendererFactoryBase
 	{
         /**
          *  Constructor.
@@ -122,5 +125,106 @@ package mx.controls.listClasses
             cursor.moveNext();
             return obj;
         }
+
+		/**
+		 * @private
+		 * @royaleignorecoercion org.apache.royale.collections.ICollectionView
+		 * @royaleignorecoercion org.apache.royale.core.IListPresentationModel
+		 * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		protected function itemAddedHandler(event:CollectionEvent):void
+		{
+			if (!dataProviderModel)
+				return;
+			dp = dataProviderModel.dataProvider as ICollectionView;
+			if (!dp)
+				return;
+			
+            var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+            var dataGroup:IItemRendererOwnerView = view.dataGroup;
+            
+			var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer() as IIndexedItemRenderer;
+			dataGroup.addItemRendererAt(ir, event.index);
+
+            var data:Object = event.item;
+            (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
+            ir.data = data;				
+			
+			// update the index values in the itemRenderers to correspond to their shifted positions.
+			var n:int = dataGroup.numItemRenderers;
+			for (var i:int = event.index; i < n; i++)
+			{
+				ir = dataGroup.getItemRendererAt(i) as IIndexedItemRenderer;
+				ir.index = i;
+				
+				// could let the IR know its index has been changed (eg, it might change its
+				// UI based on the index). Instead (PAYG), allow another bead to detect
+				// this event and do this as not every IR will need to be updated.
+				//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
+				//if (ubase) ubase.updateRenderer()
+			}
+			
+			(_strand as IEventDispatcher).dispatchEvent(new Event("itemsCreated"));
+			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+		}
+		
+		protected function itemRemovedHandler(event:CollectionEvent):void
+		{
+			if (!dataProviderModel)
+				return;
+			dp = dataProviderModel.dataProvider as ICollectionView;
+			if (!dp)
+				return;
+			
+            var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+            var dataGroup:IItemRendererOwnerView = view.dataGroup;
+            
+			var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer;
+			if (!ir) return; // may have already been cleaned up, possibly when a tree node closes
+			dataGroup.removeItemRenderer(ir);
+			
+			// adjust the itemRenderers' index to adjust for the shift
+			var n:int = dataGroup.numItemRenderers;
+			for (var i:int = event.index; i < n; i++)
+			{
+				ir = dataGroup.getItemRendererAt(i) as IIndexedItemRenderer;
+				ir.index = i;
+				
+				// could let the IR know its index has been changed (eg, it might change its
+				// UI based on the index). Instead (PAYG), allow another bead to detect
+				// this event and do this as not every IR will need to be updated.
+				//var ubase:UIItemRendererBase = ir as UIItemRendererBase;
+				//if (ubase) ubase.updateRenderer()
+			}
+			
+			(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
+		}
+		
+		/**
+		 * @private
+		 * @royaleignorecoercion org.apache.royale.collections.ICollectionView
+		 * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
+		 */
+		protected function itemUpdatedHandler(event:CollectionEvent):void
+		{
+			if (!dataProviderModel)
+				return;
+			dp = dataProviderModel.dataProvider as ICollectionView;
+			if (!dp)
+				return;
+
+            var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+            var dataGroup:IItemRendererOwnerView = view.dataGroup;
+            
+			// update the given renderer with (possibly) new information so it can change its
+			// appearence or whatever.
+			var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer;
+
+            var data:Object = event.item;
+            (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
+            ir.data = data;				
+		}
+		
 	}
 }
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 13fa268..ef9b9b0 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
@@ -733,6 +733,7 @@ use namespace mx_internal;
 		public function ListBase()
 		{
 			super();            
+			rowHeight = 22; //match Flex?
 		}
         
         private var _DCinitialized:Boolean = true;


[royale-asjs] 10/13: Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

Posted by ah...@apache.org.
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

commit 9ac18ade9c32fb0474113cca7572347146258141
Merge: f1948e9 238dcd1
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 15:29:27 2020 -0800

    Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

 .../src/main/royale/CardPlayGround.mxml            | 73 +++++++++++++++++++++-
 .../html/beads/models/ArrayColorSelectionModel.as  |  2 +-
 .../projects/Jewel/src/main/resources/defaults.css | 31 +++++++--
 .../Jewel/src/main/resources/jewel-manifest.xml    |  3 +
 .../main/royale/org/apache/royale/jewel/Card.as    | 64 +++----------------
 .../main/royale/org/apache/royale/jewel/HGroup.as  | 19 ------
 .../main/royale/org/apache/royale/jewel/VGroup.as  | 19 ------
 .../beads/controls/tabbar/AssignTabContent.as      |  1 -
 .../royale/jewel/beads/layouts/HorizontalLayout.as | 11 ++--
 .../royale/jewel/beads/layouts/VerticalLayout.as   | 14 +++--
 .../royale/jewel/beads/views/DataGridView.as       | 10 +--
 .../DrawerFooter.as => card/CardActions.as}        | 19 +++---
 .../{drawer/DrawerFooter.as => card/CardHeader.as} | 19 +++---
 .../DrawerFooter.as => card/CardPrimaryContent.as} | 38 ++++++++---
 .../jewel/supportClasses/drawer/DrawerFooter.as    |  6 +-
 .../Jewel/src/main/sass/components/_button.sass    |  4 +-
 .../Jewel/src/main/sass/components/_card.sass      | 33 +++++++++-
 .../Jewel/src/main/sass/components/_datagrid.sass  |  2 +
 .../Jewel/src/main/sass/components/_layout.sass    |  2 +-
 .../JewelTheme/src/main/resources/defaults.css     | 31 +++++++--
 .../JewelTheme/src/main/sass/_variables.sass       |  4 +-
 .../src/main/sass/components-primary/_alert.sass   |  5 +-
 .../src/main/sass/components-primary/_card.sass    | 30 +++++++--
 23 files changed, 267 insertions(+), 173 deletions(-)



[royale-asjs] 11/13: refactor to propagate events so we don't have to send an event from the factory

Posted by ah...@apache.org.
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

commit daa2ee13ed04838f6e984601b08e4e3849fe1bd5
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 17:33:35 2020 -0800

    refactor to propagate events so we don't have to send an event from the factory
---
 .../TodoListSingleSelectionMouseController.as      | 59 ++++++++++++++++++++++
 .../sample/todo/renderers/TodoItemRenderer.mxml    | 12 +++--
 .../royale/sample/todo/views/TodoListView.mxml     | 24 +++++----
 3 files changed, 83 insertions(+), 12 deletions(-)

diff --git a/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/controllers/TodoListSingleSelectionMouseController.as b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/controllers/TodoListSingleSelectionMouseController.as
new file mode 100644
index 0000000..13ba83e
--- /dev/null
+++ b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/controllers/TodoListSingleSelectionMouseController.as
@@ -0,0 +1,59 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 sample.todo.controllers {
+	import org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController;
+	import org.apache.royale.core.IItemRenderer;
+	import org.apache.royale.events.Event;
+	import org.apache.royale.events.IEventDispatcher;
+	import org.apache.royale.events.ItemAddedEvent;
+	import org.apache.royale.events.ItemRemovedEvent;
+	import org.apache.royale.events.ItemClickedEvent;
+	import org.apache.royale.events.ItemRendererEvent;
+
+	public class TodoListSingleSelectionMouseController extends ListSingleSelectionMouseController {
+	
+		/**
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		override protected function handleItemAdded(event:ItemAddedEvent):void
+		{
+			super.handleItemAdded(event);
+			IEventDispatcher(event.item).addEventListener("checkChanged", propagateHandler);
+			IEventDispatcher(event.item).addEventListener("removeRequest", propagateHandler);
+		}
+		
+		/**
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		override protected function handleItemRemoved(event:ItemRemovedEvent):void
+		{
+			super.handleItemRemoved(event);
+			IEventDispatcher(event.item).removeEventListener("checkChanged", propagateHandler);
+			IEventDispatcher(event.item).removeEventListener("removeRequest", propagateHandler);
+		}
+		
+		protected function propagateHandler(event:ItemClickedEvent):void
+		{
+			var e:ItemRendererEvent = new ItemRendererEvent(event.type);
+			e.itemRenderer = event.target as IItemRenderer;
+            listView.host.dispatchEvent(e);
+		}
+		
+	}
+}
diff --git a/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/renderers/TodoItemRenderer.mxml b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/renderers/TodoItemRenderer.mxml
index 7c4817f..35a65c1 100644
--- a/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/renderers/TodoItemRenderer.mxml
+++ b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/renderers/TodoItemRenderer.mxml
@@ -25,7 +25,7 @@ limitations under the License.
 
 	<fx:Script>
 		<![CDATA[
-			import org.apache.royale.events.Event;
+			import org.apache.royale.events.ItemClickedEvent;
 			import org.apache.royale.events.MouseEvent;
 			import sample.todo.vo.ToDoVO;
 			
@@ -37,12 +37,18 @@ limitations under the License.
 			
 			private function checkBoxChange():void
 			{
-				dispatchEvent(new org.apache.royale.events.Event("checkChanged"));
+				var e:ItemClickedEvent = new org.apache.royale.events.ItemClickedEvent("checkChanged");
+				e.index = index;
+				e.data = data;
+				dispatchEvent(e);
 			}
 
 			private function removeClick():void
 			{
-				dispatchEvent(new org.apache.royale.events.Event("removeRequest"));
+				var e:ItemClickedEvent = new org.apache.royale.events.ItemClickedEvent("removeRequest");
+				e.index = index;
+				e.data = data;
+				dispatchEvent(e);
 			}
 		]]>
 	</fx:Script>
diff --git a/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/views/TodoListView.mxml b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/views/TodoListView.mxml
index 701b330..92ebab0 100644
--- a/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/views/TodoListView.mxml
+++ b/examples/royale/TodoListSampleApp/src/main/royale/sample/todo/views/TodoListView.mxml
@@ -21,7 +21,8 @@ limitations under the License.
                 xmlns:js="library://ns.apache.org/royale/basic"
                 xmlns:svg="library://ns.apache.org/royale/svg"
 				initComplete="setup()" 
-				xmlns:renderers="sample.todo.renderers.*">
+				xmlns:renderers="sample.todo.renderers.*"
+				xmlns:controllers="sample.todo.controllers.*">
 
     <fx:Style>
         @namespace basic "library://ns.apache.org/royale/basic";
@@ -48,6 +49,11 @@ limitations under the License.
         .StatusText {
         	flex-grow: 1;
         }
+
+        .todoList {
+            IBeadController: ClassReference("sample.todo.controllers.TodoListSingleSelectionMouseController");
+		}
+		
     </fx:Style>
     
     <fx:Script>
@@ -66,6 +72,8 @@ limitations under the License.
 				// showActive() change the model which results in this event being
 				// dispatched.
 				(applicationModel as TodoListModel).addEventListener("todoListChanged", updateStatus);
+				todoList.addEventListener("checkChanged",itemChecked);
+				todoList.addEventListener("removeRequest",itemRemove);
 				updateStatus(null);
 			}
 			
@@ -120,16 +128,14 @@ limitations under the License.
 			 */
 			private function handleRendererCreated(event:ItemRendererEvent):void {
 				var renderer:IEventDispatcher = event.itemRenderer as IEventDispatcher;
-				renderer.addEventListener("checkChanged",itemChecked);
-				renderer.addEventListener("removeRequest",itemRemove);
 			}
 			
 			/**
 			 * When an item is checked, form new event and dispatch to controller.
 			 */
-			private function itemChecked(event:Event):void
+			private function itemChecked(event:ItemRendererEvent):void
 			{
-				var renderer:TodoItemRenderer = event.target as TodoItemRenderer;
+				var renderer:TodoItemRenderer = event.itemRenderer as TodoItemRenderer;
 
 				var newEvent:TodoListEvent = new TodoListEvent(TodoListEvent.ITEM_CHECKED);
 				newEvent.item = renderer.data;
@@ -139,9 +145,9 @@ limitations under the License.
 			/**
 			 * When an item is removed, form a new event and dispatch to the controller.
 			 */
-			private function itemRemove(event:Event):void
+			private function itemRemove(event:ItemRendererEvent):void
 			{
-				var renderer:TodoItemRenderer = event.target as TodoItemRenderer;
+				var renderer:TodoItemRenderer = event.itemRenderer as TodoItemRenderer;
 
 				var newEvent:TodoListEvent = new TodoListEvent(TodoListEvent.ITEM_REMOVE_REQUEST);
 				newEvent.item = renderer.data;
@@ -165,12 +171,12 @@ limitations under the License.
             <js:TextButton text="Enter" click="logTodo()" width="15%" />
         </js:HContainer>
 
-        <js:List id="todoList"
+        <js:List id="todoList" className="todoList"
                     itemRenderer="sample.todo.renderers.TodoItemRenderer"
 					dataProvider="{TodoListModel(applicationModel).todos}"
                     width="100%" height="400">
 			<js:beads>
-				<js:DataItemRendererFactoryForArrayData itemRendererCreated="handleRendererCreated(event)" />
+				<js:DataItemRendererFactoryForArrayData />
 			</js:beads>
         </js:List>
 


[royale-asjs] 05/13: fix issues in tree node closing. Should fix #673

Posted by ah...@apache.org.
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

commit 17e8fdbc7f4a9ea9e77be296517aeee21d21b1fd
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Feb 18 16:17:03 2020 -0800

    fix issues in tree node closing.  Should fix #673
---
 .../DataItemRendererFactoryForCollectionView.as    |  1 +
 .../treeClasses/HierarchicalCollectionView.as      | 73 +++++++++++++++++-----
 2 files changed, 60 insertions(+), 14 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
index 1806ab6..b68f375 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
@@ -142,6 +142,7 @@ package org.apache.royale.html.beads
             var dataGroup:IItemRendererOwnerView = view.dataGroup;
             
 			var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer;
+			if (!ir) return; // may have already been cleaned up, possibly when a tree node closes
 			dataGroup.removeItemRenderer(ir);
 			
 			// adjust the itemRenderers' index to adjust for the shift
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/HierarchicalCollectionView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/HierarchicalCollectionView.as
index 455750b..71d6096 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/HierarchicalCollectionView.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/treeClasses/HierarchicalCollectionView.as
@@ -1130,31 +1130,32 @@ public class HierarchicalCollectionView extends EventDispatcher
         var uid:String = itemToUID(node);
         openNodes[uid] = 1;
         var index:int = getItemIndex(node);
-        dispatchAddOrRemoveEvents(node, index + 1, org.apache.royale.events.CollectionEvent.ITEM_ADDED);
+        dispatchAddEvents(node, index + 1, org.apache.royale.events.CollectionEvent.ITEM_ADDED);
+		var collectionEvent:org.apache.royale.events.CollectionEvent;
+        collectionEvent = new org.apache.royale.events.CollectionEvent(org.apache.royale.events.CollectionEvent.ITEM_UPDATED);
+        collectionEvent.item = node;
+        collectionEvent.index = index;
+		dispatchEvent(collectionEvent);
     }
     
-    private function dispatchAddOrRemoveEvents(node:Object, index:int, type:String):int
+    private function dispatchAddEvents(node:Object, index:int, type:String):int
     {
-        var adding:Boolean = (type == org.apache.royale.events.CollectionEvent.ITEM_ADDED);
         var children:ICollectionView = getChildren(node);
         var cursor:IViewCursor = children.createCursor();
+		var item:Object;
+		var collectionEvent:org.apache.royale.events.CollectionEvent;
         do
         {
-            var item:Object = cursor.current;
-            var collectionEvent:org.apache.royale.events.CollectionEvent = new org.apache.royale.events.CollectionEvent(type);
+            item = cursor.current;
+            collectionEvent = new org.apache.royale.events.CollectionEvent(type);
             collectionEvent.item = item;
             collectionEvent.index = index;
             dispatchEvent(collectionEvent);
-            if (adding)
-			{
-                currentLength++;
-				index++;
-			}
-            else
-                currentLength--;
+            currentLength++;
+			index++;
             if (isOpen(item))
             {
-                index = dispatchAddOrRemoveEvents(node, index, type);
+                index = dispatchAddEvents(item, index, type);
             }
    
         } while (cursor.moveNext());
@@ -1166,8 +1167,52 @@ public class HierarchicalCollectionView extends EventDispatcher
         var uid:String = itemToUID(node);
         delete openNodes[uid];        
         var index:int = getItemIndex(node);
-        dispatchAddOrRemoveEvents(node, index + 1, org.apache.royale.events.CollectionEvent.ITEM_REMOVED);
+        dispatchRemoveEvents(node, index + 1, org.apache.royale.events.CollectionEvent.ITEM_REMOVED);
+		var collectionEvent:org.apache.royale.events.CollectionEvent;
+        collectionEvent = new org.apache.royale.events.CollectionEvent(org.apache.royale.events.CollectionEvent.ITEM_UPDATED);
+        collectionEvent.item = node;
+        collectionEvent.index = index;
+		dispatchEvent(collectionEvent);
+    }
+
+    private function dispatchRemoveEvents(node:Object, index:int, type:String, eventQueue:Array = null):int
+    {
+        var children:ICollectionView = getChildren(node);
+        var cursor:IViewCursor = children.createCursor();
+		var item:Object;
+		var collectionEvent:org.apache.royale.events.CollectionEvent;
+		var topLevel:Boolean = (eventQueue == null);
+		if (!eventQueue) 
+			eventQueue = [];
+        do
+        {
+            item = cursor.current;
+            collectionEvent = new org.apache.royale.events.CollectionEvent(type);
+            collectionEvent.item = item;
+            collectionEvent.index = index;
+            eventQueue.push(collectionEvent);
+			index++;
+            if (isOpen(item))
+            {
+                index = dispatchRemoveEvents(item, index, type, eventQueue);
+            }
+   
+        } while (cursor.moveNext());
+
+		if (topLevel)
+		{
+			// dispatch events in reverse order
+			while (eventQueue.length)
+			{
+				collectionEvent = eventQueue.pop() as org.apache.royale.events.CollectionEvent;
+				dispatchEvent(collectionEvent);
+                currentLength--;
+			}
+		}
+
+        return index;
     }
+    
 }
 
 }


[royale-asjs] 13/13: Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

Posted by ah...@apache.org.
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

commit b632cd95d755db31639eaf7940448f7e6a769f04
Merge: 6763700 21ced85
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 17:34:21 2020 -0800

    Merge branch 'develop' of https://github.com/apache/royale-asjs into develop

 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../defaults.css                                   | 31 ++++++++++++++++++----
 .../src/main/resources/jewel-example-styles.css    |  2 +-
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 29 +++++++++++++++++---
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../src/main/resources/defaults.css                | 31 ++++++++++++++++++----
 .../JewelTheme/src/main/sass/_variables.sass       |  5 ----
 .../main/sass/components-primary/_application.sass |  5 ++++
 63 files changed, 1560 insertions(+), 300 deletions(-)


[royale-asjs] 09/13: ASDoc runs again

Posted by ah...@apache.org.
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

commit f1948e931d6303572f6ac29b9c854ff9c9c60e45
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Feb 19 12:58:45 2020 -0800

    ASDoc runs again
---
 .../ASDoc/src/main/royale/ASDocMainView.mxml       | 15 +++-
 ...gBackgroundColorHashAnchorStringItemRenderer.as | 32 ++++++-
 .../projects/Basic/src/main/royale/BasicClasses.as |  2 +-
 ...ingBackgroundColorSelectableItemRendererBead.as |  9 +-
 .../beads/ListOwnerViewItemRendererInitializer.as  | 97 ++++++++++++++++++++++
 5 files changed, 149 insertions(+), 6 deletions(-)

diff --git a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
index 64a20b3..9798c59 100644
--- a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
+++ b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml
@@ -247,6 +247,8 @@ limitations under the License.
         	margin-left: 20px;
         	margin-right: 20px;
         	border-style: solid;
+		IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer");
+		IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* AltBGRenderer installs its own selection bead*/
         }
         
         .HashAnchorAnchor {
@@ -310,11 +312,18 @@ limitations under the License.
             margin-bottom: 3px;
         }
         
+        .inheritanceList {
+		IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.IndexedItemRendererInitializer");
+		IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* no selection */
+		        }
+        
         .summaryList {
         	margin-bottom: 20px;
         	border-style: solid;
-        }
-        
+		IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer");
+		IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* AltBGRenderer installs its own selection bead*/
+		        }
+		
         .detailList {
         	margin-bottom: 20px;
         }
@@ -477,7 +486,7 @@ limitations under the License.
 		                <js:HorizontalLayout />
 		            </js:beads>
 		            <js:Label className="detailCaption" text="Inheritance" />
-		            <js:List className="detailInfo" id="inheritance" dataProvider="{ASDocModel(applicationModel).inheritance}"
+		            <js:List className="inheritanceList" id="inheritance" dataProvider="{ASDocModel(applicationModel).inheritance}"
 		            	itemRenderer="OptionalHashAnchorStringItemRenderer" labelField="label">
 		            	<js:beads>
 		            		<js:HorizontalLayout />
diff --git a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
index 5b2de9f..f54a180 100644
--- a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
+++ b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as
@@ -18,7 +18,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
+import  org.apache.royale.core.IOwnerViewItemRenderer;
+import  org.apache.royale.core.IItemRendererOwnerView;
 import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead;
+import org.apache.royale.events.Event;
 
 	/**
 	 *  The AlternatingBackgroundColorHashAnchorItemRenderer class displays data in string form using the data's toString()
@@ -30,7 +33,7 @@ import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRend
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.0
 	 */
-	public class AlternatingBackgroundColorHashAnchorStringItemRenderer extends HashAnchorStringItemRenderer
+	public class AlternatingBackgroundColorHashAnchorStringItemRenderer extends HashAnchorStringItemRenderer implements IOwnerViewItemRenderer
 	{
 		/**
 		 *  constructor.
@@ -44,6 +47,33 @@ import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRend
 		{
 			addBead(new AlternatingBackgroundColorSelectableItemRendererBead());
 		}
+		
+        [Bindable("dataChange")]
+		override public function set data(value:Object):void
+		{
+			super.data = value;
+			dispatchEvent(new Event("dataChange"));
+		}
+
+        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;
+        }
 
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index 2f89a5a..6cb3eb7 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -116,7 +116,7 @@ internal class BasicClasses
 	import org.apache.royale.html.beads.models.BinaryImageModel; BinaryImageModel;
 
 	import org.apache.royale.html.beads.ListView; ListView;
-    import org.apache.royale.html.beads.ListItemRendererInitializer; ListItemRendererInitializer;
+    import org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer; ListOwnerViewItemRendererInitializer;
     import org.apache.royale.html.beads.TreeItemRendererInitializer; TreeItemRendererInitializer;
 	
 	import org.apache.royale.html.beads.MultiSelectionListView; MultiSelectionListView;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as
index 73ffb88..d8f182f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as
@@ -24,6 +24,7 @@ package org.apache.royale.html.beads
 import org.apache.royale.utils.CSSUtils;
 import org.apache.royale.core.IIndexedItemRenderer;
 import org.apache.royale.core.IOwnerViewItemRenderer;
+import org.apache.royale.core.ItemRendererOwnerViewBead;
 import org.apache.royale.core.ISelectionModel;
 import org.apache.royale.core.ISelectableItemRenderer;
 import org.apache.royale.core.IStrand;
@@ -108,7 +109,13 @@ public class AlternatingBackgroundColorSelectableItemRendererBead extends Select
 	private function dataChangeHandler(event:Event):void
 	{
         var ir:IIndexedItemRenderer = _strand as IIndexedItemRenderer;
-        var owner:IStrandWithModel = (ir as IOwnerViewItemRenderer).itemRendererOwnerView.host as IStrandWithModel;
+        var owner:IStrandWithModel;
+		if (ir is IOwnerViewItemRenderer)
+			owner = (ir as IOwnerViewItemRenderer).itemRendererOwnerView.host as IStrandWithModel;
+		else
+		{
+			owner = (ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead).ownerView.host as IStrandWithModel;
+		}
 		var model:ISelectionModel = owner.model as ISelectionModel;
         if (model.selectedIndex == ir.index)
         {
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as
new file mode 100644
index 0000000..2188f2f
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as
@@ -0,0 +1,97 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.IOwnerViewItemRenderer;
+	import org.apache.royale.core.ItemRendererOwnerViewBead;
+	
+	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.IStrand;
+    import org.apache.royale.core.IStrandWithModelView;
+	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 ListOwnerViewItemRendererInitializer extends ListItemRendererInitializer
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
+		public function ListOwnerViewItemRendererInitializer()
+		{
+		}
+		
+        protected 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
+		{	
+			super.strand = value;
+            ownerView = (_strand as IStrandWithModelView).view as IItemRendererOwnerView;            
+		}
+		        
+        /**
+         *  @private
+         *  @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
+         */
+        override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
+        {
+            super.initializeIndexedItemRenderer(ir, data, index);
+			if (ownerView)
+			{
+				if (ir is IOwnerViewItemRenderer)
+	                (ir as IOwnerViewItemRenderer).itemRendererOwnerView = ownerView;
+				else
+				{
+					ir.addBead(new ItemRendererOwnerViewBead(ownerView));
+				}
+			}			
+        }
+
+	}
+}