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 14f85e6d88ee92bbd042364e4e5909f397c5b7fd Author: Alex Harui <[email protected]> AuthorDate: Wed Feb 12 21:59:39 2020 -0800 Jewel and Charts seem to be working --- .../apache/royale/core/StyledMXMLItemRenderer.as | 3 +- .../html/beads/DataItemRendererFactoryBase.as | 9 +- .../Charts/src/main/resources/defaults.css | 10 +- .../Charts/src/main/royale/ChartsClasses.as | 1 + .../beads/ChartSelectableItemRendererBead.as | 22 +--- .../org/apache/royale/charts/beads/ChartView.as | 11 +- .../beads/DataItemRendererFactoryForSeriesData.as | 51 +++++++-- .../royale/charts/core/IChartItemRenderer.as | 13 +++ .../royale/charts/supportClasses/ChartDataGroup.as | 4 +- .../charts/supportClasses/ChartItemRenderer.as | 24 ++++- .../charts/supportClasses/WedgeItemRenderer.as | 2 + .../projects/Core/src/main/royale/CoreClasses.as | 1 + .../royale/org/apache/royale/core/BeadViewBase.as | 2 +- .../{BeadViewBase.as => IOwnerViewItemRenderer.as} | 39 +++---- ...electorListRuntimeSelectableItemRendererBead.as | 9 +- .../DataItemRendererFactoryForArrayData.as | 3 + .../DataItemRendererFactoryForCollectionView.as | 7 +- .../royale/jewel/beads/views/DropDownListView.as | 22 ++-- .../apache/royale/jewel/beads/views/ListView.as | 114 +++++++++++++-------- .../apache/royale/jewel/beads/views/TabBarView.as | 4 +- .../apache/royale/jewel/beads/views/TableView.as | 18 +++- .../jewel/itemRenderers/ButtonBarItemRenderer.as | 3 +- .../CollapsibleNavigationSectionRenderer.as | 2 +- .../royale/jewel/itemRenderers/DateItemRenderer.as | 2 +- .../royale/jewel/itemRenderers/ListItemRenderer.as | 11 +- .../itemRenderers/NavigationLinkItemRenderer.as | 2 +- .../itemRenderers/TabBarButtonItemRenderer.as | 2 +- .../jewel/itemRenderers/TableItemRenderer.as | 29 ++++++ 28 files changed, 284 insertions(+), 136 deletions(-) diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as index 645d4e6..7b38413 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledMXMLItemRenderer.as @@ -19,6 +19,7 @@ package org.apache.royale.core { import org.apache.royale.core.IItemRendererOwnerView; + import org.apache.royale.core.IOwnerViewItemRenderer; import org.apache.royale.html.supportClasses.MXMLItemRenderer; import org.apache.royale.utils.ClassSelectorList; import org.apache.royale.utils.IClassSelectorListSupport; @@ -33,7 +34,7 @@ package org.apache.royale.core * @playerversion AIR 2.6 * @productversion Royale 0.9.3 */ - public class StyledMXMLItemRenderer extends MXMLItemRenderer implements IClassSelectorListSupport, IEmphasis + public class StyledMXMLItemRenderer extends MXMLItemRenderer implements IClassSelectorListSupport, IEmphasis, IOwnerViewItemRenderer { /** * constructor. 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 e556606..c2d2ca5 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 @@ -114,8 +114,13 @@ package org.apache.royale.html.beads ir.data = data; } - sendStrandEvent(_strand,"itemsCreated"); + dispatchItemCreatedEvent(); } - + + protected function dispatchItemCreatedEvent():void + { + sendStrandEvent(_strand,"itemsCreated"); + } + } } diff --git a/frameworks/projects/Charts/src/main/resources/defaults.css b/frameworks/projects/Charts/src/main/resources/defaults.css index ce0a854..b068ab5 100644 --- a/frameworks/projects/Charts/src/main/resources/defaults.css +++ b/frameworks/projects/Charts/src/main/resources/defaults.css @@ -28,6 +28,7 @@ BarChart IContentView: ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData"); IItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); IHorizontalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IVerticalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport"); @@ -38,11 +39,6 @@ BoxItemRenderer IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ItemRendererMouseController"); } -ChartItemRenderer -{ - ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); -} - WedgeItemRenderer { IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ItemRendererMouseController"); @@ -57,6 +53,7 @@ ColumnChart IContentView: ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData"); IItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); IHorizontalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IVerticalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport"); @@ -71,6 +68,7 @@ LineChart IContentView: ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData"); IItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); IConnectedItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.LineSegmentItemRenderer"); IHorizontalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IVerticalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); @@ -98,6 +96,7 @@ StackedColumnChart IContentView: ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData"); IItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); IHorizontalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IVerticalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport"); @@ -112,6 +111,7 @@ StackedBarChart IContentView: ClassReference("org.apache.royale.charts.supportClasses.ChartDataGroup"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData"); IItemRenderer: ClassReference("org.apache.royale.charts.supportClasses.BoxItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.charts.beads.ChartSelectableItemRendererBead"); IHorizontalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IVerticalAxisGroup: ClassReference("org.apache.royale.charts.supportClasses.ChartAxisGroup"); IViewport: ClassReference("org.apache.royale.html.supportClasses.Viewport"); diff --git a/frameworks/projects/Charts/src/main/royale/ChartsClasses.as b/frameworks/projects/Charts/src/main/royale/ChartsClasses.as index bd189e8..a265a8b 100644 --- a/frameworks/projects/Charts/src/main/royale/ChartsClasses.as +++ b/frameworks/projects/Charts/src/main/royale/ChartsClasses.as @@ -45,6 +45,7 @@ internal class ChartsClasses import org.apache.royale.charts.supportClasses.ChartDataGroup; ChartDataGroup; import org.apache.royale.charts.beads.ChartView; ChartView; + import org.apache.royale.charts.beads.ChartSelectableItemRendererBead; ChartSelectableItemRendererBead; import org.apache.royale.charts.beads.ChartItemRendererFactory; ChartItemRendererFactory; import org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData; DataItemRendererFactoryForSeriesData; import org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesArrayListData; DataItemRendererFactoryForSeriesArrayListData; diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as index 1c070c0..333b848 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartSelectableItemRendererBead.as @@ -48,27 +48,7 @@ package org.apache.royale.charts.beads public function ChartSelectableItemRendererBead() { } - - - 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; - } - public function get strand():IStrand - { - return _strand; - } - + private var _hovered:Boolean; /** diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as index 7bb081d..9ebec7c 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/beads/ChartView.as @@ -22,6 +22,7 @@ package org.apache.royale.charts.beads import org.apache.royale.core.IBeadView; import org.apache.royale.core.IBorderPaddingMarginValuesImpl; import org.apache.royale.core.IContainer; + import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.IStrand; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IUIBase; @@ -80,7 +81,15 @@ package org.apache.royale.charts.beads _strand = value; } - + + /** + * @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView + */ + override public function get dataGroup():IItemRendererOwnerView + { + return this.contentView as IItemRendererOwnerView; + } + /** * @private */ 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 5772920..5271ca0 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 @@ -24,16 +24,18 @@ package org.apache.royale.charts.beads import org.apache.royale.charts.core.IChartSeries; import org.apache.royale.core.IBead; import org.apache.royale.core.IDataProviderItemRendererMapper; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IItemRendererClassFactory; - import org.apache.royale.core.IItemRendererOwnerView; - import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; + import org.apache.royale.core.ItemRendererClassFactory; import org.apache.royale.events.Event; import org.apache.royale.events.IEventDispatcher; + import org.apache.royale.html.beads.DataItemRendererFactoryBase; import org.apache.royale.html.beads.IListView; - import org.apache.royale.html.beads.DataItemRendererFactoryBase; - + import org.apache.royale.utils.sendStrandEvent; + /** * The DataItemRendererFactoryForSeriesData creates the itemRenderers necessary for series-based * charts. @@ -67,11 +69,14 @@ package org.apache.royale.charts.beads override public function set strand(value:IStrand):void { super.strand = value; + value.addBead(factory); value.addBead(new ChartItemRendererInitializer(this)) } public var chartSeries:IChartSeries; + private var blockItemsCreatedEvent:Boolean; + /** * @private * @royaleignorecoercion org.apache.royale.core.ISelectionModel @@ -91,13 +96,27 @@ package org.apache.royale.charts.beads var listView:IListView = _strand.getBeadByType(IListView) as IListView; var dataGroup:IChartDataGroup = listView.dataGroup as IChartDataGroup; + blockItemsCreatedEvent = true; for (var s:int=0; s < series.length; s++) { var n:int = dp.length; chartSeries = series[s] as IChartSeries; if (chartSeries.itemRenderer) + { + if (itemRendererFactory is ItemRendererClassFactory) + (itemRendererFactory as ItemRendererClassFactory).itemRendererFactory = chartSeries.itemRenderer; super.dataProviderChangeHandler(event); + } } + blockItemsCreatedEvent = false; + sendStrandEvent(_strand,"itemsCreated"); + } + + override protected function dispatchItemCreatedEvent():void + { + if (blockItemsCreatedEvent) + return; + super.dispatchItemCreatedEvent(); } override protected function removeAllItemRenderers(parent:IItemRendererOwnerView):void @@ -109,7 +128,7 @@ package org.apache.royale.charts.beads override protected function get dataProviderLength():int { - return series.length; + return dp.length; } override protected function getItemAt(index:int):Object @@ -120,17 +139,19 @@ package org.apache.royale.charts.beads } import org.apache.royale.charts.beads.DataItemRendererFactoryForSeriesData; -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.IItemRenderer; +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.IItemRendererOwnerView; import org.apache.royale.core.IStrand; -import org.apache.royale.core.ItemRendererClassFactory; +import org.apache.royale.core.SelectableItemRendererClassFactory; +import org.apache.royale.core.UIBase; +import org.apache.royale.html.beads.IListView; -class ChartItemRendererClassFactory extends ItemRendererClassFactory +class ChartItemRendererClassFactory extends SelectableItemRendererClassFactory { private var owner:DataItemRendererFactoryForSeriesData; @@ -172,8 +193,13 @@ class ChartItemRendererInitializer extends Bead implements IIndexedItemRendererI override public function set strand(value:IStrand):void { _strand = value; + + var listView:IListView = _strand.getBeadByType(IListView) as IListView; + var ownerView:IItemRendererOwnerView = listView.dataGroup as IItemRendererOwnerView; } + private var ownerView:IItemRendererOwnerView; + /** * @private * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper @@ -188,7 +214,10 @@ class ChartItemRendererInitializer extends Bead implements IIndexedItemRendererI */ public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void { - (ir as IChartItemRenderer).series = owner.chartSeries; + var chartIR:IChartItemRenderer = ir as IChartItemRenderer; + chartIR.series = owner.chartSeries; + chartIR.itemRendererOwnerView = ownerView; + ir.index = index; initializeItemRenderer(ir, data); } diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as index 90ce57a..1e71656 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/core/IChartItemRenderer.as @@ -19,6 +19,7 @@ package org.apache.royale.charts.core { import org.apache.royale.core.IItemRenderer; + import org.apache.royale.core.IItemRendererOwnerView; /** * The IChartItemRenderer interface is the interface implemented by any @@ -133,5 +134,17 @@ package org.apache.royale.charts.core * @productversion Royale 0.0 */ function updateRenderer():void; + + /** + * Invoke this function to force the itemRenderer to redraw. + * + * @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/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as index 1d9317f..c901cbf 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartDataGroup.as @@ -114,7 +114,7 @@ package org.apache.royale.charts.supportClasses var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded"); newEvent.item = renderer; - (host as IEventDispatcher).dispatchEvent(newEvent); + (parent as IEventDispatcher).dispatchEvent(newEvent); } /** @@ -133,7 +133,7 @@ package org.apache.royale.charts.supportClasses var newEvent:ItemRemovedEvent = new ItemRemovedEvent("itemRemoved"); newEvent.item = renderer; - (host as IEventDispatcher).dispatchEvent(newEvent); + (parent as IEventDispatcher).dispatchEvent(newEvent); } /** diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as index 2f33417..47d503b 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/ChartItemRenderer.as @@ -21,6 +21,7 @@ package org.apache.royale.charts.supportClasses import org.apache.royale.charts.core.IChartItemRenderer; import org.apache.royale.charts.core.IChartSeries; import org.apache.royale.core.IBead; + import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.graphics.IFill; import org.apache.royale.graphics.IStroke; @@ -163,7 +164,28 @@ package org.apache.royale.charts.supportClasses super.height = value; updateRenderer(); } - + + private var _itemRendererOwnerView:IItemRendererOwnerView; + + /** + * The text of the renderer + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.4 + */ + public function get itemRendererOwnerView():IItemRendererOwnerView + { + return _itemRendererOwnerView; + } + + public function set itemRendererOwnerView(value:IItemRendererOwnerView):void + { + _itemRendererOwnerView = value; + } + + public function updateRenderer():void { diff --git a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as index 9a63ac7..88bcdd4 100644 --- a/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as +++ b/frameworks/projects/Charts/src/main/royale/org/apache/royale/charts/supportClasses/WedgeItemRenderer.as @@ -251,6 +251,8 @@ package org.apache.royale.charts.supportClasses { drawWedgeInternal(); + if (!filledPath) return; // too early + if (selectionBead.down || selectionBead.selected || selectionBead.hovered) { if (hoverFill == null) { if(fill is SolidColor) diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as index 7249311..7a7d3a1 100644 --- a/frameworks/projects/Core/src/main/royale/CoreClasses.as +++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as @@ -114,6 +114,7 @@ internal class CoreClasses import org.apache.royale.core.IIndexedItemRenderer; IIndexedItemRenderer; import org.apache.royale.core.IIndexedItemRendererInitializer; IIndexedItemRendererInitializer; import org.apache.royale.core.ILabelFieldItemRenderer; ILabelFieldItemRenderer; + import org.apache.royale.core.IOwnerViewItemRenderer; IOwnerViewItemRenderer; import org.apache.royale.core.ILayoutChild; ILayoutChild; import org.apache.royale.core.ILayoutHost; ILayoutHost; import org.apache.royale.core.ILayoutView; ILayoutView; diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as index ca92ad1..eb11c20 100644 --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as @@ -30,7 +30,7 @@ package org.apache.royale.core * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class BeadViewBase extends DispatcherBead + public class BeadViewBase extends DispatcherBead implements IBeadView { /** * Constructor. diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as similarity index 63% copy from frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as copy to frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as index ca92ad1..2921a0a 100644 --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/BeadViewBase.as +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IOwnerViewItemRenderer.as @@ -18,45 +18,30 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.core { - import org.apache.royale.core.IBeadView; - import org.apache.royale.core.IStrand; - import org.apache.royale.events.EventDispatcher; - + import org.apache.royale.events.IEventDispatcher; + /** - * The BeadViewBase class is the base class for most view beads. + * The IOwnerViewItemRenderer interface is the basic interface for item renderers + * that have an itemRendererOwnerView property that references the View of the component + * that eventually parents the item renderers. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class BeadViewBase extends DispatcherBead + public interface IOwnerViewItemRenderer extends IItemRenderer { /** - * Constructor. + * The reference to the IItemRendererOwnerView of the renderer * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion Royale 0.0 + * @productversion Royale 0.9.4 */ - public function BeadViewBase() - { - super(); - } - - /** - * The host component. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.0 - * @royaleignorecoercion org.apache.royale.core.IUIBase - */ - public function get host():IUIBase - { - return _strand as IUIBase; - } - } + function get itemRendererOwnerView():IItemRendererOwnerView; + function set itemRendererOwnerView(value:IItemRendererOwnerView):void; + + } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as index adc60f3..1329d9d 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as @@ -23,8 +23,9 @@ package org.apache.royale.jewel.beads.itemRenderers import flash.display.Sprite; } import org.apache.royale.core.IBead; - import org.apache.royale.core.IUIBase; + import org.apache.royale.core.IRuntimeSelectableItemRenderer; import org.apache.royale.core.IStrand; + import org.apache.royale.core.IUIBase; import org.apache.royale.html.beads.SelectableItemRendererBeadBase; import org.apache.royale.utils.ClassSelectorList; @@ -37,7 +38,7 @@ package org.apache.royale.jewel.beads.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public class ClassSelectorListRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase + public class ClassSelectorListRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase implements IRuntimeSelectableItemRenderer { /** @@ -55,7 +56,7 @@ package org.apache.royale.jewel.beads.itemRenderers protected var classSelectorList:ClassSelectorList; - private var _selectable:Boolean; + private var _selectable:Boolean = true; /** * <code>true</code> if the item renderer is can be selected @@ -80,7 +81,7 @@ package org.apache.royale.jewel.beads.itemRenderers } - private var _hoverable:Boolean; + private var _hoverable:Boolean = true; /** * <code>true</code> if the item renderer is can be hovered diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as index ed1015e..993d1b1 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForArrayData.as @@ -33,6 +33,7 @@ package org.apache.royale.jewel.beads.itemRenderers import org.apache.royale.events.ItemRendererEvent; import org.apache.royale.html.beads.IListView; import org.apache.royale.html.supportClasses.DataItemRenderer; + import org.apache.royale.core.IOwnerViewItemRenderer; import org.apache.royale.jewel.beads.itemRenderers.DataFieldProviderBead; import org.apache.royale.jewel.supportClasses.list.IListPresentationModel; import org.apache.royale.utils.loadBeadFromValuesManager; @@ -186,6 +187,8 @@ package org.apache.royale.jewel.beads.itemRenderers { dataItemRenderer.dataField = dataField; } + if (ir is IOwnerViewItemRenderer) + (ir as IOwnerViewItemRenderer).itemRendererOwnerView = dataGroup; if (presentationModel) { UIBase(ir).height = presentationModel.rowHeight; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as index 7a5a525..614c8e7 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/DataItemRendererFactoryForCollectionView.as @@ -23,16 +23,17 @@ package org.apache.royale.jewel.beads.itemRenderers import org.apache.royale.core.IBeadModel; import org.apache.royale.core.IDataProviderItemRendererMapper; import org.apache.royale.core.IDataProviderModel; + import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IItemRendererClassFactory; import org.apache.royale.core.IItemRendererOwnerView; - import org.apache.royale.core.IIndexedItemRenderer; - import org.apache.royale.core.ILabelFieldItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.UIBase; import org.apache.royale.events.Event; import org.apache.royale.events.EventDispatcher; import org.apache.royale.events.IEventDispatcher; import org.apache.royale.html.beads.IListView; + import org.apache.royale.core.IOwnerViewItemRenderer; import org.apache.royale.jewel.supportClasses.list.IListPresentationModel; import org.apache.royale.utils.loadBeadFromValuesManager; @@ -297,6 +298,8 @@ package org.apache.royale.jewel.beads.itemRenderers (itemRenderer as IAlignItemRenderer).align = presentationModel.align; } } + if (itemRenderer is IOwnerViewItemRenderer) + (itemRenderer as IOwnerViewItemRenderer).itemRendererOwnerView = dataGroup; setData(itemRenderer, item, index); dataGroup.addItemRendererAt(itemRenderer, index); diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as index 34d4e47..627d23e 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/DropDownListView.as @@ -22,6 +22,7 @@ package org.apache.royale.jewel.beads.views { import org.apache.royale.html.elements.Select; } + import org.apache.royale.core.IItemRenderer; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.IStrand; @@ -114,21 +115,30 @@ package org.apache.royale.jewel.beads.views */ protected function selectionChangeHandler(event:Event):void { - var ir:ISelectableItemRenderer; + var selectionBead:ISelectableItemRenderer; + var ir:IItemRenderer; if (lastSelectedIndex != -1) { - ir = dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer; + ir = dataGroup.getItemRendererAt(lastSelectedIndex) as IItemRenderer; } if(ir) - ir.selected = false; + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = false; + } var newIndex:int = model.selectedIndex; if (model is IDropDownListModel) { newIndex += IDropDownListModel(model).offset; } - ir = dataGroup.getItemRendererAt(newIndex) as ISelectableItemRenderer; - if(ir) - ir.selected = true; + ir = dataGroup.getItemRendererAt(newIndex) as IItemRenderer; + if(ir) + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = true; + } lastSelectedIndex = newIndex; } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as index 5f82e09..4cc2122 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as @@ -22,6 +22,7 @@ package org.apache.royale.jewel.beads.views { import org.apache.royale.events.IEventDispatcher; } + import org.apache.royale.core.IItemRenderer; import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.ILayoutView; import org.apache.royale.core.IRollOverModel; @@ -114,17 +115,25 @@ package org.apache.royale.jewel.beads.views * @private * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer */ - protected function selectionChangeHandler(event:Event):void - { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer; - if(ir) - ir.selected = false; - ir = dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer; - if(ir) - ir.selected = true; - - lastSelectedIndex = listModel.selectedIndex; - } + protected function selectionChangeHandler(event:Event):void + { + 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; + } protected var lastRollOverIndex:int = -1; @@ -133,16 +142,24 @@ package org.apache.royale.jewel.beads.views * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer * @royaleignorecoercion org.apache.royale.core.IRollOverModel */ - protected function rollOverIndexChangeHandler(event:Event):void - { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(lastRollOverIndex) as ISelectableItemRenderer; - if(ir) - ir.hovered = false; - ir = dataGroup.getItemRendererAt((listModel as IRollOverModel).rollOverIndex) as ISelectableItemRenderer; - if(ir) - ir.hovered = true; - lastRollOverIndex = (listModel as IRollOverModel).rollOverIndex; - } + protected function rollOverIndexChangeHandler(event:Event):void + { + 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 = (listModel as IRollOverModel).rollOverIndex; + } } COMPILE::SWF @@ -199,32 +216,47 @@ package org.apache.royale.jewel.beads.views /** * @private */ - protected function selectionChangeHandler(event:Event):void - { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer; - if (ir) - ir.selected = false; - ir = dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer; - if (ir) - ir.selected = true; + protected function selectionChangeHandler(event:Event):void + { + 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; - } + } protected var lastRollOverIndex:int = -1; /** * @private */ - protected function rollOverIndexChangeHandler(event:Event):void - { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(lastRollOverIndex) as ISelectableItemRenderer; - if(ir) - ir.hovered = false; - ir = dataGroup.getItemRendererAt(IRollOverModel(listModel).rollOverIndex) as ISelectableItemRenderer; - if(ir) - ir.hovered = true; - - lastRollOverIndex = IRollOverModel(listModel).rollOverIndex; - } + protected function rollOverIndexChangeHandler(event:Event):void + { + 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/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as index 702e343..91e94b3 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TabBarView.as @@ -68,6 +68,7 @@ package org.apache.royale.jewel.beads.views if(prev_ir) { selectionBead = prev_ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + selectionBead.selected = false; var lastRect:ClientRect = prev_ir.getBoundingBox; var currentRect:ClientRect = ir.getBoundingBox; var widthDiff:Number = lastRect.width / currentRect.width; @@ -75,7 +76,8 @@ package org.apache.royale.jewel.beads.views widthDiff = 1; var positionDiff:Number = lastRect.left - currentRect.left; - selectionBead.selected = false; + selectionBead = ir.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + selectionBead.selected = true; ir.animateIndicator(positionDiff, widthDiff, 300, 'ease-in-out'); } else { diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as index 3255256..c7a7cdb 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/TableView.as @@ -18,6 +18,7 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.jewel.beads.views { + import org.apache.royale.core.IItemRenderer; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IStrand; import org.apache.royale.core.IStrandWithModel; @@ -115,13 +116,22 @@ package org.apache.royale.jewel.beads.views */ override protected function selectionChangeHandler(event:Event):void { - var ir:ISelectableItemRenderer = dataGroup.getItemRendererAt(lastSelectedIndex) as ISelectableItemRenderer; + var selectionBead:ISelectableItemRenderer; + var ir:IItemRenderer = dataGroup.getItemRendererAt(lastSelectedIndex) as IItemRenderer; if (ir) - ir.selected = false; + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = false; + } - ir = dataGroup.getItemRendererAt(listModel.selectedIndex) as ISelectableItemRenderer; + ir = dataGroup.getItemRendererAt(listModel.selectedIndex) as IItemRenderer; if (ir) - ir.selected = true; + { + selectionBead = (ir as IStrand).getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead) + selectionBead.selected = true; + } lastSelectedIndex = listModel.selectedIndex; } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as index 73b0f19..2f7271a 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ButtonBarItemRenderer.as @@ -23,6 +23,7 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.core.WrappedHTMLElement; } import org.apache.royale.core.IItemRendererOwnerView; + import org.apache.royale.core.IOwnerViewItemRenderer; import org.apache.royale.core.SimpleCSSStylesWithFlex; import org.apache.royale.events.ItemClickedEvent; import org.apache.royale.events.MouseEvent; @@ -41,7 +42,7 @@ package org.apache.royale.jewel.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.9.7 */ - public class ButtonBarItemRenderer extends Button implements ITextItemRenderer + public class ButtonBarItemRenderer extends Button implements ITextItemRenderer, IOwnerViewItemRenderer { public function ButtonBarItemRenderer() { diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as index 778b034..71d169e 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/CollapsibleNavigationSectionRenderer.as @@ -68,7 +68,7 @@ package org.apache.royale.jewel.itemRenderers } open = false; addEventListener('click', onSectionNav); - addBead(ClassSelectorListHoverableRuntimeSelectableItemRendererBead(navLinkClassSelector)); + addBead(new ClassSelectorListHoverableRuntimeSelectableItemRendererBead(navLinkClassSelector)); } private function onSectionNav(event:Event):void{ diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as index c486b2f..3d7f4af 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DateItemRenderer.as @@ -60,7 +60,7 @@ package org.apache.royale.jewel.itemRenderers { super.data = value; - var model:DateChooserModel = (itemRendererOwnerView.host as IStrandWithModel).model as DateChooserModel; + var model:DateChooserModel = (itemRendererOwnerView.host.parent as IStrandWithModel).model as DateChooserModel; //itemRendererOwnerView.parent is DateChooser var viewState:int = model.viewState; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as index e71fc5b..80d5517 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/ListItemRenderer.as @@ -23,10 +23,12 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.core.WrappedHTMLElement; import org.apache.royale.html.util.addElementToWrapper; } - import org.apache.royale.core.StyledMXMLItemRenderer; + import org.apache.royale.core.IRuntimeSelectableItemRenderer; + import org.apache.royale.core.StyledMXMLItemRenderer; import org.apache.royale.events.Event; import org.apache.royale.html.util.getLabelFromData; import org.apache.royale.jewel.beads.controls.TextAlign; + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer; import org.apache.royale.jewel.beads.itemRenderers.ITextItemRenderer; @@ -143,6 +145,13 @@ package org.apache.royale.jewel.itemRenderers addElementToWrapper(this, 'li'); return element; } + + override public function addedToParent():void + { + super.addedToParent(); + if (!getBeadByType(IRuntimeSelectableItemRenderer)) + addBead(new ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList)); + } } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as index 9fc7cbf..574e77e 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/NavigationLinkItemRenderer.as @@ -58,7 +58,7 @@ package org.apache.royale.jewel.itemRenderers { addClass("mxmlContent"); } - addBead(ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList)); + addBead(new ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList)); } // private var _href:String = "#"; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as index d2edcdb..4072de5 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TabBarButtonItemRenderer.as @@ -55,7 +55,7 @@ package org.apache.royale.jewel.itemRenderers typeNames = "jewel tabbarbutton"; addClass("selectable"); - addBead(ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList)); + addBead(new ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList)); } // private var _href:String = "#"; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as index 6f820bf..b107f40 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/TableItemRenderer.as @@ -24,6 +24,8 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.html.util.addElementToWrapper; import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer; } + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; + import org.apache.royale.core.IRuntimeSelectableItemRenderer; import org.apache.royale.jewel.beads.controls.TextAlign; /** @@ -58,8 +60,35 @@ package org.apache.royale.jewel.itemRenderers textAlign = new TextAlign(); addBead(textAlign); + + // a more PAYG implementation might be to have a base class or interface for + // TableItemRenderer so that TableCellCloseIconItemRenderer doesn't load + // a selection bead at all and doesn't need hoverable or selectable APIs + // to disable default functionality. + selectionBead = new ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList); + addBead(selectionBead); } + private var selectionBead:IRuntimeSelectableItemRenderer; + + public function get hoverable():Boolean + { + return selectionBead.hoverable; + } + public function set hoverable(value:Boolean):void + { + selectionBead.hoverable = value; + } + + public function get selectable():Boolean + { + return selectionBead.selectable; + } + public function set selectable(value:Boolean):void + { + selectionBead.selectable = value; + } + /** * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement */
