This is an automated email from the ASF dual-hosted git repository. aharui pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 48d4425de6030022a6852fa34ffd34b2ebf5d65f Author: Alex Harui <[email protected]> AuthorDate: Thu Feb 20 13:40:38 2020 -0800 refactor Jewel to use new SelectableItemRendererClassFactory pattern --- .../Core/src/main/resources/basic-manifest.xml | 2 + .../projects/Core/src/main/royale/CoreClasses.as | 1 + ...erridableSelectableItemRendererClassFactory.as} | 8 ++- .../core/SelectableItemRendererClassFactory.as | 3 +- .../projects/Jewel/src/main/resources/defaults.css | 14 ++-- .../Jewel/src/main/resources/jewel-manifest.xml | 1 + .../controllers/ItemRendererMouseController.as | 10 +-- ...stHoverableRuntimeSelectableItemRendererBead.as | 26 ++++--- ...electorListRuntimeSelectableItemRendererBead.as | 79 ++++------------------ ...lectorListRuntimeSelectableItemRendererBead.as} | 40 ++++++----- .../CollapsibleNavigationSectionRenderer.as | 2 - .../royale/jewel/itemRenderers/ListItemRenderer.as | 9 --- .../itemRenderers/NavigationLinkItemRenderer.as | 2 - .../itemRenderers/TabBarButtonItemRenderer.as | 2 - .../jewel/itemRenderers/TableItemRenderer.as | 31 +-------- .../Jewel/src/main/sass/components/_datagrid.sass | 2 + .../Jewel/src/main/sass/components/_list.sass | 3 +- .../src/main/sass/components/_navigation.sass | 3 +- .../Jewel/src/main/sass/components/_tabbar.sass | 3 +- .../Jewel/src/main/sass/components/_table.sass | 3 +- 20 files changed, 86 insertions(+), 158 deletions(-) diff --git a/frameworks/projects/Core/src/main/resources/basic-manifest.xml b/frameworks/projects/Core/src/main/resources/basic-manifest.xml index 5b75de2..02bf70b 100644 --- a/frameworks/projects/Core/src/main/resources/basic-manifest.xml +++ b/frameworks/projects/Core/src/main/resources/basic-manifest.xml @@ -55,4 +55,6 @@ <component id="CompoundAsyncTask" class="org.apache.royale.utils.async.CompoundAsyncTask"/> <component id="SequentialAsyncTask" class="org.apache.royale.utils.async.SequentialAsyncTask"/> + + <component id="OverridableSelectableItemRendererClassFactory" class="org.apache.royale.core.OverridableSelectableItemRendererClassFactory"/> </componentPackage> diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as index d7858ee..e901fc3 100644 --- a/frameworks/projects/Core/src/main/royale/CoreClasses.as +++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as @@ -77,6 +77,7 @@ internal class CoreClasses import org.apache.royale.core.IBinaryImageLoader; IBinaryImageLoader; import org.apache.royale.core.ItemRendererClassFactory; ItemRendererClassFactory; import org.apache.royale.core.SelectableItemRendererClassFactory; SelectableItemRendererClassFactory; + import org.apache.royale.core.OverridableSelectableItemRendererClassFactory; OverridableSelectableItemRendererClassFactory; import org.apache.royale.core.IChangePropagator; IChangePropagator; import org.apache.royale.core.IAlertModel; IAlertModel; import org.apache.royale.core.IBead; IBead; diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as similarity index 90% copy from frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as copy to frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as index 3488448..e1f05c3 100644 --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as @@ -22,6 +22,7 @@ package org.apache.royale.core import org.apache.royale.core.ClassFactory; import org.apache.royale.core.IFactory; import org.apache.royale.core.IItemRendererProvider; + import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.utils.MXMLDataInterpreter; @@ -38,7 +39,7 @@ package org.apache.royale.core * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class SelectableItemRendererClassFactory extends ItemRendererClassFactory + public class OverridableSelectableItemRendererClassFactory extends ItemRendererClassFactory { /** * Constructor. @@ -48,7 +49,7 @@ package org.apache.royale.core * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public function SelectableItemRendererClassFactory() + public function OverridableSelectableItemRendererClassFactory() { super(); } @@ -81,7 +82,8 @@ package org.apache.royale.core override public function createItemRenderer():IItemRenderer { var ir:IItemRenderer = super.createItemRenderer(); - ir.addBead(new selectableBeadClass()); + if (!ir.getBeadByType(ISelectableItemRenderer)) + ir.addBead(new selectableBeadClass()); return ir; } } diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as index 3488448..18402a4 100644 --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/SelectableItemRendererClassFactory.as @@ -22,6 +22,7 @@ package org.apache.royale.core import org.apache.royale.core.ClassFactory; import org.apache.royale.core.IFactory; import org.apache.royale.core.IItemRendererProvider; + import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.utils.MXMLDataInterpreter; @@ -81,7 +82,7 @@ package org.apache.royale.core override public function createItemRenderer():IItemRenderer { var ir:IItemRenderer = super.createItemRenderer(); - ir.addBead(new selectableBeadClass()); + ir.addBead(new selectableBeadClass()); return ir; } } diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css index 60a73e6..0e9b6d0 100644 --- a/frameworks/projects/Jewel/src/main/resources/defaults.css +++ b/frameworks/projects/Jewel/src/main/resources/defaults.css @@ -544,7 +544,9 @@ j|DataGridListArea { } j|DataGridColumnList { + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead"); } .jewel.datechooser .jewel.table { @@ -3204,9 +3206,10 @@ j|List { IBeadView: ClassReference("org.apache.royale.jewel.beads.views.ListView"); IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController"); IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout"); - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer"); IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead"); IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport"); IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel"); @@ -3232,9 +3235,10 @@ j|Navigation { IBeadView: ClassReference("org.apache.royale.jewel.beads.views.ListView"); IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController"); IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout"); - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.NavigationLinkItemRenderer"); IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead"); IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport"); IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel"); @@ -3670,9 +3674,10 @@ j|TabBar { IBeadView: ClassReference("org.apache.royale.jewel.beads.views.TabBarView"); IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController"); IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout"); - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer"); IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead"); IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport"); IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel"); @@ -3797,9 +3802,10 @@ j|Table { IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.TableLayout"); IBeadView: ClassReference("org.apache.royale.jewel.beads.views.TableView"); IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.TableModel"); - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TableItemRenderer"); IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.TableCellSelectionMouseController"); + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.TableItemRendererFactoryForCollectionView"); IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport"); IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml index a28baef..feb7bf3 100644 --- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml +++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml @@ -218,6 +218,7 @@ <component id="VirtualDataItemRendererFactoryForCollectionView" class="org.apache.royale.jewel.beads.itemRenderers.VirtualDataItemRendererFactoryForCollectionView"/> <component id="DropDownListItemRendererFactoryForCollectionView" class="org.apache.royale.jewel.beads.itemRenderers.DropDownListItemRendererFactoryForCollectionView"/> <component id="TableItemRendererFactoryForCollectionView" class="org.apache.royale.jewel.beads.itemRenderers.TableItemRendererFactoryForCollectionView"/> + <component id="NoClassSelectorListRuntimeSelectableItemRendererBead" class="org.apache.royale.jewel.beads.itemRenderers.NoClassSelectorListRuntimeSelectableItemRendererBead"/> <component id="AddListItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.AddListItemRendererForArrayListData" /> <component id="RemoveListItemRendererForArrayListData" class="org.apache.royale.jewel.beads.itemRenderers.RemoveListItemRendererForArrayListData" /> diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as index cf58399..0929caf 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/ItemRendererMouseController.as @@ -31,7 +31,7 @@ package org.apache.royale.jewel.beads.controllers import org.apache.royale.core.WrappedHTMLElement; import org.apache.royale.events.BrowserEvent; } - import org.apache.royale.core.IRuntimeSelectableItemRenderer; + import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IBeadController; import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IStrand; @@ -157,7 +157,7 @@ package org.apache.royale.jewel.beads.controllers var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - var selectionBead:IRuntimeSelectableItemRenderer = target.getBeadByType(IRuntimeSelectableItemRenderer) as IRuntimeSelectableItemRenderer; + var selectionBead:ISelectableItemRenderer = target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; selectionBead.down = true; target.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } @@ -173,7 +173,7 @@ package org.apache.royale.jewel.beads.controllers var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - var selectionBead:IRuntimeSelectableItemRenderer = target.getBeadByType(IRuntimeSelectableItemRenderer) as IRuntimeSelectableItemRenderer; + var selectionBead:ISelectableItemRenderer = target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; selectionBead.down = true; selectionBead.hovered = false; } @@ -209,8 +209,8 @@ package org.apache.royale.jewel.beads.controllers var target:IIndexedItemRenderer = event.currentTarget as IIndexedItemRenderer; if (target) { - var selectionBead:IRuntimeSelectableItemRenderer = target.getBeadByType(IRuntimeSelectableItemRenderer) as IRuntimeSelectableItemRenderer; - if (selectionBead && selectionBead.selectable) + var selectionBead:ISelectableItemRenderer = target.getBeadByType(ISelectableItemRenderer) as ISelectableItemRenderer; + if (selectionBead && selectionBead.down) { var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked"); newEvent.data = target.data; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as index e8130e5..39a97b5 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as @@ -18,11 +18,9 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.jewel.beads.itemRenderers { - COMPILE::SWF - { - import flash.display.Sprite; - } - import org.apache.royale.utils.ClassSelectorList; + import org.apache.royale.core.IStrand; + import org.apache.royale.html.beads.SelectableItemRendererBeadBase; + import org.apache.royale.utils.IClassSelectorListSupport; /** * UnselectableElement bead prevents from text selection of html element @@ -33,7 +31,7 @@ package org.apache.royale.jewel.beads.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.9.7 */ - public class ClassSelectorListHoverableRuntimeSelectableItemRendererBead extends ClassSelectorListRuntimeSelectableItemRendererBead + public class ClassSelectorListHoverableRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase { /** * constructor. @@ -43,19 +41,25 @@ package org.apache.royale.jewel.beads.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.9.7 */ - public function ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList:ClassSelectorList) + public function ClassSelectorListHoverableRuntimeSelectableItemRendererBead() { - super(classSelectorList); } + private var ir:IClassSelectorListSupport; + + override public function set strand(value:IStrand):void + { + super.strand = value; + ir = value as IClassSelectorListSupport; + ir.addClass("selectable"); + } + /** * @private */ override public function updateRenderer():void { - // there's no selection only hover state - if(hoverable) - classSelectorList.toggle("hovered", hovered); + ir.toggleClass("hovered", hovered); } } } 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 caae611..caa9ab6 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 @@ -18,13 +18,9 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.jewel.beads.itemRenderers { - COMPILE::SWF - { - import flash.display.Sprite; - } - import org.apache.royale.core.IRuntimeSelectableItemRenderer; + import org.apache.royale.core.IStrand; import org.apache.royale.html.beads.SelectableItemRendererBeadBase; - import org.apache.royale.utils.ClassSelectorList; + import org.apache.royale.utils.IClassSelectorListSupport; /** * UnselectableElement bead prevents from text selection of html element @@ -35,7 +31,7 @@ package org.apache.royale.jewel.beads.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public class ClassSelectorListRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase implements IRuntimeSelectableItemRenderer + public class ClassSelectorListRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase { /** * constructor. @@ -45,72 +41,27 @@ package org.apache.royale.jewel.beads.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public function ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList:ClassSelectorList) + public function ClassSelectorListRuntimeSelectableItemRendererBead() { - this.classSelectorList = classSelectorList; } - protected var classSelectorList:ClassSelectorList; - - 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; - classSelectorList.toggle("selectable", _selectable); - - } - - private var _hoverable:Boolean = true; - - /** - * <code>true</code> if the item renderer is can be hovered - * false otherwise. Use to configure a renderer to be non - * hoverable. - * - * Defaults to true - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.3 - */ - public function get hoverable():Boolean - { - return _hoverable; - } - public function set hoverable(value:Boolean):void - { - _hoverable = value; - } - + private var ir:IClassSelectorListSupport; + + override public function set strand(value:IStrand):void + { + super.strand = value; + ir = value as IClassSelectorListSupport; + ir.addClass("selectable"); + } + /** * @private */ override public function updateRenderer():void { // there's no selection only hover state - if(hoverable) - classSelectorList.toggle("hovered", hovered); - if(selectable) { - classSelectorList.toggle("selected", selected); - } + ir.toggleClass("hovered", hovered); + ir.toggleClass("selected", selected); } } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/NoClassSelectorListRuntimeSelectableItemRendererBead.as similarity index 60% copy from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as copy to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/NoClassSelectorListRuntimeSelectableItemRendererBead.as index e8130e5..0906510 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/NoClassSelectorListRuntimeSelectableItemRendererBead.as @@ -18,22 +18,20 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.jewel.beads.itemRenderers { - COMPILE::SWF - { - import flash.display.Sprite; - } - import org.apache.royale.utils.ClassSelectorList; + import org.apache.royale.core.IStrand; + import org.apache.royale.html.beads.SelectableItemRendererBeadBase; + import org.apache.royale.utils.IClassSelectorListSupport; /** - * UnselectableElement bead prevents from text selection of html element + * NoClassSelectorListRuntimeSelectableItemRendererBead bead disables selection visuals * * @viewbead * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion Royale 0.9.7 + * @productversion Royale 0.8 */ - public class ClassSelectorListHoverableRuntimeSelectableItemRendererBead extends ClassSelectorListRuntimeSelectableItemRendererBead + public class NoClassSelectorListRuntimeSelectableItemRendererBead extends SelectableItemRendererBeadBase { /** * constructor. @@ -41,21 +39,21 @@ package org.apache.royale.jewel.beads.itemRenderers * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion Royale 0.9.7 + * @productversion Royale 0.8 */ - public function ClassSelectorListHoverableRuntimeSelectableItemRendererBead(classSelectorList:ClassSelectorList) + public function NoClassSelectorListRuntimeSelectableItemRendererBead() { - super(classSelectorList); } - - /** - * @private - */ - override public function updateRenderer():void - { - // there's no selection only hover state - if(hoverable) - classSelectorList.toggle("hovered", hovered); - } + + override public function set down(value:Boolean):void + { + // don't allow down state + } + + override public function set hovered(value:Boolean):void + { + // don't allow down hovered + } + } } 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 71d169e..1067e17 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 @@ -28,7 +28,6 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.events.Event; import org.apache.royale.html.elements.A; import org.apache.royale.jewel.Navigation; - import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; import org.apache.royale.jewel.supportClasses.INavigationRenderer; import org.apache.royale.utils.ClassSelectorList; import org.apache.royale.utils.MXMLDataInterpreter; @@ -68,7 +67,6 @@ package org.apache.royale.jewel.itemRenderers } open = false; addEventListener('click', onSectionNav); - addBead(new ClassSelectorListHoverableRuntimeSelectableItemRendererBead(navLinkClassSelector)); } private function onSectionNav(event:Event):void{ 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 80d5517..b996253 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,12 +23,10 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.core.WrappedHTMLElement; import org.apache.royale.html.util.addElementToWrapper; } - 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; @@ -146,12 +144,5 @@ package org.apache.royale.jewel.itemRenderers 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 574e77e..10abd55 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 @@ -25,7 +25,6 @@ package org.apache.royale.jewel.itemRenderers } import org.apache.royale.core.StyledMXMLItemRenderer; import org.apache.royale.jewel.supportClasses.INavigationRenderer; - import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; /** * The NavigationLinkItemRenderer defines the basic Item Renderer for a Jewel @@ -58,7 +57,6 @@ package org.apache.royale.jewel.itemRenderers { addClass("mxmlContent"); } - 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 4072de5..bba479b 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 @@ -27,7 +27,6 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.events.Event; import org.apache.royale.html.util.getLabelFromData; import org.apache.royale.jewel.supportClasses.INavigationRenderer; - import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; /** * The TabBarButtonItemRenderer defines the basic Item Renderer for a Jewel @@ -55,7 +54,6 @@ package org.apache.royale.jewel.itemRenderers typeNames = "jewel tabbarbutton"; addClass("selectable"); - 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 8fb429d..375df7e 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 @@ -23,9 +23,7 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.core.WrappedHTMLElement; import org.apache.royale.html.util.addElementToWrapper; } - import org.apache.royale.core.IRuntimeSelectableItemRenderer; import org.apache.royale.jewel.beads.controls.TextAlign; - import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; /** * The TableItemRenderer class displays data in string form using the data's toString() @@ -58,36 +56,9 @@ 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); + addBead(textAlign); } - 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 */ diff --git a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass index ab30611..a365a5b 100644 --- a/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass +++ b/frameworks/projects/Jewel/src/main/sass/components/_datagrid.sass @@ -64,7 +64,9 @@ j|DataGridListArea IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel") j|DataGridColumnList + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory") IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.DataGridItemRenderer") + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead") //Nothing to change from j|ButtonBar j|DataGridButtonBar diff --git a/frameworks/projects/Jewel/src/main/sass/components/_list.sass b/frameworks/projects/Jewel/src/main/sass/components/_list.sass index f5852d4..b071ef0 100644 --- a/frameworks/projects/Jewel/src/main/sass/components/_list.sass +++ b/frameworks/projects/Jewel/src/main/sass/components/_list.sass @@ -39,9 +39,10 @@ j|List IBeadView: ClassReference("org.apache.royale.jewel.beads.views.ListView") IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController") IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout") - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory") + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory") IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer") IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer") + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead") IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport") IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel") IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel") diff --git a/frameworks/projects/Jewel/src/main/sass/components/_navigation.sass b/frameworks/projects/Jewel/src/main/sass/components/_navigation.sass index 2775a1e..cb12712 100644 --- a/frameworks/projects/Jewel/src/main/sass/components/_navigation.sass +++ b/frameworks/projects/Jewel/src/main/sass/components/_navigation.sass @@ -29,9 +29,10 @@ j|Navigation IBeadView: ClassReference("org.apache.royale.jewel.beads.views.ListView") IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController") IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout") - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory") + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory") IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.NavigationLinkItemRenderer") IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer") + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead") IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport") IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel") IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel") diff --git a/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass b/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass index 2ab4d03..e8cb096 100644 --- a/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass +++ b/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass @@ -51,9 +51,10 @@ j|TabBar IBeadView: ClassReference("org.apache.royale.jewel.beads.views.TabBarView") IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.ListSingleSelectionMouseController") IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout") - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory") + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory") IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer") IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer") + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead") IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport") IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel") IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel") diff --git a/frameworks/projects/Jewel/src/main/sass/components/_table.sass b/frameworks/projects/Jewel/src/main/sass/components/_table.sass index ed12602..da81ac4 100644 --- a/frameworks/projects/Jewel/src/main/sass/components/_table.sass +++ b/frameworks/projects/Jewel/src/main/sass/components/_table.sass @@ -105,9 +105,10 @@ j|Table IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.TableLayout") IBeadView: ClassReference("org.apache.royale.jewel.beads.views.TableView") IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.TableModel") - IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory") + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory") IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TableItemRenderer") IBeadController: ClassReference("org.apache.royale.jewel.beads.controllers.TableCellSelectionMouseController") + ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead") IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.TableItemRendererFactoryForCollectionView") IViewport: ClassReference("org.apache.royale.jewel.supportClasses.scrollbar.ScrollingViewport") IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel")
