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 fb8b203e8a693853f64abb29571124cde1ee8518 Author: Alex Harui <[email protected]> AuthorDate: Mon Feb 3 17:06:18 2020 -0800 working towards a clean compile --- .../html/beads/DataItemRendererFactoryBase.as | 17 ++- .../beads/DataItemRendererFactoryForArrayData.as | 6 +- .../beads/DataItemRendererFactoryForArrayList.as | 2 +- .../DataItemRendererFactoryForCollectionView.as | 20 ++-- .../DataItemRendererFactoryForHierarchicalData.as | 4 +- .../DynamicAddItemRendererForArrayListData.as | 12 +- .../DynamicItemsRendererFactoryForArrayListData.as | 18 +-- .../DynamicRemoveItemRendererForArrayListData.as | 8 +- .../DynamicUpdateItemRendererForArrayListData.as | 6 +- .../apache/royale/html/beads/ITextItemRenderer.as | 7 +- .../MultiSelectionItemRendererClassFactory.as | 4 +- .../html/beads/SelectableItemRendererBeadBase.as | 6 +- .../SolidBackgroundSelectableItemRendererBead.as | 15 ++- .../TextItemRendererFactoryForStringVectorData.as | 2 +- .../VirtualDataItemRendererFactoryForArrayData.as | 14 ++- .../apache/royale/html/beads/VirtualListView.as | 53 +++++++-- .../controllers/ItemRendererMouseController.as | 57 +++++---- .../ListMultiSelectionMouseController.as | 25 ++-- .../ListSingleSelectionMouseController.as | 22 ++-- .../MultiSelectionItemRendererMouseController.as | 59 ++++++---- .../beads/layouts/VirtualListVerticalLayout.as | 8 +- .../html/supportClasses/AccordionItemRenderer.as | 91 +-------------- ...AlternatingBackgroundColorStringItemRenderer.as | 27 ++--- .../supportClasses/ButtonBarButtonItemRenderer.as | 2 - .../supportClasses/CascadingMenuItemRenderer.as | 2 - .../html/supportClasses/ColorItemRenderer.as | 51 +++----- .../royale/html/supportClasses/DataItemRenderer.as | 25 ---- .../html/supportClasses/GraphicsItemRenderer.as | 9 +- .../html/supportClasses/MenuBarItemRenderer.as | 2 - .../royale/html/supportClasses/MenuItemRenderer.as | 2 - .../html/supportClasses/StringItemRenderer.as | 1 - .../supportClasses/TreeGridControlItemRenderer.as | 2 +- .../html/supportClasses/UIItemRendererBase.as | 128 ++------------------- 33 files changed, 264 insertions(+), 443 deletions(-) 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 2cfc0b4..645af87 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 @@ -19,14 +19,17 @@ package org.apache.royale.html.beads { import org.apache.royale.core.IBead; + import org.apache.royale.core.IChild; import org.apache.royale.core.IDataProviderItemRendererMapper; + import org.apache.royale.core.IDataProviderModel; import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; + import org.apache.royale.core.ILayoutHost; import org.apache.royale.core.IListPresentationModel; + import org.apache.royale.core.IParentIUIBase; import org.apache.royale.core.ISelectableItemRenderer; - import org.apache.royale.core.IDataProviderModel; import org.apache.royale.core.IStrand; - import org.apache.royale.core.IStrandWithModelView; + import org.apache.royale.core.IStrandWithModelView; import org.apache.royale.core.IUIBase; import org.apache.royale.core.SimpleCSSStyles; import org.apache.royale.core.UIBase; @@ -35,12 +38,8 @@ package org.apache.royale.html.beads import org.apache.royale.events.EventDispatcher; import org.apache.royale.events.IEventDispatcher; import org.apache.royale.html.List; - - import org.apache.royale.html.beads.IListView; - import org.apache.royale.core.IChild; - import org.apache.royale.core.ILayoutHost; - import org.apache.royale.core.IParentIUIBase; - import org.apache.royale.html.supportClasses.DataItemRenderer; + import org.apache.royale.html.beads.IListView; + import org.apache.royale.html.supportClasses.DataItemRenderer; import org.apache.royale.utils.loadBeadFromValuesManager; import org.apache.royale.utils.sendEvent; import org.apache.royale.utils.sendStrandEvent; @@ -229,7 +228,7 @@ package org.apache.royale.html.beads return 0; } - override protected function getItemAt(i):Object + override protected function getItemAt(i:int):Object { return null; } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as index 2d8417d..4d61df3 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as @@ -27,7 +27,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.ILayoutHost; import org.apache.royale.core.IListPresentationModel; import org.apache.royale.core.IParentIUIBase; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; import org.apache.royale.core.IUIBase; @@ -57,7 +57,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public class DataItemRendererFactoryForArrayData extends EventDispatcher implements IBead, IDataProviderItemRendererMapper + public class DataItemRendererFactoryForArrayData extends DataItemRendererFactoryBase implements IBead, IDataProviderItemRendererMapper { /** * Constructor. @@ -96,7 +96,7 @@ package org.apache.royale.html.beads return dp.length; } - override protected function getItemAt(i):Object + override protected function getItemAt(i:int):Object { return dp[i]; } 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 4f64530..9e19958 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 @@ -24,7 +24,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IListPresentationModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IDataProviderModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; 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 92efa26..3d2882a 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 @@ -26,7 +26,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IListPresentationModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.SimpleCSSStyles; @@ -56,7 +56,7 @@ package org.apache.royale.html.beads * @private * @royaleignorecoercion org.apache.royale.collections.ICollectionView * @royaleignorecoercion org.apache.royale.core.IListPresentationModel - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.events.IEventDispatcher */ protected function dataProviderChangeHandler(event:Event):void @@ -80,7 +80,7 @@ package org.apache.royale.html.beads * @private * @royaleignorecoercion org.apache.royale.collections.ICollectionView * @royaleignorecoercion org.apache.royale.core.IListPresentationModel - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.events.IEventDispatcher */ protected function itemAddedHandler(event:CollectionEvent):void @@ -92,7 +92,7 @@ package org.apache.royale.html.beads return; var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel; - var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as IIndexedItemRenderer; labelField = dataProviderModel.labelField; fillRenderer(event.index, event.item, ir, presentationModel); @@ -101,7 +101,7 @@ package org.apache.royale.html.beads var n:int = dataGroup.numItemRenderers; for (var i:int = event.index; i < n; i++) { - ir = dataGroup.getItemRendererAt(i) as ISelectableItemRenderer; + ir = dataGroup.getItemRendererAt(i) as IIndexedItemRenderer; ir.index = i; // could let the IR know its index has been changed (eg, it might change its @@ -119,7 +119,7 @@ package org.apache.royale.html.beads * @private * @royaleignorecoercion org.apache.royale.collections.ICollectionView * @royaleignorecoercion org.apache.royale.core.IListPresentationModel - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.events.IEventDispatcher */ protected function itemRemovedHandler(event:CollectionEvent):void @@ -130,14 +130,14 @@ package org.apache.royale.html.beads if (!dp) return; - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(event.index) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer; dataGroup.removeItemRenderer(ir); // adjust the itemRenderers' index to adjust for the shift var n:int = dataGroup.numItemRenderers; for (var i:int = event.index; i < n; i++) { - ir = dataGroup.getItemRendererAt(i) as ISelectableItemRenderer; + ir = dataGroup.getItemRendererAt(i) as IIndexedItemRenderer; ir.index = i; // could let the IR know its index has been changed (eg, it might change its @@ -153,7 +153,7 @@ package org.apache.royale.html.beads /** * @private * @royaleignorecoercion org.apache.royale.collections.ICollectionView - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer */ protected function itemUpdatedHandler(event:CollectionEvent):void { @@ -165,7 +165,7 @@ package org.apache.royale.html.beads // update the given renderer with (possibly) new information so it can change its // appearence or whatever. - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(event.index) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = dataGroup.getItemRendererAt(event.index) as IIndexedItemRenderer; setData(ir, event.item, event.index); } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as index 1554964..152df3d 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForHierarchicalData.as @@ -28,7 +28,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IListPresentationModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.IUIBase; import org.apache.royale.core.SimpleCSSStyles; @@ -76,7 +76,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - override protected function setData(ir:ISelectableItemRenderer, data:Object, index:int):void + override protected function setData(ir:IIndexedItemRenderer, data:Object, index:int):void { if (!dataProviderModel) return; 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 41da133..16ab7bc 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 @@ -23,7 +23,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IListPresentationModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; @@ -124,13 +124,13 @@ package org.apache.royale.html.beads * @productversion Royale 0.9.0 * @royaleignorecoercion org.apache.royale.core.IListPresentationModel * @royaleignorecoercion org.apache.royale.core.IParent - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.events.IEventDispatcher */ protected function handleItemAdded(event:CollectionEvent):void { var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel; - var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(itemRendererOwnerView) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer(itemRendererOwnerView) as IIndexedItemRenderer; fillRenderer(event.index, event.item, ir, presentationModel); @@ -139,7 +139,7 @@ package org.apache.royale.html.beads var n:int = dataGroup.numElements; for (var i:int = event.index; i < n; i++) { - ir = dataGroup.getElementAt(i) as ISelectableItemRenderer; + ir = dataGroup.getElementAt(i) as IIndexedItemRenderer; ir.index = i; } @@ -214,7 +214,7 @@ package org.apache.royale.html.beads */ protected function fillRenderer(index:int, item:Object, - itemRenderer:ISelectableItemRenderer, + itemRenderer:IIndexedItemRenderer, presentationModel:IListPresentationModel):void { itemRendererOwnerView.addItemRendererAt(itemRenderer, index); @@ -235,7 +235,7 @@ package org.apache.royale.html.beads /** * @private */ - protected function setData(itemRenderer:ISelectableItemRenderer, data:Object, index:int):void + 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/DynamicItemsRendererFactoryForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as index 801247f..1602582 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 @@ -25,7 +25,7 @@ package org.apache.royale.html.beads import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IListPresentationModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.SimpleCSSStyles; @@ -45,7 +45,7 @@ package org.apache.royale.html.beads /** * The DynamicItemsRendererFactoryForArrayListData class reads an * array of data and creates an item renderer for every - * ISelectableItemRenderer in the array. + * IIndexedItemRenderer in the array. * * @langversion 3.0 * @playerversion Flash 10.2 @@ -156,7 +156,7 @@ package org.apache.royale.html.beads /** * @private * @royaleignorecoercion org.apache.royale.core.IListPresentationModel - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer */ protected function dataProviderChangeHandler(event:Event):void { @@ -174,7 +174,7 @@ package org.apache.royale.html.beads var n:int = dp.length; for (var i:int = 0; i < n; i++) { - var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as IIndexedItemRenderer; var item:Object = dp.getItemAt(i); fillRenderer(i, item, ir, presentationModel); } @@ -185,7 +185,7 @@ package org.apache.royale.html.beads /** * @private * @royaleignorecoercion org.apache.royale.core.IListPresentationModel - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer */ protected function itemAddedHandler(event:CollectionEvent):void { @@ -194,7 +194,7 @@ package org.apache.royale.html.beads return; var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel; - var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as IIndexedItemRenderer; fillRenderer(event.index, event.item, ir, presentationModel); @@ -202,7 +202,7 @@ package org.apache.royale.html.beads var n:int = dataGroup.numItemRenderers; for (var i:int = event.index; i < n; i++) { - ir = dataGroup.getItemRendererAt(i) as ISelectableItemRenderer; + ir = dataGroup.getItemRendererAt(i) as IIndexedItemRenderer; ir.index = i; } @@ -216,7 +216,7 @@ package org.apache.royale.html.beads */ protected function fillRenderer(index:int, item:Object, - itemRenderer:ISelectableItemRenderer, + itemRenderer:IIndexedItemRenderer, presentationModel:IListPresentationModel):void { dataGroup.addItemRendererAt(itemRenderer, index); @@ -237,7 +237,7 @@ package org.apache.royale.html.beads /** * @private */ - protected function setData(itemRenderer:ISelectableItemRenderer, data:Object, index:int):void + 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/DynamicRemoveItemRendererForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicRemoveItemRendererForArrayListData.as index 41d341a..5cce251 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 @@ -21,7 +21,7 @@ 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.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; @@ -114,20 +114,20 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.9.0 * @royaleignorecoercion org.apache.royale.core.IParent - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.events.IEventDispatcher */ protected function handleItemRemoved(event:CollectionEvent):void { var parent:IParent = itemRendererOwnerView as IParent; - var ir:ISelectableItemRenderer = parent.getElementAt(event.index) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = parent.getElementAt(event.index) as IIndexedItemRenderer; itemRendererOwnerView.removeItemRenderer(ir); // adjust the itemRenderers' index to adjust for the shift var n:int = parent.numElements; for (var i:int = event.index; i < n; i++) { - ir = parent.getElementAt(i) as ISelectableItemRenderer; + ir = parent.getElementAt(i) as IIndexedItemRenderer; ir.index = i; } 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 89defed..aae14ff 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 @@ -21,7 +21,7 @@ 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.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; @@ -115,7 +115,7 @@ package org.apache.royale.html.beads */ protected function handleItemAdded(event:CollectionEvent):void { - var ir:ISelectableItemRenderer = itemRendererOwnerView.getItemRendererForIndex(event.index) as ISelectableItemRenderer; + var ir:IIndexedItemRenderer = itemRendererOwnerView.getItemRendererForIndex(event.index) as IIndexedItemRenderer; setData(ir, event.item, event.index); @@ -166,7 +166,7 @@ package org.apache.royale.html.beads /** * @private */ - protected function setData(itemRenderer:ISelectableItemRenderer, data:Object, index:int):void + 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/ITextItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as index fa401e0..792cf7d 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ITextItemRenderer.as @@ -18,8 +18,9 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.beads { - import org.apache.royale.core.ISelectableItemRenderer; - + import org.apache.royale.core.IItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; + /** * The ITextItemRenderer interface is the interface for * for org.apache.royale.core.IItemRenderer that display text. @@ -29,7 +30,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public interface ITextItemRenderer extends ISelectableItemRenderer + public interface ITextItemRenderer extends IItemRenderer, ILabelFieldItemRenderer { /** * The text to be displayed in the item renderer. diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MultiSelectionItemRendererClassFactory.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MultiSelectionItemRendererClassFactory.as index 0a11815..d2a9eef 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MultiSelectionItemRendererClassFactory.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MultiSelectionItemRendererClassFactory.as @@ -49,9 +49,9 @@ package org.apache.royale.html.beads super(); } - override public function createFromClass(parent:IItemRendererOwnerView):IItemRenderer + override public function createFromClass():IItemRenderer { - var renderer:IItemRenderer = super.createFromClass(parent); + var renderer:IItemRenderer = super.createFromClass(); var strand:IStrand = renderer as IStrand; var bead:IBead = strand.getBeadByType(IBeadController); if (bead) diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as index fe68cc6..bc112ea 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SelectableItemRendererBeadBase.as @@ -31,7 +31,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public class SelectableItemRendererBead implements IBead + public class SelectableItemRendererBeadBase implements IBead { /** * constructor. @@ -41,11 +41,11 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public function SelectableItemRendererBead() + public function SelectableItemRendererBeadBase() { } - private var _strand:IStrand; + protected var _strand:IStrand; /** * @copy org.apache.royale.core.IBead#strand diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundSelectableItemRendererBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundSelectableItemRendererBead.as index f9b3719..f35746e 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundSelectableItemRendererBead.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SolidBackgroundSelectableItemRendererBead.as @@ -18,6 +18,10 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.beads { + COMPILE::SWF + { + import flash.display.Sprite; + } import org.apache.royale.core.IBead; import org.apache.royale.core.IUIBase; import org.apache.royale.core.IStrand; @@ -31,7 +35,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public class SolidBackgroundSelectableItemRendererBead extends SeletableItemRendererBeadBase + public class SolidBackgroundSelectableItemRendererBead extends SelectableItemRendererBeadBase { /** @@ -55,10 +59,11 @@ package org.apache.royale.html.beads { super.updateRenderer(); - graphics.clear(); - graphics.beginFill(useColor, (down||selected||hovered)?1:0); - graphics.drawRect(0, 0, width, height); - graphics.endFill(); + var host:Sprite = _strand as Sprite; + host.graphics.clear(); + host.graphics.beginFill(useColor, (down||selected||hovered)?1:0); + host.graphics.drawRect(0, 0, host.width, host.height); + host.graphics.endFill(); } COMPILE::JS { diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as index 48db9ca..3808ef3 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForStringVectorData.as @@ -148,7 +148,7 @@ package org.apache.royale.html.beads var n:int = dp.length; for (var i:int = 0; i < n; i++) { - var tf:ITextItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ITextItemRenderer; + var tf:ITextItemRenderer = itemRendererFactory.createItemRenderer() as ITextItemRenderer; tf.index = i; //TODO There is no itemsCreated event being dispatched once all the item renderers are added. // Not sure why, but that would require dispatching events as they are added. This should probably be fixed. 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 e42c8d0..f90e0b4 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 @@ -27,7 +27,8 @@ package org.apache.royale.html.beads import org.apache.royale.core.ILayoutHost; import org.apache.royale.core.IListPresentationModel; import org.apache.royale.core.IParentIUIBase; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModelView; import org.apache.royale.core.IUIBase; @@ -179,7 +180,7 @@ package org.apache.royale.html.beads */ public function freeItemRendererForIndex(index:int):void { - var ir:ISelectableItemRenderer = rendererMap[index]; + var ir:IIndexedItemRenderer = rendererMap[index]; var view:IListView = (_strand as IStrandWithModelView).view as IListView; var dataGroup:IItemRendererOwnerView = view.dataGroup; dataGroup.removeItemRenderer(ir); @@ -198,21 +199,22 @@ package org.apache.royale.html.beads * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView * @royaleignorecoercion org.apache.royale.html.beads.IListView */ - public function getItemRendererForIndex(index:int, elementIndex:int):ISelectableItemRenderer + public function getItemRendererForIndex(index:int, elementIndex:int):IIndexedItemRenderer { - var ir:ISelectableItemRenderer = rendererMap[index]; + var ir:IIndexedItemRenderer = rendererMap[index]; if (ir) return ir; var dp:Array = dataProviderModel.dataProvider as Array; - ir = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer; + ir = itemRendererFactory.createItemRenderer() as IIndexedItemRenderer; var dataItemRenderer:DataItemRenderer = ir as DataItemRenderer; var view:IListView = (_strand as IStrandWithModelView).view as IListView; var dataGroup:IItemRendererOwnerView = view.dataGroup; dataGroup.addItemRendererAt(ir, elementIndex); ir.index = index; - ir.labelField = labelField; + if (ir is ILabelFieldItemRenderer) + (ir as ILabelFieldItemRenderer).labelField = labelField; if (dataItemRenderer) { dataItemRenderer.dataField = dataField; 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 24eab68..615326a 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,6 +24,7 @@ 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.IItemRenderer; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IParent; @@ -82,7 +83,7 @@ package org.apache.royale.html.beads if (contentView.numElements == 0) return null; - var firstIndex:int = (contentView.getElementAt(firstElementIndex) as ISelectableItemRenderer).index; + var firstIndex:int = (contentView.getElementAt(firstElementIndex) as IIndexedItemRenderer).index; if (index < firstIndex) return null; @@ -94,16 +95,31 @@ package org.apache.royale.html.beads /** * @private - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer */ protected function selectionChangeHandler(event:Event):void { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastSelectedIndex) as ISelectableItemRenderer; + var selectionBead:ISelectableItemRenderer; + var ir:IIndexedItemRenderer = dataGroup.getItemRendererForIndex(lastSelectedIndex) as IIndexedItemRenderer; if(ir) - ir.selected = false; - ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as ISelectableItemRenderer; + { + if (ir is IStrand) + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = false; + } + } + ir = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IIndexedItemRenderer; if(ir) - ir.selected = true; + { + if (ir is IStrand) + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = true; + } + } lastSelectedIndex = listModel.selectedIndex; } @@ -112,17 +128,32 @@ package org.apache.royale.html.beads /** * @private - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ protected function rollOverIndexChangeHandler(event:Event):void { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as ISelectableItemRenderer; + var selectionBead:ISelectableItemRenderer; + var ir:IIndexedItemRenderer = dataGroup.getItemRendererForIndex(lastRollOverIndex) as IIndexedItemRenderer; if(ir) - ir.hovered = false; - ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as ISelectableItemRenderer; + { + if (ir is IStrand) + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.hovered = false; + } + } + ir = dataGroup.getItemRendererForIndex((listModel as IRollOverModel).rollOverIndex) as IIndexedItemRenderer; if(ir) - ir.hovered = true; + { + if (ir is IStrand) + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.hovered = true; + } + } lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex; } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as index 7fb3faf..62cc5f5 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ItemRendererMouseController.as @@ -19,7 +19,8 @@ package org.apache.royale.html.beads.controllers { import org.apache.royale.core.IBeadController; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IStrand; COMPILE::SWF { import org.apache.royale.events.Event; @@ -61,7 +62,7 @@ COMPILE::JS { { } - private var renderer:ISelectableItemRenderer; + private var renderer:IIndexedItemRenderer; private var _strand:IStrand; /** @@ -71,13 +72,13 @@ COMPILE::JS { * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.9 - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.UIBase */ public function set strand(value:IStrand):void { _strand = value; - renderer = value as ISelectableItemRenderer; + renderer = value as IIndexedItemRenderer; COMPILE::SWF { renderer.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); @@ -103,7 +104,7 @@ COMPILE::JS { COMPILE::SWF protected function rollOverHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOver",true)); @@ -111,12 +112,12 @@ COMPILE::JS { } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseOver(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOver",true)); } @@ -128,7 +129,7 @@ COMPILE::JS { COMPILE::SWF protected function rollOutHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOut",true)); @@ -136,12 +137,12 @@ COMPILE::JS { } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseOut(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOut",true)); @@ -154,11 +155,15 @@ COMPILE::JS { COMPILE::SWF protected function mouseDownHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - target.down = true; - + if (target is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.down = true; + } var newEvent:ItemClickedEvent = new ItemClickedEvent("itemMouseDown"); newEvent.data = target.data; newEvent.index = target.index; @@ -169,17 +174,23 @@ COMPILE::JS { /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseDown(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - target.down = true; - target.hovered = false; - + if (target is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + { + selectionBead.down = true; + selectionBead.hovered = false; + } + } var newEvent:ItemClickedEvent = new ItemClickedEvent("itemMouseDown"); newEvent.data = target.data; newEvent.index = target.index; @@ -194,7 +205,7 @@ COMPILE::JS { protected function mouseUpHandler(event:MouseEvent):void { event.stopImmediatePropagation(); - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked"); @@ -208,12 +219,12 @@ COMPILE::JS { /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseClick(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked"); @@ -226,12 +237,12 @@ COMPILE::JS { /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseUp(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:ItemClickedEvent = new ItemClickedEvent("itemMouseUp"); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as index 7ffbc1d..fef9e79 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListMultiSelectionMouseController.as @@ -19,19 +19,19 @@ package org.apache.royale.html.beads.controllers { import org.apache.royale.core.IBeadController; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IItemRendererOwnerView; + import org.apache.royale.core.IMultiSelectionModel; import org.apache.royale.core.IRollOverModel; import org.apache.royale.core.ISelectableItemRenderer; - import org.apache.royale.core.IMultiSelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.events.Event; import org.apache.royale.events.IEventDispatcher; import org.apache.royale.events.ItemAddedEvent; import org.apache.royale.events.ItemRemovedEvent; import org.apache.royale.events.MouseEvent; - import org.apache.royale.html.beads.IListView; - import org.apache.royale.events.MultiSelectionItemClickedEvent; + import org.apache.royale.html.beads.IListView; import org.apache.royale.utils.sendEvent; /** @@ -196,27 +196,34 @@ package org.apache.royale.html.beads.controllers } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ protected function rolloverHandler(event:Event):void { - var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var renderer:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (renderer) { IRollOverModel(listModel).rollOverIndex = renderer.index; } } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ protected function rolloutHandler(event:Event):void { - var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var renderer:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (renderer) { - renderer.hovered = false; - renderer.down = false; + if (renderer is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + { + selectionBead.hovered = false; + selectionBead.down = false; + } + } IRollOverModel(listModel).rollOverIndex = -1; } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as index 7674e13..69fb16b 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as @@ -22,7 +22,8 @@ package org.apache.royale.html.beads.controllers import org.apache.royale.core.IBeadController; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IRollOverModel; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; import org.apache.royale.events.Event; @@ -140,27 +141,34 @@ package org.apache.royale.html.beads.controllers } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ protected function rolloverHandler(event:Event):void { - var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var renderer:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (renderer) { IRollOverModel(listModel).rollOverIndex = renderer.index; } } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ protected function rolloutHandler(event:Event):void { - var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var renderer:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (renderer) { - renderer.hovered = false; - renderer.down = false; + if (renderer is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + { + selectionBead.hovered = false; + selectionBead.down = false; + } + } IRollOverModel(listModel).rollOverIndex = -1; } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as index 16491c3..a9f5588 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MultiSelectionItemRendererMouseController.as @@ -19,7 +19,8 @@ package org.apache.royale.html.beads.controllers { import org.apache.royale.core.IBeadController; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IStrand; COMPILE::SWF { import org.apache.royale.events.Event; @@ -62,7 +63,7 @@ package org.apache.royale.html.beads.controllers { } - private var renderer:ISelectableItemRenderer; + private var renderer:IIndexedItemRenderer; private var _strand:IStrand; /** @@ -72,13 +73,13 @@ package org.apache.royale.html.beads.controllers * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.9 - * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer * @royaleignorecoercion org.apache.royale.core.UIBase */ public function set strand(value:IStrand):void { _strand = value; - renderer = value as ISelectableItemRenderer; + renderer = value as IIndexedItemRenderer; COMPILE::SWF { renderer.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); @@ -104,7 +105,7 @@ package org.apache.royale.html.beads.controllers COMPILE::SWF protected function rollOverHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOver",true)); @@ -112,12 +113,12 @@ package org.apache.royale.html.beads.controllers } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseOver(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOver",true)); } @@ -129,7 +130,7 @@ package org.apache.royale.html.beads.controllers COMPILE::SWF protected function rollOutHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOut",true)); @@ -137,12 +138,12 @@ package org.apache.royale.html.beads.controllers } /** - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseOut(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { sendEvent(target,new Event("itemRollOut",true)); @@ -155,11 +156,17 @@ package org.apache.royale.html.beads.controllers COMPILE::SWF protected function mouseDownHandler(event:MouseEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - target.down = true; - + if (target is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + { + selectionBead.down = true; + } + } var newEvent:MultiSelectionItemClickedEvent = new MultiSelectionItemClickedEvent("itemMouseDown", true, true); newEvent.shiftKey = event.shiftKey; newEvent.ctrlKey = event.ctrlKey; @@ -173,17 +180,23 @@ package org.apache.royale.html.beads.controllers /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseDown(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - target.down = true; - target.hovered = false; - + if (target is IStrand) + { + var selectionBead:ISelectableItemRenderer = (renderer as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + { + selectionBead.down = true; + selectionBead.hovered = false; + } + } var newEvent:MultiSelectionItemClickedEvent = MultiSelectionItemClickedEvent.createMultiSelectionItemClickedEvent("itemMouseDown", event); newEvent.data = target.data; newEvent.index = target.index; @@ -199,7 +212,7 @@ package org.apache.royale.html.beads.controllers protected function mouseUpHandler(event:MouseEvent):void { event.stopImmediatePropagation(); - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:MultiSelectionItemClickedEvent = new MultiSelectionItemClickedEvent("itemClicked", true, true); @@ -214,12 +227,12 @@ package org.apache.royale.html.beads.controllers /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseClick(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:MultiSelectionItemClickedEvent = MultiSelectionItemClickedEvent.createMultiSelectionItemClickedEvent("itemClicked", event); @@ -232,12 +245,12 @@ package org.apache.royale.html.beads.controllers /** * @private - * @royaleemitcoercion org.apache.royale.core.ISelectableItemRenderer + * @royaleemitcoercion org.apache.royale.core.IIndexedItemRenderer */ COMPILE::JS protected function handleMouseUp(event:BrowserEvent):void { - var target:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer; + var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { var newEvent:MultiSelectionItemClickedEvent = MultiSelectionItemClickedEvent.createMultiSelectionItemClickedEvent("itemMouseUp", event); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as index c1c6784..1458040 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as @@ -30,7 +30,7 @@ package org.apache.royale.html.beads.layouts import org.apache.royale.core.IListPresentationModel; import org.apache.royale.core.IParentIUIBase; import org.apache.royale.core.IScrollingViewport; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithPresentationModel; import org.apache.royale.core.IUIBase; @@ -230,7 +230,7 @@ package org.apache.royale.html.beads.layouts { if (i >= dp.length) continue; // no more renderers needed - var ir:ISelectableItemRenderer; + var ir:IIndexedItemRenderer; if (i < firstIndex) { ir = factory.getItemRendererForIndex(i, i - startIndex); @@ -363,7 +363,7 @@ package org.apache.royale.html.beads.layouts { if (i >= dp.length) continue; // no more renderers needed - var ir:ISelectableItemRenderer; + var ir:IIndexedItemRenderer; if (i < firstIndex) { //trace("i < firstIndex: creating: i = " + i); @@ -407,7 +407,7 @@ package org.apache.royale.html.beads.layouts } COMPILE::SWF - protected function sizeAndPositionRenderer(ir:ISelectableItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void + protected function sizeAndPositionRenderer(ir:IIndexedItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void { var ilc:ILayoutChild; var positions:Object = childPositions(ir); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AccordionItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AccordionItemRenderer.as index 860ce35..b629eea 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AccordionItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AccordionItemRenderer.as @@ -19,7 +19,7 @@ package org.apache.royale.html.supportClasses { import org.apache.royale.core.IChild; - import org.apache.royale.core.ISelectableItemRenderer; + import org.apache.royale.core.IItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.ITitleBarModel; import org.apache.royale.events.Event; @@ -27,12 +27,9 @@ package org.apache.royale.html.supportClasses import org.apache.royale.html.TitleBar; import org.apache.royale.html.beads.PanelView; - public class AccordionItemRenderer extends Panel implements ISelectableItemRenderer, ICollapsible + public class AccordionItemRenderer extends Panel implements IItemRenderer, ICollapsible { private var _index:int; - private var _selected:Boolean; - private var _hovered:Boolean; - private var _down:Boolean; private var value:Object; public function AccordionItemRenderer() @@ -41,61 +38,6 @@ package org.apache.royale.html.supportClasses percentWidth = 100; } - 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; - } - - public function get selected():Boolean - { - return _selected; - } - - public function set selected(value:Boolean):void - { - _selected = value; - } public function get index():int { @@ -108,35 +50,6 @@ package org.apache.royale.html.supportClasses id = "item" + index; } - public function get labelField():String - { - return null; - } - - public function set labelField(value:String):void - { - } - - public function get hovered():Boolean - { - return _hovered; - } - - public function set hovered(value:Boolean):void - { - _hovered = value; - } - - public function get down():Boolean - { - return _down; - } - - public function set down(value:Boolean):void - { - _down = value; - } - public function get data():Object { return numElements > 0 ? getElementAt(0) : null; diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AlternatingBackgroundColorStringItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AlternatingBackgroundColorStringItemRenderer.as index 3e07154..725beb3 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AlternatingBackgroundColorStringItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/AlternatingBackgroundColorStringItemRenderer.as @@ -18,6 +18,8 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.supportClasses { + import org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead; + /** * The AlternatingBackgroundColorStringItemRenderer class displays data in string form using the data's toString() * function and alternates between two background colors. This is the most simple implementation for immutable lists @@ -40,7 +42,11 @@ package org.apache.royale.html.supportClasses */ public function AlternatingBackgroundColorStringItemRenderer() { - } + backgroundBead = new SolidBackgroundSelectableItemRendererBead(); + addBead(backgroundBead); + } + + private var backgroundBead:SolidBackgroundSelectableItemRendererBead; private var _color0:String; @@ -72,24 +78,7 @@ package org.apache.royale.html.supportClasses var index:int = parent.getElementIndex(this); oddIndex = ((index % 2) == 1) - COMPILE::JS - { - element.style.backgroundColor = oddIndex ? _color1 : _color0; - } - } - - /** - * @private - */ - override public function updateRenderer():void - { - super.updateRenderer(); - COMPILE::JS - { - if (element.style.backgroundColor == null || element.style.backgroundColor == "") - element.style.backgroundColor = oddIndex ? _color1 : _color0; - } + backgroundBead.backgroundColor = oddIndex ? _color1 : _color0; } - } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ButtonBarButtonItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ButtonBarButtonItemRenderer.as index 487e5f6..e8563fb 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ButtonBarButtonItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ButtonBarButtonItemRenderer.as @@ -157,8 +157,6 @@ package org.apache.royale.html.supportClasses { textButton.width = this.width; textButton.height = this.height; - - updateRenderer(); } } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as index 501e240..84fb313 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/CascadingMenuItemRenderer.as @@ -169,8 +169,6 @@ package org.apache.royale.html.supportClasses separator.height = 1; separator.draw(); } - - updateRenderer(); } } } \ No newline at end of file diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as index cb9f9df..547ad8b 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as @@ -18,6 +18,7 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.supportClasses { + import org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead; import org.apache.royale.utils.CSSUtils; /** @@ -43,7 +44,12 @@ package org.apache.royale.html.supportClasses super(); typeNames = 'ColorItemRenderer'; + + backgroundBead = new SolidBackgroundSelectableItemRendererBead(); + addBead(backgroundBead); } + + private var backgroundBead:SolidBackgroundSelectableItemRendererBead; /** * Sets the data value and uses the String version of the data for display. @@ -60,38 +66,19 @@ package org.apache.royale.html.supportClasses override public function set data(value:Object):void { super.data = value; - updateRenderer(); - } - - /** - * @private - */ - override public function updateRenderer():void - { - COMPILE::SWF - { - super.updateRenderer(); - - graphics.clear(); - graphics.beginFill(useColor, (down||selected||hovered)?1:0); - graphics.drawRect(0, 0, width, height); - graphics.endFill(); - } - COMPILE::JS - { - var color:uint; - if (!isNaN(data)) - { - color = uint(data); - } else if (dataField) - { - color = uint(data[dataField]); - } else - { - color = 0x000000; - } - element.style.backgroundColor = CSSUtils.attributeFromColor(color); - } + + var color:uint; + if (!isNaN(uint(data))) + { + color = uint(data); + } else if (dataField) + { + color = uint(data[dataField]); + } else + { + color = 0x000000; + } + backgroundBead.backgroundColor = color; } } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataItemRenderer.as index 6cbd183..074512b 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/DataItemRenderer.as @@ -119,31 +119,6 @@ package org.apache.royale.html.supportClasses protected var controller:IBeadController; /** - * @private - */ - override public function updateRenderer():void - { - COMPILE::SWF - { - super.updateRenderer(); - - graphics.clear(); - graphics.beginFill(useColor, (down||selected||hovered)?1:0); - graphics.drawRect(0, 0, width, height); - graphics.endFill(); - } - COMPILE::JS - { - if (selected) - element.style.backgroundColor = '#9C9C9C'; - else if (hovered) - element.style.backgroundColor = '#ECECEC'; - else - element.style.backgroundColor = 'transparent'; - } - } - - /** * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement * */ diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/GraphicsItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/GraphicsItemRenderer.as index 7eb3b80..9b2e0e1 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/GraphicsItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/GraphicsItemRenderer.as @@ -20,9 +20,10 @@ package org.apache.royale.html.supportClasses { import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.ValuesManager; - import org.apache.royale.svg.CompoundGraphic; import org.apache.royale.events.Event; - import org.apache.royale.utils.MXMLDataInterpreter; + import org.apache.royale.svg.CompoundGraphic; + import org.apache.royale.utils.loadBeadFromValuesManager; + import org.apache.royale.utils.MXMLDataInterpreter; /** * The GraphicsItemRenderer provides a base class for itemRenderers that use graphics rather than @@ -33,7 +34,7 @@ package org.apache.royale.html.supportClasses * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class GraphicsItemRenderer extends CompoundGraphic implements ISelectableItemRenderer + public class GraphicsItemRenderer extends CompoundGraphic { /** * Constructor. @@ -61,6 +62,8 @@ package org.apache.royale.html.supportClasses // each MXML file can also have styles in fx:Style block ValuesManager.valuesImpl.init(this); + + loadBeadFromValuesManager(ISelectableItemRenderer, "iSelectableItemRenderer", this); MXMLDataInterpreter.generateMXMLProperties(this, mxmlProperties); MXMLDataInterpreter.generateMXMLInstances(this, this, MXMLDescriptor); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuBarItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuBarItemRenderer.as index fd8ed49..6623b50 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuBarItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuBarItemRenderer.as @@ -81,8 +81,6 @@ package org.apache.royale.html.supportClasses var h:Number = height; var w:Number = width; - - updateRenderer(); } } } \ No newline at end of file diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuItemRenderer.as index c57b991..455fbf8 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/MenuItemRenderer.as @@ -105,8 +105,6 @@ package org.apache.royale.html.supportClasses label.x = 0; label.y = cy - label.height/2; - - updateRenderer(); } } } \ No newline at end of file diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/StringItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/StringItemRenderer.as index 4c1a3a0..69f8969 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/StringItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/StringItemRenderer.as @@ -98,7 +98,6 @@ package org.apache.royale.html.supportClasses textField.y = cy - textField.height/2; textField.width = width; - updateRenderer(); } /** diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as index 8dbcd3e..b88dacc 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TreeGridControlItemRenderer.as @@ -52,7 +52,7 @@ package org.apache.royale.html.supportClasses { _originalItemRenderer = value; - child = value.createItemRenderer(this) as UIBase; + child = value.createItemRenderer() as UIBase; (child as IItemRenderer).data = this.data; this.addElement(child); } 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 efba8df..53f20d7 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 @@ -23,7 +23,8 @@ package org.apache.royale.html.supportClasses import org.apache.royale.core.ValuesManager; import org.apache.royale.events.Event; import org.apache.royale.utils.MXMLDataInterpreter; - + import org.apache.royale.utils.loadBeadFromValuesManager; + [DefaultProperty("mxmlContent")] /** @@ -36,7 +37,7 @@ package org.apache.royale.html.supportClasses * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class UIItemRendererBase extends UIBase implements ISelectableItemRenderer + public class UIItemRendererBase extends UIBase { /** * constructor. @@ -68,6 +69,8 @@ package org.apache.royale.html.supportClasses // each MXML file can also have styles in fx:Style block ValuesManager.valuesImpl.init(this); + loadBeadFromValuesManager(ISelectableItemRenderer, "iSelectableItemRenderer", this); + dispatchEvent(new Event("initBindings")); dispatchEvent(new Event("initComplete")); @@ -121,49 +124,7 @@ package org.apache.royale.html.supportClasses { mxmlProperties = data; } - - private var _backgroundColor:uint = 0xFFFFFF; - public function get backgroundColor():uint - { - return _backgroundColor; - } - public function set backgroundColor(value:uint):void - { - _backgroundColor = value; - } - - private var _highlightColor:uint = 0xCEDBEF; - public function get highlightColor():uint - { - return _highlightColor; - } - public function set highlightColor(value:uint):void - { - _highlightColor = value; - } - - private var _selectedColor:uint = 0xA8C6EE; - public function get selectedColor():uint - { - return _selectedColor; - } - public function set selectedColor(value:uint):void - { - _selectedColor = value; - } - - private var _downColor:uint = 0x808080; - public function get downColor():uint - { - return _downColor; - } - public function set downColor(value:uint):void - { - _downColor = value; - } - - protected var useColor:uint = backgroundColor; - + private var _data:Object; [Bindable("__NoChangeEvent__")] @@ -240,82 +201,7 @@ package org.apache.royale.html.supportClasses { _index = 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.0 - */ - public function get hovered():Boolean - { - return _hovered; - } - public function set hovered(value:Boolean):void - { - _hovered = value; - updateRenderer(); - } - - 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.0 - */ - public function get selected():Boolean - { - return _selected; - } - public function set selected(value:Boolean):void - { - _selected = value; - updateRenderer(); - } - - 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.0 - */ - public function get down():Boolean - { - return _down; - } - public function set down(value:Boolean):void - { - _down = value; - updateRenderer(); - } - - /** - * @private - */ - public function updateRenderer():void - { - if (down) - useColor = downColor; - else if (hovered) - useColor = highlightColor; - else if (selected) - useColor = selectedColor; - else - useColor = backgroundColor; - } - + /** * @private */
