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/16 01:10:29 UTC
[royale-asjs] 11/14: drop itemRendererOwner as a requirement for
IItemRenderer and get ListExample to work
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch has
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 6c5488b63223830b91472b772070e3dd9f5ac828
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Feb 7 23:16:39 2020 -0800
drop itemRendererOwner as a requirement for IItemRenderer and get ListExample to work
---
.../ListExample/src/main/royale/MyInitialView.mxml | 7 +-
.../main/royale/simple/IRFactoryForArrayData.as | 178 ---------------------
.../projects/Basic/src/main/resources/defaults.css | 40 ++++-
.../html/beads/DataItemRendererFactoryBase.as | 134 +---------------
.../beads/DataItemRendererFactoryForArrayList.as | 14 +-
.../DataItemRendererFactoryForCollectionView.as | 4 +-
.../DynamicAddItemRendererForArrayListData.as | 10 +-
.../DynamicItemsRendererFactoryForArrayListData.as | 16 +-
.../DynamicRemoveItemRendererForArrayListData.as | 98 ++----------
.../DynamicUpdateItemRendererForArrayListData.as | 107 ++-----------
...erFactoryBase.as => ItemRendererFactoryBase.as} | 38 +----
.../html/beads/ListItemRendererInitializer.as | 10 +-
.../org/apache/royale/html/beads/ListView.as | 77 ++++++---
.../beads/TextItemRendererFactoryForArrayData.as | 1 -
.../html/beads/TreeItemRendererInitializer.as | 4 +-
.../VirtualDataItemRendererFactoryForArrayData.as | 2 +-
.../apache/royale/html/beads/VirtualListView.as | 21 ++-
.../html/supportClasses/TextButtonItemRenderer.as | 125 ---------------
.../html/supportClasses/UIItemRendererBase.as | 11 --
.../charts/beads/ChartItemRendererFactory.as | 1 -
.../beads/DataItemRendererFactoryForSeriesData.as | 8 +-
.../layouts/LineChartCategoryVsLinearLayout.as | 1 -
.../beads/layouts/LineChartLinearVsLinearLayout.as | 1 -
.../org/apache/royale/collections/IArrayList.as | 2 +-
.../projects/Core/src/main/royale/CoreClasses.as | 2 +
.../royale/core/IIndexedItemRendererInitializer.as | 2 +-
.../royale/org/apache/royale/core/IItemRenderer.as | 13 --
.../apache/royale/core/IItemRendererInitializer.as | 2 +-
.../apache/royale/core/ItemRendererClassFactory.as | 2 +-
...Initializer.as => ItemRendererOwnerViewBead.as} | 34 ++--
.../core/SelectableItemRendererClassFactory.as | 88 ++++++++++
.../html/beads/SelectableItemRendererBeadBase.as | 5 +-
.../royale/html/beads/ButtonBarReorderBead.as | 4 +-
.../beads/DragDropListItemRendererInitializer.as} | 64 +++-----
.../html/beads/SingleSelectionDragSourceBead.as | 4 +-
.../html/beads/SingleSelectionDropTargetBead.as | 4 +-
...actoryForICollectionViewAdvancedDataGridData.as | 2 +-
...ataItemRendererFactoryForICollectionViewData.as | 2 +-
.../VirtualDataItemRendererFactoryForIListData.as | 2 +-
.../mdl/beads/TabsItemRendererInitializer.as | 7 +-
40 files changed, 337 insertions(+), 810 deletions(-)
diff --git a/examples/royale/ListExample/src/main/royale/MyInitialView.mxml b/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
index 3f035cb..4dd9480 100644
--- a/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
+++ b/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
@@ -32,9 +32,9 @@ limitations under the License.
IBeadView: ClassReference("simple.GenericListView");
IBeadModel: ClassReference("org.apache.royale.html.beads.models.SingleSelectionCollectionViewModel");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
- IDataProviderItemRendererMapper: ClassReference("simple.IRFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
@@ -116,6 +116,9 @@ limitations under the License.
<js:beads>
<js:ArrayListSelectionModel/>
<js:DataItemRendererFactoryForArrayList/>
+ <js:DynamicAddItemRendererForArrayListData/>
+ <js:DynamicRemoveItemRendererForArrayListData/>
+ <js:DynamicUpdateItemRendererForArrayListData/>
<js:ConstantBinding
sourceID="applicationModel"
sourcePropertyName="states"
diff --git a/examples/royale/ListExample/src/main/royale/simple/IRFactoryForArrayData.as b/examples/royale/ListExample/src/main/royale/simple/IRFactoryForArrayData.as
deleted file mode 100644
index f5418eb..0000000
--- a/examples/royale/ListExample/src/main/royale/simple/IRFactoryForArrayData.as
+++ /dev/null
@@ -1,178 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 simple
-{
- import org.apache.royale.core.IBead;
- import org.apache.royale.core.IDataProviderItemRendererMapper;
- import org.apache.royale.core.IItemRendererClassFactory;
- import org.apache.royale.core.IItemRendererParent;
- import org.apache.royale.core.IListPresentationModel;
- import org.apache.royale.core.ISelectableItemRenderer;
- import org.apache.royale.core.ISelectionModel;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.core.IUIBase;
- import org.apache.royale.core.SimpleCSSStyles;
- import org.apache.royale.core.UIBase;
- import org.apache.royale.core.ValuesManager;
- 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;
-
- [Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
-
- /**
- * The IRFactoryForArrayData 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.0
- */
- public class IRFactoryForArrayData extends EventDispatcher implements IBead, IDataProviderItemRendererMapper
- {
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public function IRFactoryForArrayData(target:Object=null)
- {
- super(target);
- }
-
- private var selectionModel:ISelectionModel;
-
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("beadsAdded",finishSetup);
- IEventDispatcher(value).addEventListener("initComplete",finishSetup);
- }
-
- private function finishSetup(event:Event):void
- {
- selectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
- var listView:IListView = _strand.getBeadByType(IListView) as IListView;
- dataGroup = listView.dataGroup;
- selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
-
- if (!itemRendererFactory)
- {
- _itemRendererFactory = new (ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory")) as IItemRendererClassFactory;
- _strand.addBead(_itemRendererFactory);
- }
-
- dataProviderChangeHandler(null);
- }
-
- private var _itemRendererFactory:IItemRendererClassFactory;
-
- /**
- * The org.apache.royale.core.IItemRendererClassFactory used
- * to generate instances of item renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public function get itemRendererFactory():IItemRendererClassFactory
- {
- 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.0
- */
- protected var dataGroup:IItemRendererParent;
-
- private function dataProviderChangeHandler(event:Event):void
- {
- var dp:Array = selectionModel.dataProvider as Array;
- if (!dp)
- return;
-
- dataGroup.removeAllItemRenderers();
-
- var listView:IListView = _strand.getBeadByType(IListView) as IListView;
- var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
-
- // This needs to be re-thought. There should be a better way to move the
- // properties from the component to the renderers. At least a new interface
- // should be created.
- var list:GenericList = _strand as GenericList;
-
- var n:int = dp.length;
- for (var i:int = 0; i < n; i++)
- {
- var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
- dataGroup.addItemRenderer(ir, false);
- ir.index = i;
- ir.labelField = list.labelField;
- if (presentationModel) {
- var style:SimpleCSSStyles = new SimpleCSSStyles();
- style.marginBottom = presentationModel.separatorThickness;
- UIBase(ir).style = style;
- UIBase(ir).height = presentationModel.rowHeight;
- UIBase(ir).percentWidth = 100;
- }
- ir.data = dp[i];
-
- var newEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED);
- newEvent.itemRenderer = ir;
- dispatchEvent(newEvent);
- }
-
- IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));
- }
- }
-}
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index ae835f4..13c5d50 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -55,6 +55,7 @@ ButtonBar
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.TextItemRendererFactoryForArrayData");
IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TextButtonItemRenderer");
border-style: none;
@@ -83,8 +84,10 @@ ComboBoxList
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.TextItemRendererFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
border-style: solid;
@@ -121,6 +124,7 @@ DataContainer
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
@@ -152,6 +156,7 @@ DataGridButtonBar
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.TextItemRendererFactoryForArrayData");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TextButtonItemRenderer");
@@ -167,8 +172,10 @@ DataGridColumnList {
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
border-style: none;
@@ -201,8 +208,10 @@ DynamicDataGridColumnList {
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
border-style: none;
@@ -232,8 +241,10 @@ DateFieldDateChooser {
DateChooserList {
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.DateItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
border-style: solid;
border-color: #000000;
border-width: 1px;
@@ -397,7 +408,9 @@ MultiSelectionList
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
IItemRendererClassFactory: ClassReference("org.apache.royale.html.beads.MultiSelectionItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
}
@@ -409,8 +422,10 @@ List
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
}
@@ -422,8 +437,10 @@ DynamicList
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
border-style: solid;
@@ -533,7 +550,9 @@ MultiSelectionTree
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForHierarchicalData");
IItemRendererClassFactory: ClassReference("org.apache.royale.html.beads.MultiSelectionItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.TreeItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TreeItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
}
@@ -545,8 +564,10 @@ Tree
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.TreeSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForHierarchicalData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.TreeItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TreeItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
border: 1px solid #222222;
@@ -612,8 +633,10 @@ SimpleList
IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.VerticalLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.TextItemRendererFactoryForArrayData");
- IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.StringItemRenderer");
+ ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
}
@@ -626,6 +649,7 @@ ColorPalette
IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.TileLayout");
IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData");
IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory");
+ IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer");
IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.ColorItemRenderer");
IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
index 047c022..e556606 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
@@ -22,11 +22,11 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IChild;
import org.apache.royale.core.IDataProviderItemRendererMapper;
import org.apache.royale.core.IDataProviderModel;
- import org.apache.royale.core.IItemRendererInitializer;
- import org.apache.royale.core.IIndexedItemRendererInitializer;
- import org.apache.royale.core.IItemRenderer;
- import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IIndexedItemRendererInitializer;
+ import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererClassFactory;
+ import org.apache.royale.core.IItemRendererInitializer;
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.ILayoutHost;
import org.apache.royale.core.IListPresentationModel;
@@ -57,7 +57,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public class DataItemRendererFactoryBase extends EventDispatcher implements IBead, IDataProviderItemRendererMapper
+ public class DataItemRendererFactoryBase extends ItemRendererFactoryBase implements IDataProviderItemRendererMapper
{
/**
* Constructor.
@@ -71,110 +71,7 @@ package org.apache.royale.html.beads
{
super(target);
}
-
- protected var dataProviderModel:IDataProviderModel;
- //protected var dataFieldProvider:DataFieldProviderBead;
-
- protected var _strand:IStrand;
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("initComplete", finishSetup);
- }
-
- /**
- * @private
- * @royaleignorecoercion org.apache.royale.core.IDataProviderModel
- * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory
- * @royaleignorecoercion org.apache.royale.html.beads.DataFieldProviderBead
- */
- protected function finishSetup(event:Event):void
- {
- dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
-
- /*
- 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.8
- * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory
- */
- 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;
- }
-
- private var _itemRendererInitializer:IItemRendererInitializer;
-
- /**
- * The org.apache.royale.core.IItemRendererInitializer used
- * to initialize instances of item renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- * @royaleignorecoercion org.apache.royale.core.IItemRendererInitializer
- */
- public function get itemRendererInitializer():IItemRendererInitializer
- {
- if(!_itemRendererInitializer)
- _itemRendererInitializer = loadBeadFromValuesManager(IItemRendererInitializer, "iItemRendererInitializer", _strand) as IItemRendererInitializer;
-
- return _itemRendererInitializer;
- }
-
- /**
- * @private
- */
- public function set itemRendererInitializer(value:IItemRendererInitializer):void
- {
- _itemRendererInitializer = value;
- }
-
+
/**
* This Factory deletes all renderers, and generates a renderer
* for every data provider item.
@@ -194,7 +91,7 @@ package org.apache.royale.html.beads
* @royaleignorecoercion org.apache.royale.html.supportClasses.DataItemRenderer
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
*/
- protected function dataProviderChangeHandler(event:Event):void
+ override protected function dataProviderChangeHandler(event:Event):void
{
var dp:Object = dataProviderModel.dataProvider;
if (!dp)
@@ -213,27 +110,12 @@ package org.apache.royale.html.beads
dataGroup.addItemRenderer(ir, false);
var data:Object = getItemAt(i);
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as IIndexedItemRenderer, data, dataGroup, i);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as IIndexedItemRenderer, data, i);
ir.data = data;
}
sendStrandEvent(_strand,"itemsCreated");
}
- protected function removeAllItemRenderers(dataGroup:IItemRendererOwnerView):void
- {
- dataGroup.removeAllItemRenderers();
- }
-
- protected function get dataProviderLength():int
- {
- return 0;
- }
-
- protected function getItemAt(i:int):Object
- {
- return null;
- }
-
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
index da74ec5..42a2632 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayList.as
@@ -68,6 +68,8 @@ package org.apache.royale.html.beads
super(target);
}
+ private var dp:IArrayList;
+
/**
* @private
* @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
@@ -75,11 +77,21 @@ package org.apache.royale.html.beads
*/
override protected function dataProviderChangeHandler(event:Event):void
{
- var dp:IArrayList = dataProviderModel.dataProvider as IArrayList;
+ dp = dataProviderModel.dataProvider as IArrayList;
if (!dp)
return;
super.dataProviderChangeHandler(event);
}
+
+ override protected function get dataProviderLength():int
+ {
+ return dp.length;
+ }
+
+ override protected function getItemAt(i:int):Object
+ {
+ return dp.getItemAt(i);
+ }
}
}
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 29d7d53..4e0d7b3 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
@@ -99,7 +99,7 @@ package org.apache.royale.html.beads
var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer() as IIndexedItemRenderer;
var data:Object = event.item;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, event.index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
ir.data = data;
// update the index values in the itemRenderers to correspond to their shifted positions.
@@ -179,7 +179,7 @@ package org.apache.royale.html.beads
var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer;
var data:Object = event.item;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, event.index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
ir.data = data;
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
index 8d5d1ad..3f5edcc 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicAddItemRendererForArrayListData.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html.beads
{
+ import org.apache.royale.collections.IArrayList;
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IIndexedItemRenderer;
@@ -46,7 +47,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- public class DynamicAddItemRendererForArrayListData extends DataItemRendererFactoryBase
+ public class DynamicAddItemRendererForArrayListData extends ItemRendererFactoryBase
{
/**
* Constructor
@@ -60,19 +61,20 @@ package org.apache.royale.html.beads
{
}
+ private var dp:IArrayList;
+
/**
* @private
* @royaleemitcoercion org.apache.royale.events.IEventDispatcher
*/
override protected function dataProviderChangeHandler(event:Event):void
{
- var dp:IEventDispatcher = dataProviderModel.dataProvider as IEventDispatcher;
+ dp = dataProviderModel.dataProvider as IArrayList;
if (!dp)
return;
// listen for individual items being added in the future.
dp.addEventListener(CollectionEvent.ITEM_ADDED, handleItemAdded);
- super.dataProviderChangeHandler(event);
}
/**
@@ -97,7 +99,7 @@ package org.apache.royale.html.beads
// update the index values in the itemRenderers to correspond to their shifted positions.
dataGroup.addItemRenderer(ir, false);
var data:Object = event.item;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, event.index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
ir.data = data;
// update the index values in the itemRenderers to correspond to their shifted positions.
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
index 4122876..c6bebbf 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as
@@ -59,6 +59,8 @@ package org.apache.royale.html.beads
super(target);
}
+ private var dp:IArrayList;
+
/**
* @private
* @royaleignorecoercion org.apache.royale.core.IListPresentationModel
@@ -66,7 +68,7 @@ package org.apache.royale.html.beads
*/
override protected function dataProviderChangeHandler(event:Event):void
{
- var dp:IArrayList = dataProviderModel.dataProvider as IArrayList;
+ dp = dataProviderModel.dataProvider as IArrayList;
if (!dp)
return;
@@ -93,7 +95,7 @@ package org.apache.royale.html.beads
var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer() as IIndexedItemRenderer;
dataGroup.addItemRenderer(ir, false);
var data:Object = event.item;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, event.index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
ir.data = data;
// update the index values in the itemRenderers to correspond to their shifted positions.
@@ -107,5 +109,15 @@ package org.apache.royale.html.beads
sendStrandEvent(_strand,"itemsCreated");
sendStrandEvent(_strand,"layoutNeeded");
}
+
+ override protected function get dataProviderLength():int
+ {
+ return dp.length;
+ }
+
+ override protected function getItemAt(i:int):Object
+ {
+ return dp.getItemAt(i);
+ }
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
index 5cce251..0ead9d1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as
@@ -20,8 +20,9 @@ package org.apache.royale.html.beads
{
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
- import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IItemRendererOwnerView;
+ import org.apache.royale.core.IParent;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IStrandWithModelView;
@@ -29,7 +30,6 @@ package org.apache.royale.html.beads
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.html.beads.IListView;
- import org.apache.royale.core.IParent;
/**
* Handles the removal of an itemRenderer once the corresponding datum has been removed
@@ -40,7 +40,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- public class DynamicRemoveItemRendererForArrayListData implements IBead
+ public class DynamicRemoveItemRendererForArrayListData extends ItemRendererFactoryBase
{
/**
* Constructor
@@ -54,49 +54,12 @@ package org.apache.royale.html.beads
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.royale.core.IStrand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("initComplete", initComplete);
- }
-
- /**
- * finish setup
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- * @royaleignorecoercion org.apache.royale.core.ISelectionModel
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- protected function initComplete(event:Event):void
- {
- IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
-
- _dataProviderModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
- dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
-
- // invoke now in case "dataProviderChanged" has already been dispatched.
- dataProviderChangeHandler(null);
- }
/**
* @private
* @royaleemitcoercion org.apache.royale.events.IEventDispatcher
*/
- protected function dataProviderChangeHandler(event:Event):void
+ override protected function dataProviderChangeHandler(event:Event):void
{
var dp:IEventDispatcher = dataProviderModel.dataProvider as IEventDispatcher;
if (!dp)
@@ -119,61 +82,20 @@ package org.apache.royale.html.beads
*/
protected function handleItemRemoved(event:CollectionEvent):void
{
- var parent:IParent = itemRendererOwnerView as IParent;
- var ir:IIndexedItemRenderer = parent.getElementAt(event.index) as IIndexedItemRenderer;
- itemRendererOwnerView.removeItemRenderer(ir);
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererOwnerView = view.dataGroup;
+ var ir:IIndexedItemRenderer = dataGroup.getItemRendererForIndex(event.index) as IIndexedItemRenderer;
+ dataGroup.removeItemRenderer(ir);
// adjust the itemRenderers' index to adjust for the shift
- var n:int = parent.numElements;
+ var n:int = dataGroup.numItemRenderers;
for (var i:int = event.index; i < n; i++)
{
- ir = parent.getElementAt(i) as IIndexedItemRenderer;
+ ir = dataGroup.getItemRendererForIndex(i) as IIndexedItemRenderer;
ir.index = i;
}
(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
}
-
- private var _dataProviderModel: IDataProviderModel;
-
- /**
- * The org.apache.royale.core.IDataProviderModel that contains the
- * data source.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- * @royaleignorecoercion org.apache.royale.core.IDataProviderModel
- */
- public function get dataProviderModel(): IDataProviderModel
- {
- if (_dataProviderModel == null && _strand != null) {
- _dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- }
- return _dataProviderModel;
- }
-
- private var _itemRendererOwnerView: IItemRendererOwnerView;
-
- /**
- * The org.apache.royale.core.IItemRendererOwnerView used
- * to generate instances of item renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
- * @royaleignorecoercion org.apache.royale.html.beads.IListView
- */
- public function get itemRendererOwnerView():IItemRendererOwnerView
- {
- if (_itemRendererOwnerView == null) {
- var view:IListView = (_strand as IStrandWithModelView).view as IListView;
- _itemRendererOwnerView = view.dataGroup;
- }
- return _itemRendererOwnerView;
- }
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
index aae14ff..b8b3bac 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicUpdateItemRendererForArrayListData.as
@@ -20,8 +20,9 @@ package org.apache.royale.html.beads
{
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
- import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IIndexedItemRendererInitializer;
+ import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IStrandWithModelView;
@@ -39,7 +40,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- public class DynamicUpdateItemRendererForArrayListData implements IBead
+ public class DynamicUpdateItemRendererForArrayListData extends ItemRendererFactoryBase
{
/**
* Constructor
@@ -52,57 +53,18 @@ package org.apache.royale.html.beads
public function DynamicUpdateItemRendererForArrayListData()
{
}
-
- protected var _strand:IStrand;
-
- protected var labelField:String;
-
- /**
- * @copy org.apache.royale.core.IStrand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("initComplete", initComplete);
- }
-
- /**
- * finish setup
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- protected function initComplete(event:Event):void
- {
- IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
-
- _dataProviderModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
- labelField = _dataProviderModel.labelField;
-
- dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
-
- // invoke now in case "dataProviderChanged" has already been dispatched.
- dataProviderChangeHandler(null);
- }
/**
* @private
*/
- protected function dataProviderChangeHandler(event:Event):void
+ override protected function dataProviderChangeHandler(event:Event):void
{
var dp:IEventDispatcher = dataProviderModel.dataProvider as IEventDispatcher;
if (!dp)
return;
// listen for individual items being added in the future.
- dp.addEventListener(CollectionEvent.ITEM_UPDATED, handleItemAdded);
+ dp.addEventListener(CollectionEvent.ITEM_UPDATED, handleItemUpdated);
}
/**
@@ -113,63 +75,18 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9.0
*/
- protected function handleItemAdded(event:CollectionEvent):void
+ protected function handleItemUpdated(event:CollectionEvent):void
{
- var ir:IIndexedItemRenderer = itemRendererOwnerView.getItemRendererForIndex(event.index) as IIndexedItemRenderer;
+ var view:IListView = (_strand as IStrandWithModelView).view as IListView;
+ var dataGroup:IItemRendererOwnerView = view.dataGroup;
+ var ir:IIndexedItemRenderer = dataGroup.getItemRendererForIndex(event.index) as IIndexedItemRenderer;
- setData(ir, event.item, event.index);
+ var data:Object = event.item;
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, event.index);
+ ir.data = data;
(_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded"));
}
- private var _dataProviderModel: IDataProviderModel;
-
- /**
- * The org.apache.royale.core.IDataProviderModel that contains the
- * data source.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- */
- public function get dataProviderModel(): IDataProviderModel
- {
- if (_dataProviderModel == null && _strand != null) {
- _dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- }
- return _dataProviderModel;
- }
-
- private var _itemRendererOwnerView: IItemRendererOwnerView;
-
- /**
- * The org.apache.royale.core.IItemRendererOwnerView used
- * to generate instances of item renderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.0
- * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView
- * @royaleignorecoercion org.apache.royale.html.beads.IListView
- */
- public function get itemRendererOwnerView():IItemRendererOwnerView
- {
- if (_itemRendererOwnerView == null) {
- var view:IListView = (_strand as IStrandWithModelView).view as IListView;
- _itemRendererOwnerView = view.dataGroup;
- }
- return _itemRendererOwnerView;
- }
-
- /**
- * @private
- */
- protected function setData(itemRenderer:IIndexedItemRenderer, data:Object, index:int):void
- {
- itemRenderer.index = index;
- itemRenderer.data = data;
- }
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
similarity index 85%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
copy to frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
index 047c022..ee4afd0 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ItemRendererFactoryBase.as
@@ -57,7 +57,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public class DataItemRendererFactoryBase extends EventDispatcher implements IBead, IDataProviderItemRendererMapper
+ public class ItemRendererFactoryBase extends EventDispatcher implements IBead
{
/**
* Constructor.
@@ -67,7 +67,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public function DataItemRendererFactoryBase(target:Object=null)
+ public function ItemRendererFactoryBase(target:Object=null)
{
super(target);
}
@@ -103,20 +103,12 @@ package org.apache.royale.html.beads
dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
- /*
- 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);
+
+ dataProviderChangeHandler(null);
}
private var _itemRendererFactory:IItemRendererClassFactory;
@@ -196,28 +188,6 @@ package org.apache.royale.html.beads
*/
protected function dataProviderChangeHandler(event:Event):void
{
- var dp:Object = dataProviderModel.dataProvider;
- if (!dp)
- return;
-
- var view:IListView = (_strand as IStrandWithModelView).view as IListView;
- var dataGroup:IItemRendererOwnerView = view.dataGroup;
-
- removeAllItemRenderers(dataGroup);
-
- var n:int = dataProviderLength;
- for (var i:int = 0; i < n; i++)
- {
- var ir:IItemRenderer = itemRendererFactory.createItemRenderer() as IItemRenderer;
- //var dataItemRenderer:DataItemRenderer = ir as DataItemRenderer;
-
- dataGroup.addItemRenderer(ir, false);
- var data:Object = getItemAt(i);
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as IIndexedItemRenderer, data, dataGroup, i);
- ir.data = data;
- }
-
- sendStrandEvent(_strand,"itemsCreated");
}
protected function removeAllItemRenderers(dataGroup:IItemRendererOwnerView):void
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 6b52366..409df36 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
@@ -28,6 +28,7 @@ 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.IStrandWithPresentationModel;
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
@@ -72,7 +73,7 @@ package org.apache.royale.html.beads
override public function set strand(value:IStrand):void
{
_strand = value;
- var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
+ presentationModel = (_strand as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
labelField = dataProviderModel.labelField;
}
@@ -82,11 +83,10 @@ package org.apache.royale.html.beads
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
* @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
*/
- public function initializeItemRenderer(ir:IItemRenderer, data:Object, ownerView:IItemRendererOwnerView):void
+ public function initializeItemRenderer(ir:IItemRenderer, data:Object):void
{
if (ir is ILabelFieldItemRenderer)
(ir as ILabelFieldItemRenderer).labelField = labelField;
- ir.itemRendererOwnerView = ownerView;
setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
}
@@ -95,10 +95,10 @@ package org.apache.royale.html.beads
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
*/
- public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void
+ public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
ir.index = index;
- initializeItemRenderer(ir, data, ownerView);
+ initializeItemRenderer(ir, data);
}
protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
index 257e666..fdbae01 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListView.as
@@ -84,12 +84,20 @@ package org.apache.royale.html.beads
*/
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 as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = listModel.selectedIndex;
}
@@ -103,12 +111,20 @@ package org.apache.royale.html.beads
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
+ var selectionBead:ISelectableItemRenderer;
var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = false;
+ if (ir)
+ {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = true;
+ if (ir) {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex;
}
}
@@ -156,12 +172,20 @@ package org.apache.royale.html.beads
*/
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 as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.selected = false;
+ }
+ ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IItemRenderer;
+ if (ir) {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
lastSelectedIndex = listModel.selectedIndex;
}
@@ -172,13 +196,20 @@ package org.apache.royale.html.beads
*/
protected function rollOverIndexChangeHandler(event:Event):void
{
- var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = false;
- ir = dataGroup.getItemRendererForIndex(IRollOverModel(listModel).rollOverIndex) as ISelectableItemRenderer;
- if(ir)
- ir.hovered = true;
-
+ var selectionBead:ISelectableItemRenderer;
+ var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer;
+ if (ir)
+ {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.hovered = false;
+ }
+ ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as ISelectableItemRenderer;
+ if (ir) {
+ selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.hovered = true;
+ }
lastRollOverIndex = IRollOverModel(listModel).rollOverIndex;
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
index e85e89f..c2af070 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as
@@ -157,7 +157,6 @@ package org.apache.royale.html.beads
{
var tf:ITextItemRenderer = itemRendererFactory.createItemRenderer() as ITextItemRenderer;
tf.index = i;
- tf.itemRendererOwnerView = dataGroup;
dataGroup.addItemRenderer(tf, false);
if (selectionModel.labelField) {
tf.labelField = selectionModel.labelField;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeItemRendererInitializer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeItemRendererInitializer.as
index 9cb81e0..4700f67 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeItemRendererInitializer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeItemRendererInitializer.as
@@ -60,12 +60,12 @@ package org.apache.royale.html.beads
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
*/
- override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void
+ override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
if (!dataProviderModel)
return;
- super.initializeItemRenderer(ir, data, ownerView, index);
+ super.initializeItemRenderer(ir, data, index);
var treeData:TreeData = dataProviderModel.dataProvider as TreeData;
var depth:int = treeData.getDepth(data);
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
index 07bfe2e..91a9057 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as
@@ -244,7 +244,7 @@ package org.apache.royale.html.beads
var dataGroup:IItemRendererOwnerView = view.dataGroup;
dataGroup.addItemRendererAt(ir, elementIndex);
var data:Object = getItemAt(index);
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as IIndexedItemRenderer, data, dataGroup, index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir as IIndexedItemRenderer, data, index);
rendererMap[index] = ir;
ir.data = data;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
index 615326a..a9165dd 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualListView.as
@@ -24,7 +24,8 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IDataProviderItemRendererMapper;
+ import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IParent;
@@ -39,6 +40,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.ValuesManager;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
+ import org.apache.royale.events.ItemRendererEvent;
import org.apache.royale.html.supportClasses.Border;
import org.apache.royale.html.supportClasses.DataGroup;
@@ -63,7 +65,7 @@ package org.apache.royale.html.beads
protected var listModel:ISelectionModel;
protected var lastSelectedIndex:int = -1;
-
+
/**
* @private
*/
@@ -72,10 +74,25 @@ package org.apache.royale.html.beads
listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
listModel.addEventListener("selectedIndexChanged", selectionChangeHandler);
listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler);
+ var mapper:IEventDispatcher = _strand.getBeadByType(IDataProviderItemRendererMapper) as IEventDispatcher;
+ mapper.addEventListener(ItemRendererEvent.CREATED, itemCreatedHandler);
super.handleInitComplete(event);
}
+ protected function itemCreatedHandler(event:ItemRendererEvent):void
+ {
+ var selectionBead:ISelectableItemRenderer;
+ var ir:IIndexedItemRenderer = event.itemRenderer as IIndexedItemRenderer;
+ if (ir.index == lastSelectedIndex)
+ {
+ selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer;
+ if (selectionBead)
+ selectionBead.selected = true;
+ }
+
+ }
+
protected var firstElementIndex:int = 1;
override public function getItemRendererForIndex(index:int):IItemRenderer
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextButtonItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextButtonItemRenderer.as
index e60600a..81df983 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextButtonItemRenderer.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextButtonItemRenderer.as
@@ -108,28 +108,6 @@ package org.apache.royale.html.supportClasses
* IItemRenderer, ISelectableItemRenderer
*/
- private var _itemRendererOwnerView:IItemRendererOwnerView;
-
- /**
- * The view of the parent component of the itemRenderer.
- * This is not always the container that directly parents the
- * itemRenderers. A List may have an internal DataGroup that
- * parents the itemRenderers,
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public function get itemRendererOwnerView():IItemRendererOwnerView
- {
- return _itemRendererOwnerView;
- }
- public function set itemRendererOwnerView(value:IItemRendererOwnerView):void
- {
- _itemRendererOwnerView = value;
- }
-
private var _labelField:String = null;
/**
@@ -191,108 +169,5 @@ package org.apache.royale.html.supportClasses
{
_index = value;
}
-
- private var _selectable:Boolean = true;
- /**
- * <code>true</code> if the item renderer is can be selected
- * false otherwise. Use to configure a renderer to be non
- * selectable.
- *
- * Defaults to true
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.3
- */
- public function get selectable():Boolean
- {
- return _selectable;
- }
-
- public function set selectable(value:Boolean):void
- {
- _selectable = value;
- }
-
- private var _hoverable:Boolean = true;
- /**
- * <code>true</code> if the item renderer is can be hovered
- * false otherwise. Use to configure a renderer to be non
- * hoverable.
- *
- * Defaults to true
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.9.3
- */
- public function get hoverable():Boolean
- {
- return _hoverable;
- }
-
- public function set hoverable(value:Boolean):void
- {
- _hoverable = value;
- }
-
- private var _hovered:Boolean;
-
- /**
- * Whether or not the itemRenderer is in a hovered state.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- public function get hovered():Boolean
- {
- return _hovered;
- }
- public function set hovered(value:Boolean):void
- {
- _hovered = value;
- }
-
- private var _selected:Boolean;
-
- /**
- * Whether or not the itemRenderer is in a selected state.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- public function get selected():Boolean
- {
- return _selected;
- }
- public function set selected(value:Boolean):void
- {
- _selected = value;
- }
-
- private var _down:Boolean;
-
- /**
- * Whether or not the itemRenderer is in a down (or pre-selected) state.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.8
- */
- public function get down():Boolean
- {
- return _down;
- }
- public function set down(value:Boolean):void
- {
- _down = value;
- }
}
}
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
index f01473f..e7defb7 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/UIItemRendererBase.as
@@ -94,17 +94,6 @@ package org.apache.royale.html.supportClasses
public function set itemRendererOwnerView(value:IItemRendererOwnerView):void
{
_itemRendererOwnerView = value;
- if (!getBeadByType(ISelectableItemRenderer))
- {
- // load ISelectableItemRenderer impl from the
- // owner, not the item renderer so that item
- // renderers aren't strongly coupled to a
- // particular selection visual and the list
- // can dictate the selection visual
- var c:Class = ValuesManager.valuesImpl.getValue(value.host, "iSelectableItemRenderer");
- if (c)
- addBead(new c() as IBead);
- }
}
/**
diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartItemRendererFactory.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartItemRendererFactory.as
index c6b030e..b507b94 100644
--- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartItemRendererFactory.as
+++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartItemRendererFactory.as
@@ -126,7 +126,6 @@ package org.apache.royale.charts.beads
{
var s:IChartSeries = series[i] as IChartSeries;
var k:IChartItemRenderer = s.itemRenderer.newInstance() as IChartItemRenderer;
- k.itemRendererOwnerView = dataGroup;
k.xField = s.xField;
k.yField = s.yField;
//k.fillColor = s.fillColor;
diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
index 6f833a3..5772920 100644
--- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
+++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/DataItemRendererFactoryForSeriesData.as
@@ -124,7 +124,6 @@ import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.UIBase;
import org.apache.royale.charts.core.IChartItemRenderer;
import org.apache.royale.core.Bead;
-import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IIndexedItemRendererInitializer;
@@ -179,19 +178,18 @@ class ChartItemRendererInitializer extends Bead implements IIndexedItemRendererI
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
*/
- public function initializeItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView):void
+ public function initializeItemRenderer(ir:IIndexedItemRenderer, data:Object):void
{
- ir.itemRendererOwnerView = ownerView;
}
/**
* @private
* @royaleignorecoercion org.apache.royale.core.IChartItemRenderer
*/
- public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void
+ public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
(ir as IChartItemRenderer).series = owner.chartSeries;
ir.index = index;
- initializeItemRenderer(ir, data, ownerView);
+ initializeItemRenderer(ir, data);
}
}
\ No newline at end of file
diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
index 824fbd6..3327483 100644
--- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
+++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -144,7 +144,6 @@ package org.apache.royale.charts.beads.layouts
{
var renderer:ILineSegmentItemRenderer = lcs.lineSegmentRenderer.newInstance() as ILineSegmentItemRenderer;
chartDataGroup.addItemRenderer(renderer, true);
- renderer.itemRendererOwnerView = chartDataGroup;
renderer.data = lcs;
renderer.points = seriesPoints[s].points;
}
diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
index eb26888..c96d4fd 100644
--- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
+++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -158,7 +158,6 @@ package org.apache.royale.charts.beads.layouts
{
var renderer:ILineSegmentItemRenderer = lcs.lineSegmentRenderer.newInstance() as ILineSegmentItemRenderer;
chartDataGroup.addItemRenderer(renderer, true);
- renderer.itemRendererOwnerView = chartDataGroup;
renderer.data = lcs;
renderer.points = seriesPoints[s].points;
}
diff --git a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/IArrayList.as b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/IArrayList.as
index 454d27f..53949d5 100644
--- a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/IArrayList.as
+++ b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/IArrayList.as
@@ -48,7 +48,7 @@ package org.apache.royale.collections
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public interface IArrayList
+ public interface IArrayList extends IEventDispatcher
{
/**
* The array of raw data needing conversion.
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 617b78d..7249311 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -75,6 +75,7 @@ internal class CoreClasses
}
import org.apache.royale.core.IBinaryImageLoader; IBinaryImageLoader;
import org.apache.royale.core.ItemRendererClassFactory; ItemRendererClassFactory;
+ import org.apache.royale.core.SelectableItemRendererClassFactory; SelectableItemRendererClassFactory;
import org.apache.royale.core.IChangePropagator; IChangePropagator;
import org.apache.royale.core.IAlertModel; IAlertModel;
import org.apache.royale.core.IBead; IBead;
@@ -266,6 +267,7 @@ internal class CoreClasses
import org.apache.royale.core.IDataGridPresentationModel; IDataGridPresentationModel;
import org.apache.royale.core.IDateChooserModel; IDateChooserModel;
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 --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as
index 0de54f3..655d662 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as
@@ -48,6 +48,6 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- function initializeIndexedItemRenderer(renderer:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void;
+ function initializeIndexedItemRenderer(renderer:IIndexedItemRenderer, data:Object, index:int):void;
}
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRenderer.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRenderer.as
index a7c8086..94ea36d 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRenderer.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRenderer.as
@@ -42,18 +42,5 @@ package org.apache.royale.core
function get data():Object;
function set data(value:Object):void;
- /**
- * The view that controls where the item renderers are actually
- * parented. This is usually the view of outer component, and not always
- * the container that parents
- * all of the itemRenderers.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- function get itemRendererOwnerView():IItemRendererOwnerView;
- function set itemRendererOwnerView(value:IItemRendererOwnerView):void;
}
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererInitializer.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererInitializer.as
index 0c056d9..7d0c3c6 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererInitializer.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IItemRendererInitializer.as
@@ -51,6 +51,6 @@ package org.apache.royale.core
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- function initializeItemRenderer(renderer:IItemRenderer, data:Object, ownerView:IItemRendererOwnerView):void;
+ function initializeItemRenderer(renderer:IItemRenderer, data:Object):void;
}
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
index edfbd85..315fb92 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererClassFactory.as
@@ -55,7 +55,7 @@ package org.apache.royale.core
super();
}
- private var _strand:IStrand;
+ protected var _strand:IStrand;
/**
* @copy org.apache.royale.core.IBead#strand
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererOwnerViewBead.as
similarity index 60%
copy from frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as
copy to frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererOwnerViewBead.as
index 0de54f3..d21c6bd 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IIndexedItemRendererInitializer.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ItemRendererOwnerViewBead.as
@@ -18,36 +18,36 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.core
{
+ import org.apache.royale.core.IBead;
import org.apache.royale.core.IItemRendererOwnerView;
-
+ import org.apache.royale.core.IStrand;
+
/**
- * The IItemRendererInitializer interface is the basic interface for beads
- * that initialize properties on an IItemRenderer. Simple implementations
- * only assign the data and itemRendererOwnerView property, but others will
- * assign other properties if needed.
+ * The ItemRendererOwnerViewBead stores a reference
+ * to the IItemRendererOwnerView for an IItemRenderer
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public interface IIndexedItemRendererInitializer extends IItemRendererInitializer
+ public class ItemRendererOwnerViewBead extends Bead
{
/**
- * This method is called to generate another instance of an item renderer.
- *
- * @param renderer The renderer
- * @param data The data for the renderer
- * @param ownerView the view of the component that owns the renderers
- * @param index the index in the list of renderers
- *
- * @see org.apache.royale.core.IItemRenderer
- *
+ * Constructor.
+ *
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- function initializeIndexedItemRenderer(renderer:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void;
- }
+ public function ItemRendererOwnerViewBead(ownerView:IItemRendererOwnerView)
+ {
+ super();
+ this.ownerView = ownerView;
+ }
+
+ public var ownerView:IItemRendererOwnerView;
+
+ }
}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as
new file mode 100644
index 0000000..3488448
--- /dev/null
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.core
+{
+
+ import org.apache.royale.core.ClassFactory;
+ import org.apache.royale.core.IFactory;
+ import org.apache.royale.core.IItemRendererProvider;
+
+ import org.apache.royale.utils.MXMLDataInterpreter;
+
+ [DefaultProperty("mxmlContent")]
+
+ /**
+ * The SelectableItemRendererClassFactory class extends the default
+ * ItemRendererClassFactory and adds an ISelectableItemRenderer Bead to
+ * each renderer instance. That allows renderers to be used
+ * in lists with or without selection.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public class SelectableItemRendererClassFactory extends ItemRendererClassFactory
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public function SelectableItemRendererClassFactory()
+ {
+ super();
+ }
+
+ /**
+ * @copy org.apache.royale.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ * @royaleignorecoercion Class
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+ selectableBeadClass = ValuesManager.valuesImpl.getValue(value, "iSelectableItemRenderer") as Class;
+ }
+
+ private var selectableBeadClass:Class;
+
+ /**
+ * @copy org.apache.royale.core.IItemRendererClassFactory#createItemRenderer()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ override public function createItemRenderer():IItemRenderer
+ {
+ var ir:IItemRenderer = super.createItemRenderer();
+ ir.addBead(new selectableBeadClass());
+ return ir;
+ }
+ }
+}
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as
index 2ccbf7d..c718835 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as
@@ -19,8 +19,9 @@
package org.apache.royale.html.beads
{
import org.apache.royale.core.IBead;
- import org.apache.royale.core.IUIBase;
+ import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IUIBase;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
@@ -32,7 +33,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public class SelectableItemRendererBeadBase implements IBead
+ public class SelectableItemRendererBeadBase implements IBead, ISelectableItemRenderer
{
/**
* constructor.
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
index d526d01..a8d1528 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
@@ -25,6 +25,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IDragInitiator;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererOwnerView;
+ import org.apache.royale.core.ItemRendererOwnerViewBead;
import org.apache.royale.core.UIBase;
import org.apache.royale.core.IParent;
import org.apache.royale.core.ILayoutHost;
@@ -255,7 +256,8 @@ package org.apache.royale.html.beads
var ir:IItemRenderer = startHere as IItemRenderer;
trace("-- dropping onto an existing object: "+ir.data.toString());
- itemRendererOwnerView = (ir.itemRendererOwnerView as ILayoutHost).contentView as IParent;
+ var ownerViewBead:ItemRendererOwnerViewBead = ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead;
+ itemRendererOwnerView = (ownerViewBead.ownerView as ILayoutHost).contentView as IParent;
targetIndex = itemRendererOwnerView.getElementIndex(ir);
}
else {
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
similarity index 50%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
copy to frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
index 6b52366..d118cb1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListItemRendererInitializer.as
@@ -18,30 +18,29 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.html.beads
{
- import org.apache.royale.core.IItemRendererOwnerView;
-
import org.apache.royale.core.Bead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IIndexedItemRendererInitializer;
import org.apache.royale.core.IItemRenderer;
- import org.apache.royale.core.ILabelFieldItemRenderer;
- import org.apache.royale.core.IListPresentationModel;
+ import org.apache.royale.core.IItemRendererOwnerView;
+ 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.SimpleCSSStyles;
+ import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
/**
- * The ListItemRendererInitializer class initializes item renderers
- * in list classes.
+ * The DragDropListItemRendererInitializer class initializes item renderers
+ * with a reference to the owning List.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public class ListItemRendererInitializer extends Bead implements IIndexedItemRendererInitializer
+ public class DragDropListItemRendererInitializer extends ListItemRendererInitializer
{
/**
* constructor.
@@ -51,14 +50,10 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
- public function ListItemRendererInitializer()
+ public function DragDropListItemRendererInitializer()
{
}
-
- protected var presentationModel:IListPresentationModel;
- protected var dataProviderModel:IDataProviderModel;
- protected var labelField:String;
-
+
/**
* @copy org.apache.royale.core.IBead#strand
*
@@ -66,49 +61,26 @@ package org.apache.royale.html.beads
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
- * @royaleignorecoercion HTMLInputElement
- * @royaleignorecoercion org.apache.royale.core.UIBase;
+ * @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
+ * @royaleignorecoercion org.apache.royale.core.IUIBase
*/
override public function set strand(value:IStrand):void
{
- _strand = value;
- var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
- dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
- labelField = dataProviderModel.labelField;
+ super.strand = value;
+ ownerView = (value as IUIBase).view as IItemRendererOwnerView;
}
+ private var ownerView:IItemRendererOwnerView;
+
/**
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
* @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
*/
- public function initializeItemRenderer(ir:IItemRenderer, data:Object, ownerView:IItemRendererOwnerView):void
+ override public function initializeItemRenderer(ir:IItemRenderer, data:Object):void
{
- if (ir is ILabelFieldItemRenderer)
- (ir as ILabelFieldItemRenderer).labelField = labelField;
- ir.itemRendererOwnerView = ownerView;
-
- setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
+ super.initializeItemRenderer(ir, data);
+ ir.addBead(new ItemRendererOwnerViewBead(ownerView));
}
-
- /**
- * @private
- * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
- */
- public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void
- {
- ir.index = index;
- initializeItemRenderer(ir, data, ownerView);
- }
-
- protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
- {
- var style:SimpleCSSStyles = new SimpleCSSStyles();
- style.marginBottom = presentationModel.separatorThickness;
- UIBase(ir).style = style;
- UIBase(ir).height = presentationModel.rowHeight;
- UIBase(ir).percentWidth = 100;
- }
-
}
}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
index 05efebb..a939466 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
@@ -24,6 +24,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IDragInitiator;
import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.ItemRendererOwnerViewBead;
import org.apache.royale.core.ILayoutHost;
import org.apache.royale.core.IParent;
import org.apache.royale.core.ISelectionModel;
@@ -189,7 +190,8 @@ package org.apache.royale.html.beads
var itemRenderer:IItemRenderer = getParentOrSelfByType(relatedObject as IChild, IItemRenderer) as IItemRenderer;
if (itemRenderer) {
- var p:IParent = (itemRenderer.itemRendererOwnerView as ILayoutHost).contentView as IParent;
+ var ownerViewBead:ItemRendererOwnerViewBead = itemRenderer.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead;
+ var p:IParent = (ownerViewBead.ownerView as ILayoutHost).contentView as IParent;
_dragSourceIndex = p.getElementIndex(itemRenderer as IChild);
DragEvent.dragSource = (itemRenderer as IItemRenderer).data;
}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
index bbec4de..07664c6 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
@@ -25,6 +25,7 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IChild;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IItemRenderer;
+ import org.apache.royale.core.ItemRendererOwnerViewBead;
import org.apache.royale.core.IParent;
import org.apache.royale.core.ILayoutHost;
import org.apache.royale.core.ISelectionModel;
@@ -326,7 +327,8 @@ package org.apache.royale.html.beads
var ir:IItemRenderer = startHere as IItemRenderer;
//trace("-- dropping onto an existing object: "+ir.data.toString());
- contentViewAsParent = (ir.itemRendererOwnerView as ILayoutHost).contentView as IParent;
+ var ownerViewBead:ItemRendererOwnerViewBead = ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead;
+ contentViewAsParent = (ownerViewBead.ownerView as ILayoutHost).contentView as IParent;
targetIndex = contentViewAsParent.getElementIndex(ir);
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
index aac193f..9c9b8b0 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/DataItemRendererFactoryForICollectionViewAdvancedDataGridData.as
@@ -195,7 +195,7 @@ package mx.controls.advancedDataGridClasses
currentIndex = index;
var data:Object = cursor.current;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, index);
var newEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED);
newEvent.itemRenderer = ir;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForICollectionViewData.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForICollectionViewData.as
index 40c8a70..955ac77 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForICollectionViewData.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForICollectionViewData.as
@@ -159,7 +159,7 @@ package mx.controls.listClasses
var distance:int = index - currentIndex;
cursor.seek(CursorBookmark.CURRENT, distance);
currentIndex = index;
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, cursor.current, dataGroup, index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, cursor.current, index);
ir.data = cursor.current;
var newEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED);
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForIListData.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForIListData.as
index 02545d3..fc087b4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForIListData.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/VirtualDataItemRendererFactoryForIListData.as
@@ -147,7 +147,7 @@ package mx.controls.listClasses
dataGroup.addItemRendererAt(ir, elementIndex);
var data:Object = dp.getItemAt(index);
- (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, dataGroup, index);
+ (itemRendererInitializer as IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, index);
rendererMap[index] = ir;
var newEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED);
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 11ca4a8..2a45164 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
@@ -87,12 +87,11 @@ package org.apache.royale.mdl.beads
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
* @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
*/
- public function initializeItemRenderer(ir:IItemRenderer, data:Object, ownerView:IItemRendererOwnerView):void
+ public function initializeItemRenderer(ir:IItemRenderer, data:Object):void
{
if (ir is ILabelFieldItemRenderer)
(ir as ILabelFieldItemRenderer).labelField = labelField;
(ir as ITabItemRenderer).tabIdField = tabsIdField;
- ir.itemRendererOwnerView = ownerView;
setupVisualsForItemRenderer(ir as IIndexedItemRenderer);
}
@@ -101,10 +100,10 @@ package org.apache.royale.mdl.beads
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
*/
- public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, ownerView:IItemRendererOwnerView, index:int):void
+ public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
ir.index = index;
- initializeItemRenderer(ir, data, ownerView);
+ initializeItemRenderer(ir, data);
}
protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void