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...