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/05/05 16:20:17 UTC
[royale-asjs] branch develop updated: jewel-combobox: add
"popUpOpened" and "popUpClosed"
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 2362094 jewel-combobox: add "popUpOpened" and "popUpClosed"
2362094 is described below
commit 23620944d953824cedfa3d88fcbe3ed833c0d57b
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Tue May 5 18:20:12 2020 +0200
jewel-combobox: add "popUpOpened" and "popUpClosed"
---
.../royale/org/apache/royale/jewel/ComboBox.as | 22 ++++++++++++++++++++++
.../jewel/beads/controls/combobox/SearchFilter.as | 12 ++++++++++--
.../royale/jewel/beads/views/ComboBoxView.as | 16 ++++++++++------
3 files changed, 42 insertions(+), 8 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
index ee2bfdf..d408f83 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/ComboBox.as
@@ -38,6 +38,28 @@ package org.apache.royale.jewel
* @productversion Royale 0.9.4
*/
[Event(name="change", type="org.apache.royale.events.Event")]
+
+ /**
+ * Dispatched when the popup is opened.
+ *
+ * @toplevel
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.8
+ */
+ [Event(name="popUpOpened", type="org.apache.royale.events.Event")]
+
+ /**
+ * Dispatched when the popup is closed.
+ *
+ * @toplevel
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.8
+ */
+ [Event(name="popUpClosed", type="org.apache.royale.events.Event")]
/**
* The ComboBox class is a component that displays an input field and
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
index f815310..5049a9b 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
@@ -82,7 +82,9 @@ package org.apache.royale.jewel.beads.controls.combobox
override protected function onBeadsAdded(event:Event):void{
IEventDispatcher(_strand).addEventListener('dismissPopUp', removeListListeners);
-
+ IEventDispatcher(_strand).addEventListener('popUpOpened', popUpOpenedHandler);
+ IEventDispatcher(_strand).addEventListener('popUpClosed', popUpClosedHandler);
+
comboView = event.target.view as IComboBoxView;
if (comboView)
{
@@ -99,9 +101,15 @@ package org.apache.royale.jewel.beads.controls.combobox
override protected function onInputFocus(event:Event):void{
if (!comboView.popUpVisible)
comboView.popUpVisible = true;
-
+ }
+
+ protected function popUpOpenedHandler():void {
// fill "list" with the internal list in the combobox popup
list = comboView.popup.view.list;
}
+
+ protected function popUpClosedHandler():void {
+ list = null;
+ }
}
}
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 546eeab..3bb8583 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
@@ -45,6 +45,7 @@ package org.apache.royale.jewel.beads.views
import org.apache.royale.jewel.beads.models.IJewelSelectionModel;
import org.apache.royale.jewel.supportClasses.combobox.ComboBoxPopUp;
import org.apache.royale.utils.UIUtils;
+ import org.apache.royale.utils.sendStrandEvent;
/**
* The ComboBoxView class creates the visual elements of the org.apache.royale.jewel.ComboBox
@@ -218,6 +219,8 @@ package org.apache.royale.jewel.beads.views
}
setTimeout(prepareForPopUp, 300);
+ sendStrandEvent(_strand, "popUpOpened");
+
autoResizeHandler();
}
}
@@ -229,6 +232,7 @@ package org.apache.royale.jewel.beads.views
window.removeEventListener('resize', autoResizeHandler, false);
}
_comboPopUp = null;
+ sendStrandEvent(_strand, "popUpClosed");
}
}
@@ -236,12 +240,12 @@ package org.apache.royale.jewel.beads.views
{
COMPILE::JS
{
- //check here for non-null in case popUpVisible was toggled off before timeout runs
- if (_comboPopUp != null) {
- _comboPopUp.element.classList.add("open");
- //avoid scroll in html
- document.body.classList.add("viewport");
- }
+ //check here for non-null in case popUpVisible was toggled off before timeout runs
+ if (_comboPopUp != null) {
+ _comboPopUp.element.classList.add("open");
+ //avoid scroll in html
+ document.body.classList.add("viewport");
+ }
}
}