You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2022/01/02 21:12:39 UTC
[royale-asjs] 03/03: mx models
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 <ha...@in-tools.com>
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) {