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 a43dde5e1dacaac6f97e508984d5bd3141214987 Author: Alex Harui <[email protected]> AuthorDate: Mon Feb 10 21:28:44 2020 -0800 get Jewel to use new 'has' pattern. The non-selectable renderers no longer have to disable default functionality. Selection is PAYG --- .../src/main/config/compile-app-config.xml | 3 + .../AdvancedIconListItemRenderer.mxml | 2 +- .../itemRenderers/IconDataGridItemRenderer.mxml | 2 +- .../royale/itemRenderers/IconListItemRenderer.mxml | 2 +- .../NavigationGroupExampleItemRenderer.mxml | 2 +- .../TableCellCloseIconItemRenderer.mxml | 2 +- .../apache/royale/core/StyledMXMLItemRenderer.as | 21 ++++ .../html/supportClasses/UIItemRendererBase.as | 20 ---- .../html/beads/ListItemRendererInitializer.as | 114 +++++++++++++++++++ .../projects/Jewel/src/main/resources/defaults.css | 5 + .../projects/Jewel/src/main/royale/JewelClasses.as | 5 + ...stHoverableRuntimeSelectableItemRendererBead.as | 2 +- ...electorListRuntimeSelectableItemRendererBead.as | 2 +- .../JewelListItemRendererInitializer.as | 122 +++++++++++++++++++++ .../CollapsibleNavigationSectionRenderer.as | 2 +- .../itemRenderers/DropDownListItemRenderer.as | 4 +- .../royale/jewel/itemRenderers/ListItemRenderer.as | 2 - .../itemRenderers/NavigationLinkItemRenderer.as | 2 +- .../itemRenderers/TabBarButtonItemRenderer.as | 2 +- .../jewel/supportClasses/table/TBodyContentArea.as | 5 +- 20 files changed, 285 insertions(+), 36 deletions(-) diff --git a/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml b/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml index 0f1dba8..ce3103c 100644 --- a/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml +++ b/examples/royale/TourDeJewel/src/main/config/compile-app-config.xml @@ -21,6 +21,9 @@ <optimization>skipAsCoercions</optimization> </js-output-optimization> <compiler> + <targets> + <target>JSRoyale</target> + </targets> <theme> <filename>../../../../../../frameworks/libs/JewelTheme.swc</filename> <filename>../../../../../../frameworks/themes/Jewel-Light-NoFlat-Primary-Blue-Theme/src/main/resources/defaults.css</filename> diff --git a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml index 506b295..47185f4 100644 --- a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml +++ b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/AdvancedIconListItemRenderer.mxml @@ -44,7 +44,7 @@ limitations under the License. private function clickCloseButton():void { - var view:ListView = this.itemRendererParent as ListView; + var view:ListView = this.itemRendererOwnerView as ListView; if (view) { var host:List = view.host as List; if (host) { diff --git a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml index a190f98..18eb319 100644 --- a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml +++ b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconDataGridItemRenderer.mxml @@ -38,7 +38,7 @@ limitations under the License. public function clickCloseButton(event:Event):void { - var view:ListView = this.itemRendererParent as ListView; + var view:ListView = this.itemRendererOwnerView as ListView; var column:DataGridColumnList = view.host as DataGridColumnList; (column.datagrid.dataProvider as ArrayList).removeItemAt(index); } diff --git a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml index 4a37606..ed47180 100644 --- a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml +++ b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml @@ -38,7 +38,7 @@ limitations under the License. public function clickCloseButton():void { - var view:ListView = this.itemRendererParent as ListView; + var view:ListView = this.itemRendererOwnerView as ListView; if (view) { var host:List = view.host as List; if (host) { diff --git a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml index da6c12e..5f8bec9 100644 --- a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml +++ b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/NavigationGroupExampleItemRenderer.mxml @@ -64,7 +64,7 @@ limitations under the License. override public function onChange(selectedItem:Object):void{ trace('selectedItem',selectedItem) - var parentNav:Navigation = this.itemRendererParent ? this.itemRendererParent.host as Navigation : null; + var parentNav:Navigation = this.itemRendererOwnerView ? this.itemRendererOwnerView.host as Navigation : null; if (parentNav) { //this hierarchy support is a bit kooky, and probably there will be something better later with Hierarchical data setup navlink.selectedChild =selectedItem as NavigationLinkVO; diff --git a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml index 0b928d2..21d8a13 100644 --- a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml +++ b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/TableCellCloseIconItemRenderer.mxml @@ -31,7 +31,7 @@ limitations under the License. private function clickCloseButton():void { - var table:Table = itemRendererParent as Table; + var table:Table = itemRendererOwnerView.host as Table; (table.dataProvider as ArrayList).removeItemAt(rowIndex); } ]]> 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 b765887..645d4e6 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 @@ -18,6 +18,7 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.core { + import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.html.supportClasses.MXMLItemRenderer; import org.apache.royale.utils.ClassSelectorList; import org.apache.royale.utils.IClassSelectorListSupport; @@ -169,6 +170,26 @@ package org.apache.royale.core } } + 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; + } + /** * The method called when added to a parent. The StyledItemRenderer class uses * this opportunity to assign emphasis from the strand if possible, otherwise defaults 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 e7defb7..bea3af4 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 @@ -19,7 +19,6 @@ package org.apache.royale.html.supportClasses { import org.apache.royale.core.IIndexedItemRenderer; - import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IBead; import org.apache.royale.core.UIBase; @@ -77,25 +76,6 @@ package org.apache.royale.html.supportClasses } - private var _itemRendererOwnerView:IItemRendererOwnerView; - - /** - * The parent container for the itemRenderer instance. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.0 - */ - public function get itemRendererOwnerView():IItemRendererOwnerView - { - return _itemRendererOwnerView; - } - public function set itemRendererOwnerView(value:IItemRendererOwnerView):void - { - _itemRendererOwnerView = value; - } - /** * @copy org.apache.royale.core.ItemRendererClassFactory#mxmlContent * diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as new file mode 100644 index 0000000..409df36 --- /dev/null +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/html/beads/ListItemRendererInitializer.as @@ -0,0 +1,114 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.royale.html.beads +{ + import org.apache.royale.core.IItemRendererOwnerView; + + import org.apache.royale.core.Bead; + import org.apache.royale.core.IDataProviderModel; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.IIndexedItemRendererInitializer; + import org.apache.royale.core.IItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; + import org.apache.royale.core.IListPresentationModel; + import org.apache.royale.core.IStrand; + import org.apache.royale.core.IStrandWithPresentationModel; + import org.apache.royale.core.IUIBase; + import org.apache.royale.core.SimpleCSSStyles; + import org.apache.royale.core.UIBase; + + /** + * The ListItemRendererInitializer class initializes item renderers + * in list classes. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public class ListItemRendererInitializer extends Bead implements IIndexedItemRendererInitializer + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public function ListItemRendererInitializer() + { + } + + protected var presentationModel:IListPresentationModel; + protected var dataProviderModel:IDataProviderModel; + protected var labelField:String; + + /** + * @copy org.apache.royale.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + * @royaleignorecoercion HTMLInputElement + * @royaleignorecoercion org.apache.royale.core.UIBase; + */ + override public function set strand(value:IStrand):void + { + _strand = value; + presentationModel = (_strand as IStrandWithPresentationModel).presentationModel as IListPresentationModel; + dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; + labelField = dataProviderModel.labelField; + } + + /** + * @private + * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer + */ + public function initializeItemRenderer(ir:IItemRenderer, data:Object):void + { + if (ir is ILabelFieldItemRenderer) + (ir as ILabelFieldItemRenderer).labelField = labelField; + + setupVisualsForItemRenderer(ir as IIndexedItemRenderer); + } + + /** + * @private + * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper + */ + public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void + { + ir.index = index; + initializeItemRenderer(ir, data); + } + + protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void + { + var style:SimpleCSSStyles = new SimpleCSSStyles(); + style.marginBottom = presentationModel.separatorThickness; + UIBase(ir).style = style; + UIBase(ir).height = presentationModel.rowHeight; + UIBase(ir).percentWidth = 100; + } + + } +} diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css index 75b853f..a875c19 100644 --- a/frameworks/projects/Jewel/src/main/resources/defaults.css +++ b/frameworks/projects/Jewel/src/main/resources/defaults.css @@ -116,6 +116,7 @@ j|DataContainer { IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.StringItemRenderer"); + IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport"); IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); } @@ -280,6 +281,7 @@ j|ButtonBar { IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ButtonBarItemRenderer"); + IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); } @media -royale-swf { @@ -3176,6 +3178,7 @@ j|List { IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.ListItemRenderer"); + IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); 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"); @@ -3197,6 +3200,7 @@ j|Navigation { IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.NavigationLinkItemRenderer"); + IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); 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"); @@ -3636,6 +3640,7 @@ j|TabBar { IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout"); IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer"); + IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer"); 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/royale/JewelClasses.as b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as index f02c488..47feeec 100644 --- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as +++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as @@ -129,5 +129,10 @@ package import dialogPolyfill; dialogPolyfill; import org.apache.royale.utils.transparentPixelElement; transparentPixelElement; } + + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; ClassSelectorListRuntimeSelectableItemRendererBead; + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; ClassSelectorListHoverableRuntimeSelectableItemRendererBead; + import org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer; JewelListItemRendererInitializer; + } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as similarity index 97% rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as index b46c871..1d6f8d5 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListHoverableRuntimeSelectableItemRendererBead.as @@ -16,7 +16,7 @@ // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// -package org.apache.royale.jewel.beads +package org.apache.royale.jewel.beads.itemRenderers { COMPILE::SWF { diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as similarity index 98% rename from frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as rename to frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as index 2248e87..adc60f3 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/ClassSelectorListRuntimeSelectableItemRendererBead.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ClassSelectorListRuntimeSelectableItemRendererBead.as @@ -16,7 +16,7 @@ // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// -package org.apache.royale.jewel.beads +package org.apache.royale.jewel.beads.itemRenderers { COMPILE::SWF { diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as new file mode 100644 index 0000000..5916f7f --- /dev/null +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/JewelListItemRendererInitializer.as @@ -0,0 +1,122 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.royale.jewel.beads.itemRenderers +{ + import org.apache.royale.core.IItemRendererOwnerView; + + import org.apache.royale.core.Bead; + import org.apache.royale.core.IDataProviderModel; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.IIndexedItemRendererInitializer; + import org.apache.royale.core.IItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; + import org.apache.royale.jewel.supportClasses.list.IListPresentationModel; + import org.apache.royale.core.IStrand; + import org.apache.royale.core.IStrandWithPresentationModel; + import org.apache.royale.core.IStrandWithModelView; + import org.apache.royale.core.SimpleCSSStyles; + import org.apache.royale.core.StyledMXMLItemRenderer; + import org.apache.royale.core.UIBase; + + /** + * The ListItemRendererInitializer class initializes item renderers + * in list classes. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public class JewelListItemRendererInitializer extends Bead implements IIndexedItemRendererInitializer + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public function JewelListItemRendererInitializer() + { + } + + protected var presentationModel:IListPresentationModel; + protected var dataProviderModel:IDataProviderModel; + protected var labelField:String; + private var ownerView:IItemRendererOwnerView; + + /** + * @copy org.apache.royale.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + * @royaleignorecoercion HTMLInputElement + * @royaleignorecoercion org.apache.royale.core.UIBase; + */ + override public function set strand(value:IStrand):void + { + _strand = value; + ownerView = (value as IStrandWithModelView).view as IItemRendererOwnerView; + presentationModel = (_strand as IStrandWithPresentationModel).presentationModel as IListPresentationModel; + dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; + labelField = dataProviderModel.labelField; + } + + /** + * @private + * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper + * @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer + */ + public function initializeItemRenderer(ir:IItemRenderer, data:Object):void + { + if (ir is ILabelFieldItemRenderer) + (ir as ILabelFieldItemRenderer).labelField = labelField; + + setupVisualsForItemRenderer(ir as IIndexedItemRenderer); + } + + /** + * @private + * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper + */ + public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void + { + ir.index = index; + initializeItemRenderer(ir, data); + } + + protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void + { + if (presentationModel) { + UIBase(ir).height = presentationModel.rowHeight; + + if(ir is IAlignItemRenderer) + { + (ir as IAlignItemRenderer).align = presentationModel.align; + } + } + if (ir is StyledMXMLItemRenderer && ownerView) + (ir as StyledMXMLItemRenderer).itemRendererOwnerView = ownerView; + } + + } +} 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 072a24f..778b034 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,7 @@ 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.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; + 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; diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as index dfc864d..7ad5a8b 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/itemRenderers/DropDownListItemRenderer.as @@ -24,7 +24,7 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.jewel.beads.views.DropDownListView; } import org.apache.royale.html.elements.Option; - import org.apache.royale.html.supportClasses.MXMLItemRenderer; + import org.apache.royale.core.StyledMXMLItemRenderer; /** * The DropDownListItemRenderer class creates a DropDownList menu item @@ -34,7 +34,7 @@ package org.apache.royale.jewel.itemRenderers * @playerversion AIR 2.6 * @productversion Royale 0.9.4 */ - public class DropDownListItemRenderer extends MXMLItemRenderer + public class DropDownListItemRenderer extends StyledMXMLItemRenderer { public static const OPTION_DISABLED:String = "DropDownList.Select.Default.Prompt"; 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 74a6c9c..e71fc5b 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 @@ -29,7 +29,6 @@ package org.apache.royale.jewel.itemRenderers import org.apache.royale.jewel.beads.controls.TextAlign; import org.apache.royale.jewel.beads.itemRenderers.IAlignItemRenderer; import org.apache.royale.jewel.beads.itemRenderers.ITextItemRenderer; - import org.apache.royale.jewel.beads.ClassSelectorListRuntimeSelectableItemRendererBead; /** * The ListItemRenderer defines the basic Item Renderer for a Jewel List Component. @@ -60,7 +59,6 @@ package org.apache.royale.jewel.itemRenderers { addClass("mxmlContent"); } - addBead(ClassSelectorListRuntimeSelectableItemRendererBead(classSelectorList)); } private var _text:String = ""; 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 8e369fb..9fc7cbf 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,7 @@ 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.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverableRuntimeSelectableItemRendererBead; /** * The NavigationLinkItemRenderer defines the basic Item Renderer for a Jewel 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 4bce633..d2edcdb 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,7 @@ 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.ClassSelectorListRuntimeSelectableItemRendererBead; + import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListRuntimeSelectableItemRendererBead; /** * The TabBarButtonItemRenderer defines the basic Item Renderer for a Jewel diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as index 001d25a..eef4fb6 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TBodyContentArea.as @@ -29,6 +29,7 @@ package org.apache.royale.jewel.supportClasses.table import org.apache.royale.events.ItemAddedEvent; import org.apache.royale.events.ItemRemovedEvent; import org.apache.royale.html.supportClasses.ContainerContentArea; + import org.apache.royale.jewel.itemRenderers.ListItemRenderer; import org.apache.royale.html.supportClasses.DataItemRenderer; import org.apache.royale.jewel.supportClasses.table.TableRow; @@ -90,7 +91,7 @@ package org.apache.royale.jewel.supportClasses.table public function addItemRenderer(renderer:IItemRenderer, dispatchAdded:Boolean):void { // this method is not used for now, so it needs to be tested to see if it's correctly implemented - var r:DataItemRenderer = renderer as DataItemRenderer; + var r:ListItemRenderer = renderer as ListItemRenderer; r.itemRendererOwnerView = this; // easy access from renderer to table var tableCell:TableCell = new TableCell(); tableCell.addElement(r); @@ -123,7 +124,7 @@ package org.apache.royale.jewel.supportClasses.table */ public function addItemRendererAt(renderer:IItemRenderer, index:int):void { - var r:DataItemRenderer = renderer as DataItemRenderer; + var r:ListItemRenderer = renderer as ListItemRenderer; r.itemRendererOwnerView = this; // easy access from renderer to table var tableCell:TableCell = new TableCell(); tableCell.addElement(r);
