You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/03/04 18:52:10 UTC

[royale-asjs] branch develop updated: jewel-combobox: refactor view to use "host"

This is an automated email from the ASF dual-hosted git repository.

carlosrovira 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 f24c311  jewel-combobox: refactor view to use "host"
f24c311 is described below

commit f24c3113d3df5bb4fe62bffba587df1c4dcdef9a
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Wed Mar 4 19:52:00 2020 +0100

    jewel-combobox: refactor view to use "host"
---
 .../royale/jewel/beads/views/ComboBoxView.as       | 40 ++++++++--------------
 1 file changed, 14 insertions(+), 26 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
index f3e3cdc..d4711ba 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
@@ -33,10 +33,8 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.core.IComboBoxModel;
 	import org.apache.royale.core.IParent;
 	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.StyledUIBase;
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
-	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.html.util.getLabelFromData;
 	import org.apache.royale.jewel.Button;
 	import org.apache.royale.jewel.ComboBox;
@@ -45,7 +43,6 @@ package org.apache.royale.jewel.beads.views
 	import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView;
 	import org.apache.royale.jewel.beads.models.IJewelSelectionModel;
 	import org.apache.royale.jewel.supportClasses.combobox.ComboBoxPopUp;
-	import org.apache.royale.jewel.supportClasses.combobox.IComboBoxPresentationModel;
 	import org.apache.royale.utils.UIUtils;
 
 	/**
@@ -125,8 +122,6 @@ package org.apache.royale.jewel.beads.views
 		{
 			super.strand = value;
 
-			var parent:IParent = _strand as StyledUIBase;
-
 			_textinput = new TextInput();
             /*COMPILE::JS {
                 _textinput.element.addEventListener('blur', handleFocusOut);
@@ -140,32 +135,25 @@ package org.apache.royale.jewel.beads.views
 
 			initSize();
 
+			var parent:IParent = host as ComboBox;
 			parent.addElement(_textinput);
 			parent.addElement(_button);
-
-
-			listenOnStrand("sizeChanged", handleSizeChange);
-			listenOnStrand("initComplete", initCompleteHandler);
-		}
-
-		protected function initCompleteHandler(event:Event):void
-		{
-			IEventDispatcher(_strand).removeEventListener("initComplete",initCompleteHandler);
-			model = _strand.getBeadByType(IComboBoxModel) as IComboBoxModel;
-			_presentationModel = (_strand as ComboBox).presentationModel;
+			
+			model = host.getBeadByType(IComboBoxModel) as IComboBoxModel;
 
 			if (model is IJewelSelectionModel) {
 				//do this here as well as in the controller,
 				//to cover possible variation in the order of bead instantiation
 				//this avoids the need to redispatch new event clones at the component level in the controller
-                IJewelSelectionModel(model).dispatcher = IEventDispatcher(_strand);
+                IJewelSelectionModel(model).dispatcher = host;
 			}
 			model.addEventListener("selectionChanged", handleItemChange);
 			model.addEventListener("dataProviderChanged", itemChangeAction);
+			
+			listenOnStrand("sizeChanged", handleSizeChange);
 		}
 
 		private var model:IComboBoxModel;
-		private var _presentationModel:IComboBoxPresentationModel;
 
 		private var _popUpClass:Class;
 		/**
@@ -192,20 +180,20 @@ package org.apache.royale.jewel.beads.views
 				if (_comboPopUp == null) {
                     if(!_popUpClass)
                     {
-                        _popUpClass = ValuesManager.valuesImpl.getValue(_strand, "iPopUp") as Class;
+                        _popUpClass = ValuesManager.valuesImpl.getValue(host, "iPopUp") as Class;
                     }
 
                     _comboPopUp = new _popUpClass() as ComboBoxPopUp;
-					_comboPopUp.addBead(_presentationModel);
+					_comboPopUp.addBead((host as ComboBox).presentationModel);
 					_comboPopUp.model = model;
 					
 					// if  user defines item render for combo must be pased to popup list
-					var itemRendererClass:Class = ValuesManager.valuesImpl.getValue(_strand, "iItemRenderer") as Class;
+					var itemRendererClass:Class = ValuesManager.valuesImpl.getValue(host, "iItemRenderer") as Class;
 					if(itemRendererClass != null)
 						_comboPopUp.itemRendererClass = itemRendererClass;
 					
 					UIUtils.addPopUp(_comboPopUp, host);
-                    // var popupHost:IPopUpHost = UIUtils.findPopUpHost(_strand as IUIBase);
+                    // var popupHost:IPopUpHost = UIUtils.findPopUpHost(host);
                     // popupHost.popUpParent.addElement(_comboPopUp);
 
                     // popup is ComboBoxPopUp that fills 100% of browser window-> We want the internal List inside its view to adjust height
@@ -280,7 +268,7 @@ package org.apache.royale.jewel.beads.views
 		 */
 		protected function itemChangeAction(event:Event = null):void
 		{
-			var model:IComboBoxModel = _strand.getBeadByType(IComboBoxModel) as IComboBoxModel;
+			var model:IComboBoxModel = host.getBeadByType(IComboBoxModel) as IComboBoxModel;
 			_textinput.text = getLabelFromData(model, model.selectedItem);
 		}
 
@@ -337,8 +325,8 @@ package org.apache.royale.jewel.beads.views
 				if(outerWidth >= ResponsiveSizes.TABLET_BREAKPOINT)
 				{
 					var origin:Point = new Point(0, button.y + button.height - top);
-					var relocated:Point = positionInsideBoundingClientRect(_strand, _list, origin);
-					var point:Point = PointUtils.localToGlobal(origin, _strand);
+					var relocated:Point = positionInsideBoundingClientRect(host, _list, origin);
+					var point:Point = PointUtils.localToGlobal(origin, host);
 					
 					// by default list appear below textinput
 
@@ -346,7 +334,7 @@ package org.apache.royale.jewel.beads.views
 					if(relocated.y < point.y)
 					{
 						var origin2:Point = new Point(0, button.y - _list.height - top);
-						var relocated2:Point = positionInsideBoundingClientRect(_strand, _list, origin2);
+						var relocated2:Point = positionInsideBoundingClientRect(host, _list, origin2);
 						_list.y = relocated2.y;
 					
 						//if start to cover input...