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/03 10:59:54 UTC

[royale-asjs] branch develop updated: rest of the 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


The following commit(s) were added to refs/heads/develop by this push:
     new 9108e28  rest of the models
9108e28 is described below

commit 9108e2894e2fd2e28eb3b0598656d147d6b5364b
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon Jan 3 12:59:44 2022 +0200

    rest of the models
---
 .../beads/TabsItemRendererFactoryForArrayData.as   |  3 +-
 .../mdl/beads/TabsItemRendererInitializer.as       |  5 ++-
 .../beads/controllers/DropDownListController.as    |  2 +-
 .../apache/royale/mdl/beads/views/SliderView.as    |  2 +-
 .../CollectionChangeUpdateForArrayListData.as      |  5 ++-
 .../beads/controllers/DropDownListController.as    | 50 ++++++++++++++++------
 .../html/customControls/beads/DataGridView.as      | 20 ++++++---
 .../beads/DataItemRendererFactoryForColumnData.as  | 11 ++++-
 8 files changed, 68 insertions(+), 30 deletions(-)

diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
index 74bb8cf..041d236 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererFactoryForArrayData.as
@@ -36,6 +36,7 @@ package org.apache.royale.mdl.beads
     import org.apache.royale.mdl.supportClasses.ITabItemRenderer;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
 	import org.apache.royale.core.IHasLabelField;
+	import org.apache.royale.html.util.getModelByType;
 
     [Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")]
 
@@ -97,7 +98,7 @@ package org.apache.royale.mdl.beads
         {
             IEventDispatcher(_strand).removeEventListener("initComplete",finishSetup);
 
-            dataProviderModel = _strand.getBeadByType(ITabModel) as ITabModel;
+            dataProviderModel = getModelByType(_strand,ITabModel) as ITabModel;
             var listView:IListView = _strand.getBeadByType(IListView) as IListView;
             dataGroup = listView.dataGroup;
             dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
index 2b15602..323edfe 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/TabsItemRendererInitializer.as
@@ -34,6 +34,7 @@ package org.apache.royale.mdl.beads
     import org.apache.royale.mdl.supportClasses.ITabItemRenderer;
     import org.apache.royale.mdl.beads.models.ITabModel;
     import org.apache.royale.core.IHasLabelField;
+    import org.apache.royale.html.util.getModelByType;
     
 	/**
 	 *  The ListItemRendererInitializer class initializes item renderers
@@ -82,9 +83,9 @@ package org.apache.royale.mdl.beads
 		{	
 			_strand = value;
             var presentationModel:IListPresentationModel = _strand.getBeadByType(IListPresentationModel) as IListPresentationModel;            
-            dataProviderModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
+            dataProviderModel = getModelByType(_strand,IDataProviderModel) as IDataProviderModel;
             _labelField = dataProviderModel.labelField;            
-            var model:ITabModel = _strand.getBeadByType(ITabModel) as ITabModel;
+            var model:ITabModel = getModelByType(_strand,ITabModel) as ITabModel;
             tabsIdField = model.tabIdField;
 		}
 		
diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/controllers/DropDownListController.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/controllers/DropDownListController.as
index c8cdf99..f99cc53 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/controllers/DropDownListController.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/controllers/DropDownListController.as
@@ -73,7 +73,7 @@ package org.apache.royale.mdl.beads.controllers
 
             var dropDownList:DropDownList = (value as DropDownList);
 
-            model = _strand.getBeadByType(IDropDownListModel) as DropDownListModel;
+            model = dropDownList.model as DropDownListModel;
 
 			COMPILE::JS
             {
diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/views/SliderView.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/views/SliderView.as
index 7d6c7b2..c9fe0ca 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/views/SliderView.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/beads/views/SliderView.as
@@ -99,7 +99,7 @@ package org.apache.royale.mdl.beads.views
 			super.strand = value;
 
             var host:UIBase = UIBase(_strand);
-            rangeModel = _strand.getBeadByType(IBeadModel) as IRangeModel;
+            rangeModel = host.model as IRangeModel;
 
             COMPILE::SWF {
 				_track = new Button();
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/CollectionChangeUpdateForArrayListData.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/CollectionChangeUpdateForArrayListData.as
index f56e5de..b1aa089 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/CollectionChangeUpdateForArrayListData.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/CollectionChangeUpdateForArrayListData.as
@@ -28,6 +28,7 @@ package spark.components.beads
 	import org.apache.royale.utils.sendBeadEvent;
 	import mx.events.CollectionEvent;
 	import spark.components.DataGroup;
+	import org.apache.royale.html.util.getModelByType;
 
 
     /**
@@ -87,7 +88,7 @@ package spark.components.beads
 			IEventDispatcher(_strand).removeEventListener("initComplete", initComplete);
 
 			var contentView : DataGroup = (_strand.getBeadByType(IViewport) as IViewport).contentView as DataGroup;
-			_dataProviderModel = contentView.getBeadByType(IDataProviderModel) as IDataProviderModel;
+			_dataProviderModel = getModelByType(contentView,IDataProviderModel) as IDataProviderModel;
 			labelField = _dataProviderModel.labelField;
 
 			dataProviderModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
@@ -151,7 +152,7 @@ package spark.components.beads
 		{
 			if (_dataProviderModel == null) {
 				var contentView : DataGroup = (_strand.getBeadByType(IViewport) as IViewport).contentView as DataGroup;
-				_dataProviderModel = contentView.getBeadByType(IDataProviderModel) as IDataProviderModel;
+				_dataProviderModel = getModelByType(contentView,IDataProviderModel) as IDataProviderModel;
 			}
 			return _dataProviderModel;
 		}
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
index 0530a1c..2925f02 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
@@ -35,6 +35,7 @@ import org.apache.royale.events.MouseEvent;
 import org.apache.royale.geom.Point;
 import org.apache.royale.html.beads.IDropDownListView;
 import org.apache.royale.utils.PointUtils;
+import org.apache.royale.core.IStrandWithModel;
 
 /**
  *  @private
@@ -61,13 +62,21 @@ public class DropDownListController implements IBead, IBeadController
         _strand = value;
         IEventDispatcher(value).addEventListener(org.apache.royale.events.MouseEvent.CLICK, clickHandler);
     }
-    
+
+    /**
+     * @royaleignorecoercion mx.core.UIComponent
+     * @royaleignorecoercion org.apache.royale.core.UIBase
+     * @royaleignorecoercion org.apache.royale.core.ISelectionModel
+     * @royaleignorecoercion org.apache.royale.html.beads.IDropDownListView
+     */
     private function clickHandler(event:org.apache.royale.events.MouseEvent):void
     {
+        var host:UIBase = _strand as UIBase;
+        var popup:UIComponent = viewBead.popUp as UIComponent;
         var viewBead:IDropDownListView = _strand.getBeadByType(IDropDownListView) as IDropDownListView;
-        var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
-        var popUpModel:ISelectionModel = UIBase(viewBead.popUp).model as ISelectionModel;
-        IUIBase(viewBead.popUp).width = IUIBase(_strand).width;
+        var selectionModel:ISelectionModel = host.model as ISelectionModel;
+        var popUpModel:ISelectionModel = popup.model as ISelectionModel;
+        popup.width = host.width;
         popUpModel.dataProvider = selectionModel.dataProvider;
         popUpModel.labelField = selectionModel.labelField;// adds to display list as well
         popUpModel.selectedIndex = selectionModel.selectedIndex;
@@ -75,23 +84,29 @@ public class DropDownListController implements IBead, IBeadController
         
         if (viewBead.popUpVisible)
         {
-            var pt:Point = new Point(0, IUIBase(_strand).height);
+            var pt:Point = new Point(0, host.height);
             pt = PointUtils.localToGlobal(pt, _strand);
-            pt = PointUtils.globalToLocal(pt, IUIBase(viewBead.popUp).parent);
-            IUIBase(viewBead.popUp).x = pt.x;
-            IUIBase(viewBead.popUp).y = pt.y;
+            pt = PointUtils.globalToLocal(pt, popup.parent);
+            popup.x = pt.x;
+            popup.y = pt.y;
             IEventDispatcher(viewBead.popUp).addEventListener("change", changeHandler);
-            UIComponent(viewBead.popUp).callLater(registerDismissHandler);
+            popup.callLater(registerDismissHandler);
         }
     }
-    
-    // The browser send clicks to listeners added as the event is being dispatched, so if we don't
-    // defer, we pick up the click that opened the dropdown.
+    /**
+     * The browser send clicks to listeners added as the event is being dispatched, so if we don't
+     * defer, we pick up the click that opened the dropdown.
+     * @royaleignorecoercion org.apache.royale.core.IUIBase
+     * @royaleignorecoercion org.apache.royale.core.IStrandWithModel
+     */
     private function registerDismissHandler():void
     {
         IUIBase(_strand).topMostEventDispatcher.addEventListener(org.apache.royale.events.MouseEvent.CLICK, dismissHandler);
     }
-    
+    /**
+     * @royaleignorecoercion org.apache.royale.core.IUIBase
+     * @royaleignorecoercion org.apache.royale.html.beads.IDropDownListView
+     */
     private function dismissHandler(event:org.apache.royale.events.MouseEvent):void
     {
         if (event.target == _strand || event.target.parent == _strand) return;
@@ -101,11 +116,18 @@ public class DropDownListController implements IBead, IBeadController
         viewBead.popUpVisible = false;
     }
     
+    /**
+     * @royaleignorecoercion org.apache.royale.core.IStrandWithModel
+     * @royaleignorecoercion org.apache.royale.core.IUIBase
+     * @royaleignorecoercion org.apache.royale.core.ISelectionModel
+     * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+     * @royaleignorecoercion org.apache.royale.html.beads.IDropDownListView
+     */
     private function changeHandler(event:Event):void
     {
         var viewBead:IDropDownListView = _strand.getBeadByType(IDropDownListView) as IDropDownListView;
         viewBead.popUpVisible = false;
-        var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+        var selectionModel:ISelectionModel = (_strand as IStrandWithModel).model as ISelectionModel;
         var popUpModel:ISelectionModel = UIBase(viewBead.popUp).model as ISelectionModel;
         selectionModel.selectedIndex = popUpModel.selectedIndex;
         IEventDispatcher(_strand).dispatchEvent(new Event("change"));
diff --git a/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataGridView.as b/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataGridView.as
index 4d0a976..8c1dfc3 100644
--- a/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataGridView.as
+++ b/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataGridView.as
@@ -51,30 +51,36 @@ package org.apache.royale.html.customControls.beads
 		private var columns:Array;
 		
 		private var _strand:IStrand;
+
+    /**
+     * @royaleignorecoercion org.apache.royale.core.UIBase
+     * @royaleignorecoercion org.apache.royale.core.IDataGridModel
+     * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+     */
 		public function set strand(value:IStrand):void
 		{
 			_strand = value;
 			
 //			background = new Shape();
 //			DisplayObjectContainer(_strand).addChild(background);
-			
+			var host:UIBase = value as UIBase;
 			var pm:IDataGridPresentationModel = _strand.getBeadByType(IDataGridPresentationModel) as IDataGridPresentationModel;
 			buttonBarModel = new ArraySelectionModel();
 			buttonBarModel.dataProvider = pm.columnLabels;
 			buttonBar = new ButtonBar();
 			buttonBar.addBead(buttonBarModel);
 			buttonBar.height = 20;
-			buttonBar.width = UIBase(_strand).width;
-			UIBase(_strand).addElement(buttonBar);
+			buttonBar.width = host.width;
+			host.addElement(buttonBar);
 			
 			columnContainer = new Container();
 			var layout:HorizontalLayout = new HorizontalLayout();
 			columnContainer.addBead(layout);
-			UIBase(_strand).addElement(columnContainer);
+			host.addElement(columnContainer);
 			
-			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
-			var columnWidth:Number = UIBase(_strand).width / pm.columnLabels.length;
-			var columnHeight:Number = UIBase(_strand).height - buttonBar.height;
+			var sharedModel:IDataGridModel = host.model as IDataGridModel;
+			var columnWidth:Number = host.width / pm.columnLabels.length;
+			var columnHeight:Number = host.height - buttonBar.height;
 			
 			columns = new Array();
 			for(var i:int=0; i < pm.columnLabels.length; i++) {
diff --git a/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataItemRendererFactoryForColumnData.as b/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataItemRendererFactoryForColumnData.as
index e4b85d2..d360fc9 100644
--- a/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataItemRendererFactoryForColumnData.as
+++ b/manualtests/DataGridXcompile/src/org/apache/royale/html/customControls/beads/DataItemRendererFactoryForColumnData.as
@@ -25,6 +25,7 @@ package org.apache.royale.html.customControls.beads
 	import org.apache.royale.core.IItemRendererParent;
 	import org.apache.royale.core.ISelectionModel;
 	import org.apache.royale.core.IStrand;
+	import org.apache.royale.core.IStrandWithModel;
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
@@ -41,16 +42,22 @@ package org.apache.royale.html.customControls.beads
 		
 		private var _strand:IStrand;
 		
+    /**
+     * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory
+     * @royaleignorecoercion org.apache.royale.core.IStrandWithModel
+     * @royaleignorecoercion org.apache.royale.html.beads.IDropDownListView
+     */
 		public function set strand(value:IStrand):void
 		{
 			_strand = value;
-			selectionModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
+			selectionModel = (value as IStrandWithModel).model as ISelectionModel;
 			var listView:IListView = value.getBeadByType(IListView) as IListView;
 			dataGroup = listView.dataGroup;
 			selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
-			
 			if (!itemRendererFactory)
 			{
+			// Harbs @1/3/22 Not sure this is right. It should probably use loadBeadFromValuesManager
+			// which first does a bead lookup in case it already exist
 				var c:Class = ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory");
 				_itemRendererFactory = (new c()) as IItemRendererClassFactory;
 				_strand.addBead(_itemRendererFactory);