This is an automated email from the ASF dual-hosted git repository. harbs pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 79d755ed6423bb31bf627d788704cc099d9dd0fe Author: Harbs <[email protected]> AuthorDate: Sun Jan 2 23:12:25 2022 +0200 mx models --- .../beads/AdvancedDataGridHeaderLayout.as | 8 ++++++-- .../royale/mx/containers/beads/VirtualListView.as | 3 ++- .../MXRoyale/src/main/royale/mx/controls/Menu.as | 15 ++++---------- .../AdvancedDataGridItemRenderer.as | 2 +- .../AdvancedDataGridItemRendererInitializer.as | 2 +- .../mx/controls/beads/CSSImageAndTextButtonView.as | 3 ++- .../main/royale/mx/controls/beads/CheckBoxView.as | 3 ++- .../mx/controls/beads/DataGridColumnResizeBead.as | 12 +++++------ .../beads/DataGridItemRendererInitializer.as | 2 +- .../beads/DataGridLinesBeadForICollectionView.as | 19 +++++++++++------ .../main/royale/mx/controls/beads/DataGridView.as | 12 +++++------ .../main/royale/mx/controls/beads/DateFieldView.as | 3 ++- .../mx/controls/beads/MultiSelectionListView.as | 6 ++++-- .../royale/mx/controls/beads/RadioButtonView.as | 3 ++- .../ListMultiSelectionMouseController.as | 3 ++- .../beads/layouts/AdvancedDataGridLayout.as | 6 ++++-- .../controls/beads/layouts/DataGridHeaderLayout.as | 6 ++++-- .../dataGridClasses/DataGridItemRenderer.as | 2 +- .../royale/mx/controls/listClasses/ListBase.as | 10 +-------- .../apache/royale/mobile/beads/DatePickerView.as | 10 ++++----- .../royale/mobile/beads/StackedViewManagerView.as | 16 +++++++-------- .../royale/mobile/beads/TabbedViewManagerView.as | 10 ++++----- .../apache/royale/mobile/beads/ToggleSwitchView.as | 24 ++++++++++++---------- .../royale/mobile/beads/ViewManagerViewBase.as | 10 ++++----- 24 files changed, 100 insertions(+), 90 deletions(-) diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as index 66c43c4..c25bd9b 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as @@ -123,7 +123,11 @@ public class AdvancedDataGridHeaderLayout extends LayoutBase // Overridden methods // //-------------------------------------------------------------------------- - + /** + * @royaleignorecoercion org.apache.royale.core.IStrandWithModel + * @royaleignorecoercion org.apache.royale.html.beads.models.ButtonBarModel + * @royaleemitcoercion org.apache.royale.core.ILayoutChild + */ override public function layout():Boolean { // ignore other lifecycle layouts until the DP is set @@ -132,7 +136,7 @@ public class AdvancedDataGridHeaderLayout extends LayoutBase var contentView:ILayoutView = layoutView; - var model:ButtonBarModel = (host as IStrand).getBeadByType(ButtonBarModel) as ButtonBarModel; + var model:ButtonBarModel = (_strand as IStrandWithModel).model as ButtonBarModel; if (model) { buttonWidths = model.buttonWidths; } diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/VirtualListView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/VirtualListView.as index ef9b125..bb36273 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/VirtualListView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/VirtualListView.as @@ -28,6 +28,7 @@ package mx.containers.beads import org.apache.royale.events.IEventDispatcher; import org.apache.royale.events.ItemRendererEvent; import org.apache.royale.utils.getSelectionRenderBead; + import org.apache.royale.html.util.getModelByType; /** * The List class creates the visual elements of the org.apache.royale.html.List @@ -56,7 +57,7 @@ package mx.containers.beads */ override protected function handleInitComplete(event:Event):void { - listModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; + listModel = getModelByType(_strand,ISelectionModel) as ISelectionModel; listModel.addEventListener("selectedIndexChanged", selectionChangeHandler); listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); var mapper:IEventDispatcher = _strand.getBeadByType(IDataProviderItemRendererMapper) as IEventDispatcher; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Menu.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Menu.as index 7d22b9c..b2a3532 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Menu.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/Menu.as @@ -98,6 +98,7 @@ package mx.controls import org.apache.royale.core.ILayoutParent; import org.apache.royale.core.ILayoutView; import org.apache.royale.core.IHasLabelField; + import org.apache.royale.html.util.getModelByType; use namespace mx_internal; @@ -2824,17 +2825,9 @@ package mx.controls public function get presentationModel():IBead { if (_presentationModel == null) { - var bead:IBead = getBeadByType(IListPresentationModel); - if (bead) - _presentationModel = bead as IListPresentationModel; - else - { - var c:Class = ValuesManager.valuesImpl.getValue(this, "iListPresentationModel"); - if (c) { - _presentationModel = new c() as IListPresentationModel; - addBead(_presentationModel as IBead); - } - } + var bead:IBead = loadBeadFromValuesManager(IListPresentationModel,"iListPresentationModel",this); + if (bead) + _presentationModel = bead as IListPresentationModel; } return _presentationModel; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as index f1dd48d..9790de4 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as @@ -154,7 +154,7 @@ public class AdvancedDataGridItemRenderer extends StringItemRenderer { var treeListData:AdvancedDataGridListData = listData as AdvancedDataGridListData; var owner:AdvancedDataGrid = treeListData.owner as AdvancedDataGrid; - var adgModel:DataGridICollectionViewModel = owner.getBeadByType(DataGridICollectionViewModel) as DataGridICollectionViewModel; + var adgModel:DataGridICollectionViewModel = owner.model as DataGridICollectionViewModel; var column:DataGridColumn = adgModel.columns[treeListData.columnIndex]; super.data = value; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as index c4eeaac..108fa42 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/AdvancedDataGridItemRendererInitializer.as @@ -76,7 +76,7 @@ import mx.controls.AdvancedDataGrid; if (!adgColumnList.grid) return; - var adgColumnListModel:DataGridColumnICollectionViewModel = adgColumnList.getBeadByType(DataGridColumnICollectionViewModel) as DataGridColumnICollectionViewModel; + var adgColumnListModel:DataGridColumnICollectionViewModel = adgColumnList.model as DataGridColumnICollectionViewModel; var adg:AdvancedDataGrid = (adgColumnList.grid as AdvancedDataGrid); var depth:int = adg.getDepth(data); var isOpen:Boolean = adg.isItemOpen(data); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CSSImageAndTextButtonView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CSSImageAndTextButtonView.as index ece98e5..768299b 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CSSImageAndTextButtonView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CSSImageAndTextButtonView.as @@ -41,6 +41,7 @@ package mx.controls.beads import org.apache.royale.utils.CSSUtils; import org.apache.royale.utils.SolidBorderUtil; import org.apache.royale.utils.StringTrimmer; + import org.apache.royale.core.IStrandWithModel; /** * The CSSTextButtonView class is the default view for @@ -102,7 +103,7 @@ package mx.controls.beads override public function set strand(value:IStrand):void { _strand = value; - textModel = value.getBeadByType(ImageAndTextModel) as ImageAndTextModel; + textModel = (value as IStrandWithModel).model as ImageAndTextModel; textModel.addEventListener("textChange", textChangeHandler); textModel.addEventListener("htmlChange", htmlChangeHandler); textModel.addEventListener("imageChange", imageChangeHandler); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CheckBoxView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CheckBoxView.as index 49f7c5c..8476fed 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CheckBoxView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/CheckBoxView.as @@ -31,6 +31,7 @@ package mx.controls.beads import org.apache.royale.core.IToggleButtonModel; import org.apache.royale.core.UIBase; import org.apache.royale.events.Event; + import org.apache.royale.core.IStrandWithModel; /** * The CheckBoxView class is the default view for @@ -110,7 +111,7 @@ package mx.controls.beads { super.strand = value; - _toggleButtonModel = value.getBeadByType(IToggleButtonModel) as IToggleButtonModel; + _toggleButtonModel = (value as IStrandWithModel).model as IToggleButtonModel; _toggleButtonModel.addEventListener("textChange", textChangeHandler); _toggleButtonModel.addEventListener("htmlChange", htmlChangeHandler); _toggleButtonModel.addEventListener("selectedChange", selectedChangeHandler); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as index 212a262..52d5c6a 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridColumnResizeBead.as @@ -66,7 +66,7 @@ package mx.controls.beads private var _view:org.apache.royale.html.beads.DataGridView; private var gridBase:ListBase; - + private var host:UIBase; /** * @copy org.apache.royale.core.IBead#strand * @@ -78,7 +78,7 @@ package mx.controls.beads public function set strand(value:IStrand):void { _strand = value; - var host:UIBase = _strand as UIBase; + host = _strand as UIBase; _view = host.view as org.apache.royale.html.beads.DataGridView; // need to get its initComplete handler to run first _overlay = new CompoundGraphic(); @@ -137,7 +137,7 @@ package mx.controls.beads // Also set up a listener on the model to know when the dataProvider has // changed which might affect the number of rows/columns and thus the // grid lines. - var model:IBeadModel = _strand.getBeadByType(IBeadModel) as IBeadModel; + var model:IBeadModel = host.model as IBeadModel; IEventDispatcher(model).addEventListener("dataProviderChanged", drawLines); // if the headerText gets changed, the overlay is removed, so re-apply it @@ -166,7 +166,7 @@ package mx.controls.beads */ protected function drawLines(event:Event):void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; var columns:Array = sharedModel.columns; var totalHeight:Number = _header.height; @@ -239,7 +239,7 @@ package mx.controls.beads */ private function mouseOverHandler(event:MouseEvent):void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; var columns:Array = sharedModel.columns; var totalHeight:Number = _header.height; @@ -353,7 +353,7 @@ package mx.controls.beads if (columnIndex == -1) return; - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; var columns:Array = sharedModel.columns; var oldWidth:Number = columns[columnIndex].columnWidth; var deltaWidth:Number = lastX - startX; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as index cd9dd47..c3d1eb2 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridItemRendererInitializer.as @@ -67,7 +67,7 @@ package mx.controls.beads if (!dgColumnList.grid) return; - var dgColumnListModel:DataGridColumnICollectionViewModel = dgColumnList.getBeadByType(DataGridColumnICollectionViewModel) as DataGridColumnICollectionViewModel; + var dgColumnListModel:DataGridColumnICollectionViewModel = dgColumnList.model as DataGridColumnICollectionViewModel; var dg:DataGrid = (dgColumnList.grid as DataGrid); var dataField:String = dg.columns[dgColumnListModel.columnIndex].dataField; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as index 86d2618..1cead99 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridLinesBeadForICollectionView.as @@ -39,19 +39,26 @@ package mx.controls.beads { super(); } - + /** + * @royaleignorecoercion mx.core.UIComponent + * + */ + protected function getHost():UIComponent + { + return _strand as UIComponent; + } override protected function handleInitComplete(event:Event):void { super.handleInitComplete(event); // column resizing - IEventDispatcher(_strand).addEventListener("layoutNeeded", drawLines); - IEventDispatcher(_strand).addEventListener("renderColumnsNeeded", drawLines); + getHost().addEventListener("layoutNeeded", drawLines); + getHost().addEventListener("renderColumnsNeeded", drawLines); } override protected function getDataProviderLength():int { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = getHost().model as IDataGridModel; var arrayList:ICollectionView = sharedModel.dataProvider as ICollectionView; return arrayList ? arrayList.length : 0; } @@ -68,7 +75,7 @@ package mx.controls.beads */ override protected function drawLines(event:Event):void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = getHost().model as IDataGridModel; var presentationModel:DataGridPresentationModel = _strand.getBeadByType(DataGridPresentationModel) as DataGridPresentationModel; var layoutParent:ILayoutHost = _area.getBeadByType(ILayoutHost) as ILayoutHost; var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase; @@ -115,7 +122,7 @@ package mx.controls.beads } if (isNaN(ww)) ww = 0; - var bgColors:Array = (_strand as UIComponent).getStyle("alternatingItemColors"); + var bgColors:Array = getHost().getStyle("alternatingItemColors"); var yy:Number = n * rowHeight; var bgFill0:SolidColor = new SolidColor(); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as index fe5985a..e271e45 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridView.as @@ -85,10 +85,10 @@ COMPILE::JS{ protected var columnClass:Class = DataGridColumn; public var visibleColumns:Array = []; - + private var host:IDataGrid; override protected function handleInitComplete(event:Event):void { - var host:IDataGrid = _strand as IDataGrid; + host = _strand as IDataGrid; if (host.model.columns == null && host.model.dataProvider != null) { @@ -172,7 +172,7 @@ COMPILE::JS{ //@todo check listeners are not already attached from previous occasion....here col.addEventListener("headerTextChanged", updateHeader); var list:DataGridColumnList = col.list as DataGridColumnList; - var adgColumnListModel:DataGridColumnICollectionViewModel = list.getBeadByType(DataGridColumnICollectionViewModel) as DataGridColumnICollectionViewModel; + var adgColumnListModel:DataGridColumnICollectionViewModel = list.model as DataGridColumnICollectionViewModel; adgColumnListModel.columnIndex = i; list.visible = col.visible; list.addEventListener(ItemClickEvent.ITEM_CLICK, itemClickHandler); @@ -208,7 +208,7 @@ COMPILE::JS{ */ override protected function handleDataProviderChanged(event:Event):void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; if (sharedModel.columns == null && sharedModel.dataProvider != null && sharedModel.dataProvider.length > 0) { generateCols(); @@ -226,7 +226,7 @@ COMPILE::JS{ private function registerRendererChange():void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; if (sharedModel.columns == null || sharedModel.dataProvider == null) return; for (var i:int=0; i < sharedModel.columns.length; i++) @@ -245,7 +245,7 @@ COMPILE::JS{ */ private function generateCols():void { - var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var sharedModel:IDataGridModel = host.model as IDataGridModel; if (sharedModel.dataProvider.length > 0) { var col:DataGridColumn; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as index f51ff32..dfde049 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as @@ -36,6 +36,7 @@ package mx.controls.beads import org.apache.royale.geom.Point; import org.apache.royale.utils.PointUtils; import mx.controls.DateField; + import org.apache.royale.html.util.getModelByType; /** * The NumericStepperView class overrides the Basic @@ -112,7 +113,7 @@ package mx.controls.beads { _popUp.selectedDate = dateField.parseFunction(_textInput.text, dateField.formatString); } - var popUpModel:IDateChooserModelWithChangeCheck = _popUp.getBeadByType(IDateChooserModelWithChangeCheck) as IDateChooserModelWithChangeCheck; + var popUpModel:IDateChooserModelWithChangeCheck = getModelByType(_popUp,IDateChooserModelWithChangeCheck) as IDateChooserModelWithChangeCheck; popUpModel.disableChangeCheck = true; var host:IPopUpHost = UIUtils.findPopUpHost(getHost()); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/MultiSelectionListView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/MultiSelectionListView.as index ac31a25..9e047bc 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/MultiSelectionListView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/MultiSelectionListView.as @@ -41,6 +41,7 @@ package mx.controls.beads import org.apache.royale.events.IEventDispatcher; import org.apache.royale.html.supportClasses.Border; import org.apache.royale.html.supportClasses.DataGroup; + import org.apache.royale.core.IStrandWithModel; /** * The List class creates the visual elements of the org.apache.royale.html.List @@ -68,10 +69,11 @@ package mx.controls.beads /** * @private * @royaleignorecoercion org.apache.royale.core.IMultiSelectionModel + * @royaleignorecoercion org.apache.royale.core.IStrandWithModel */ override protected function handleInitComplete(event:Event):void { - listModel = _strand.getBeadByType(IMultiSelectionModel) as IMultiSelectionModel; + listModel = (_strand as IStrandWithModel).model as IMultiSelectionModel; listModel.addEventListener("selectedIndicesChanged", selectionChangeHandler); listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); @@ -157,7 +159,7 @@ package mx.controls.beads { super.handleInitComplete(event); - listModel = _strand.getBeadByType(IMultiSelectionModel) as IMultiSelectionModel; + listModel = (_strand as IStrandWithModel).model as IMultiSelectionModel; listModel.addEventListener("selectedIndicesChanged", selectionChangeHandler); listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler); } diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/RadioButtonView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/RadioButtonView.as index 2486d21..7b86999 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/RadioButtonView.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/RadioButtonView.as @@ -34,6 +34,7 @@ package mx.controls.beads import org.apache.royale.events.Event; import mx.controls.RadioButton; + import org.apache.royale.html.util.getModelByType; /** * The RadioButtonView class creates the visual elements of the org.apache.royale.html.RadioButton @@ -114,7 +115,7 @@ package mx.controls.beads override public function set strand(value:IStrand):void { super.strand = value; - _toggleButtonModel = value.getBeadByType(IValueToggleButtonModel) as IValueToggleButtonModel; + _toggleButtonModel = getModelByType(value,IValueToggleButtonModel) as IValueToggleButtonModel; _toggleButtonModel.addEventListener("textChange", textChangeHandler); _toggleButtonModel.addEventListener("htmlChange", htmlChangeHandler); _toggleButtonModel.addEventListener("selectedValueChange", selectedValueChangeHandler); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/ListMultiSelectionMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/ListMultiSelectionMouseController.as index 376f55b..f274de8 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/ListMultiSelectionMouseController.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/ListMultiSelectionMouseController.as @@ -34,6 +34,7 @@ package mx.controls.beads.controllers import org.apache.royale.utils.getSelectionRenderBead; import org.apache.royale.utils.sendEvent; import org.apache.royale.core.Bead; + import org.apache.royale.html.util.getModelByType; /** * The ListMultiSelectionMouseController class is a controller for @@ -107,7 +108,7 @@ package mx.controls.beads.controllers override public function set strand(value:IStrand):void { _strand = value; - listModel = value.getBeadByType(IMultiSelectionModel) as IMultiSelectionModel; + listModel = getModelByType(value,IMultiSelectionModel) as IMultiSelectionModel; listView = value.getBeadByType(IListView) as IListView; listenOnStrand("itemAdded", handleItemAdded); listenOnStrand("itemRemoved", handleItemRemoved); diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as index a263405..cba07ab 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/AdvancedDataGridLayout.as @@ -57,14 +57,16 @@ package mx.controls.beads.layouts public function AdvancedDataGridLayout() { } - + /** + * @royaleignorecoercion org.apache.royale.core.UIBase + */ override protected function setHeaderWidths(columnWidths:Array):void { var header:IUIBase = (uiHost.view as IDataGridView).header; // fancier DG's will filter invisible columns and only put visible columns // in the bbmodel, so do all layout based on the bbmodel, not the set // of columns that may contain invisible columns - var bbmodel:ButtonBarModel = header.getBeadByType(ButtonBarModel) as ButtonBarModel; + var bbmodel:ButtonBarModel = (header as UIBase).model as ButtonBarModel; if (bbmodel.dataProvider && (bbmodel.dataProvider.length != columnWidths.length)) { // probably some grouped columns so recompute widths; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridHeaderLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridHeaderLayout.as index bd0b660..8c95b90 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridHeaderLayout.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/layouts/DataGridHeaderLayout.as @@ -123,7 +123,9 @@ public class DataGridHeaderLayout extends LayoutBase // Overridden methods // //-------------------------------------------------------------------------- - + /** + * @royaleignorecoercion org.apache.royale.core.IStrandWithModel + */ override public function layout():Boolean { // ignore other lifecycle layouts until the DP is set @@ -132,7 +134,7 @@ public class DataGridHeaderLayout extends LayoutBase var contentView:ILayoutView = layoutView; - var model:ButtonBarModel = (host as IStrand).getBeadByType(ButtonBarModel) as ButtonBarModel; + var model:ButtonBarModel = (_strand as IStrandWithModel).model as ButtonBarModel; if (model) { buttonWidths = model.buttonWidths; } diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as index b994c28..95d911e 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as @@ -360,7 +360,7 @@ public class DataGridItemRenderer extends StringItemRenderer { var listData:DataGridListData = this.listData as DataGridListData; var owner:DataGrid = listData.owner as DataGrid; - var dgModel:DataGridICollectionViewModel = owner.getBeadByType(DataGridICollectionViewModel) as DataGridICollectionViewModel; + var dgModel:DataGridICollectionViewModel = owner.model as DataGridICollectionViewModel; var column:DataGridColumn = dgModel.columns[listData.columnIndex]; super.data = value; diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as index a42324a..361a74b 100644 --- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as @@ -1024,17 +1024,9 @@ use namespace mx_internal; public function get presentationModel():IBead { if (_presentationModel == null) { - var bead:IBead = getBeadByType(IListPresentationModel); + var bead:IBead = loadBeadFromValuesManager(IListPresentationModel,"iListPresentationModel",this); if (bead) _presentationModel = bead as IListPresentationModel; - else - { - var c:Class = ValuesManager.valuesImpl.getValue(this, "iListPresentationModel"); - if (c) { - _presentationModel = new c() as IListPresentationModel; - addBead(_presentationModel as IBead); - } - } } return _presentationModel; diff --git a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/DatePickerView.as b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/DatePickerView.as index 461e455..e45ab11 100644 --- a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/DatePickerView.as +++ b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/DatePickerView.as @@ -62,7 +62,7 @@ package org.apache.royale.mobile.beads private function monthValue(model:RangeModelExtended, index:Number):String { - var dayModel:IDateChooserModel = _strand.getBeadByType(IDateChooserModel) as IDateChooserModel; + var dayModel:IDateChooserModel = host.model as IDateChooserModel; return String(dayModel.monthNames[index]); } @@ -75,7 +75,7 @@ package org.apache.royale.mobile.beads { return String(index); } - + private var host:UIBase; /** * @copy org.apache.royale.core.IBead#strand * @@ -89,8 +89,8 @@ package org.apache.royale.mobile.beads super.strand = value; _strand = value; - var host:UIBase = _strand as UIBase; - var model:IDateChooserModel = _strand.getBeadByType(IDateChooserModel) as IDateChooserModel; + host = _strand as UIBase; + var model:IDateChooserModel = host.model as IDateChooserModel; var today:Date = model.selectedDate; var third:int = int(host.width/3.0) @@ -161,7 +161,7 @@ package org.apache.royale.mobile.beads private function handleStepperChange(event:Event):void { - var model:IDateChooserModel = _strand.getBeadByType(IDateChooserModel) as IDateChooserModel; + var model:IDateChooserModel = host.model as IDateChooserModel; var newMonth:Number = _monthStepper.value; var newDay:Number = _dayStepper.value; diff --git a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/StackedViewManagerView.as index 3e028d6..ba7cfcb 100644 --- a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/StackedViewManagerView.as +++ b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/StackedViewManagerView.as @@ -62,12 +62,12 @@ package org.apache.royale.mobile.beads public function get toolBar():ToolBar { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; return model.toolBar; } public function set toolBar(value:ToolBar):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; model.toolBar = value; } @@ -79,7 +79,7 @@ package org.apache.royale.mobile.beads { super.strand = value; - var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; if (model.toolBarItems) { @@ -94,7 +94,7 @@ package org.apache.royale.mobile.beads { super.addViewElements(); - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; model.addEventListener("viewPushed", handlePushEvent); model.addEventListener("viewPopped", handlePopEvent); @@ -109,7 +109,7 @@ package org.apache.royale.mobile.beads private function handlePushEvent(event:Event):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; var n:int = model.views.length; if (n > 0) { showViewByIndex(n-1); @@ -118,7 +118,7 @@ package org.apache.royale.mobile.beads private function handlePopEvent(event:Event):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; var n:int = model.views.length; if (n > 0) { showViewByIndex(n-1); @@ -127,7 +127,7 @@ package org.apache.royale.mobile.beads public function showView(view:IViewManagerView):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; for(var i:int=0; i < model.views.length; i++) { if (view == model.views[i]) { showViewByIndex(i); @@ -138,7 +138,7 @@ package org.apache.royale.mobile.beads protected function showViewByIndex(index:int):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; if (_topView != null) { getHost().removeElement(_topView); diff --git a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/TabbedViewManagerView.as index 01b7c15..102b416 100644 --- a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/TabbedViewManagerView.as +++ b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/TabbedViewManagerView.as @@ -63,12 +63,12 @@ package org.apache.royale.mobile.beads public function get tabBar():TabBar { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; return model.tabBar; } public function set tabBar(value:TabBar):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; model.tabBar = value; } @@ -80,7 +80,7 @@ package org.apache.royale.mobile.beads { super.strand = value; - var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; // TabbedViewManager always has a TabBar var tbar:TabBar = new TabBar(); @@ -110,7 +110,7 @@ package org.apache.royale.mobile.beads */ protected function showViewByIndex(index:int):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; if (_currentView != null) { getHost().removeElement(_currentView); @@ -145,7 +145,7 @@ package org.apache.royale.mobile.beads private function handleButtonBarChange(event:Event):void { var newIndex:Number = tabBar.selectedIndex; - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; // doing this will trigger the selectedIndexChanged event which will // tell the strand to switch views diff --git a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ToggleSwitchView.as b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ToggleSwitchView.as index a95a76c..8bd26e1 100644 --- a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ToggleSwitchView.as +++ b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ToggleSwitchView.as @@ -21,12 +21,12 @@ package org.apache.royale.mobile.beads import org.apache.royale.core.IStrand; import org.apache.royale.core.IBeadView; import org.apache.royale.core.IToggleButtonModel; - import org.apache.royale.core.IUIBase; import org.apache.royale.core.UIBase; import org.apache.royale.svg.Rect; import org.apache.royale.graphics.SolidColor; import org.apache.royale.graphics.SolidColorStroke; import org.apache.royale.events.Event; + import org.apache.royale.core.IUIBase; /** * The ToggleSwitchView creates the element used to display the ToggleSwitch @@ -73,11 +73,13 @@ package org.apache.royale.mobile.beads { return _strand as IUIBase; } - public function set host(value:IUIBase):void + /** + * @royaleignorecoercion org.apache.royale.core.UIBase + */ + private function getHost():UIBase { - // not implemented; getter only. + return _strand as UIBase; } - private var _strand:IStrand; /** @@ -90,18 +92,18 @@ package org.apache.royale.mobile.beads public function set strand(value:IStrand):void { _strand = value; - UIBase(_strand).addEventListener("sizeChanged", sizeChangedHandler); - UIBase(_strand).addEventListener("widthChanged", sizeChangedHandler); - UIBase(_strand).addEventListener("heightChanged", sizeChangedHandler); + host.addEventListener("sizeChanged", sizeChangedHandler); + host.addEventListener("widthChanged", sizeChangedHandler); + host.addEventListener("heightChanged", sizeChangedHandler); - var model:IToggleButtonModel = value.getBeadByType(IToggleButtonModel) as IToggleButtonModel; + var model:IToggleButtonModel = getHost().model as IToggleButtonModel; model.addEventListener("selectedChange", toggleChangedHandler); boundingBox = new Rect(); - UIBase(host).addElement(boundingBox, false); + getHost().addElement(boundingBox, false); actualSwitch = new Rect(); - UIBase(host).addElement(actualSwitch, false); + getHost().addElement(actualSwitch, false); layoutChromeElements(); } @@ -135,7 +137,7 @@ package org.apache.royale.mobile.beads */ protected function sizeViewsToFitContentArea():void { - var model:IToggleButtonModel = _strand.getBeadByType(IToggleButtonModel) as IToggleButtonModel; + var model:IToggleButtonModel = getHost().model as IToggleButtonModel; boundingBox.x = 0; boundingBox.y = 0; diff --git a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ViewManagerViewBase.as b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ViewManagerViewBase.as index 98675d5..843f35f 100644 --- a/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ViewManagerViewBase.as +++ b/frameworks/projects/Mobile/src/main/royale/org/apache/royale/mobile/beads/ViewManagerViewBase.as @@ -72,12 +72,12 @@ package org.apache.royale.mobile.beads public function get navigationBar():NavigationBar { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; return model.navigationBar; } public function set navigationBar(value:NavigationBar):void { - var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; model.navigationBar = value; } @@ -89,7 +89,7 @@ package org.apache.royale.mobile.beads { super.strand = value; - var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel; + var model:ViewManagerModel = getHost().model as ViewManagerModel; // model.addEventListener("selectedIndexChanged", viewsChangedHandler); if (model.navigationBarItems) @@ -139,7 +139,7 @@ package org.apache.royale.mobile.beads // var contentAreaY:Number = 0; // var contentAreaHeight:Number = host.height; // -// var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; +// var model:ViewManagerModel = getHost().model as ViewManagerModel; // // if (_navigationBar) // { @@ -163,7 +163,7 @@ package org.apache.royale.mobile.beads protected function sizeViewsToFitContentArea():void { -// var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel; +// var model:ViewManagerModel = getHost().model as ViewManagerModel; // // var n:int = ViewManagerModel(model).views.length; // if (n > 0) {
