You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2020/05/24 17:49:27 UTC
[royale-asjs] branch develop updated: Make mx comboboxes hide on
mousedownout
This is an automated email from the ASF dual-hosted git repository.
yishayw 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 426a93e Make mx comboboxes hide on mousedownout
426a93e is described below
commit 426a93e68d6ebe356df21e7b68bb7c60cdf539f3
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Sun May 24 20:49:17 2020 +0300
Make mx comboboxes hide on mousedownout
---
.../html/beads/HideComboPopupOnMouseDownBead.as | 2 +-
.../src/main/royale/mx/controls/ComboBox.as | 2 +
.../beads/HideComboPopupOnMouseDownBead.as | 70 +++-------------------
3 files changed, 11 insertions(+), 63 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as
index 27464c8..65afdab 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as
@@ -44,7 +44,7 @@ package org.apache.royale.html.beads
{
}
- private var _strand:IStrand;
+ protected var _strand:IStrand;
protected var viewBead:IComboBoxView;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBox.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBox.as
index 6c4225f..5f99a22 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBox.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/ComboBox.as
@@ -19,6 +19,7 @@
package mx.controls
{
+import mx.controls.beads.HideComboPopupOnMouseDownBead;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
//import mx.controls.listClasses.ListData;
@@ -659,6 +660,7 @@ public class ComboBox extends ComboBase
super();
if((model as ISelectionModel).labelField == null)
labelField = "label";
+ addBead(new HideComboPopupOnMouseDownBead());
// It it better to start out with an empty data provider rather than
// an undefined one. Otherwise, code in getDropdown() sets it to []
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
similarity index 51%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as
copy to frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
index 27464c8..c3aa009 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/HideComboPopupOnMouseDownBead.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/HideComboPopupOnMouseDownBead.as
@@ -16,17 +16,14 @@
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads
+package mx.controls.beads
{
import org.apache.royale.utils.callLater;
- import org.apache.royale.utils.loadBeadFromValuesManager;
- import org.apache.royale.core.IBead;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.core.IUIBase;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.events.MouseEvent;
- import org.apache.royale.html.beads.IComboBoxView;
+ import mx.core.FlexGlobals;
+ import org.apache.royale.html.beads.HideComboPopupOnMouseDownBead;
/**
* The HideComboPopupOnMouseDownBead can be used with ComboBox to make sure mouse down events
@@ -38,81 +35,30 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 9.3
*/
- public class HideComboPopupOnMouseDownBead implements IBead
+ public class HideComboPopupOnMouseDownBead extends org.apache.royale.html.beads.HideComboPopupOnMouseDownBead
{
- public function HideComboPopupOnMouseDownBead()
- {
- }
-
- private var _strand:IStrand;
-
- protected var viewBead:IComboBoxView;
-
- /**
- * @copy org.apache.royale.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- * @royaleignorecoercion org.apache.royale.html.beads.IComboBoxView
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- viewBead = _strand.getBeadByType(IComboBoxView) as IComboBoxView;
- if (viewBead) {
- finishSetup(null);
- } else {
- IEventDispatcher(_strand).addEventListener("viewChanged", finishSetup);
- }
- }
- /**
- * @royaleignorecoercion org.apache.royale.html.beads.IComboBoxView
- * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
- */
- protected function finishSetup(event:Event):void
- {
- if (viewBead == null) {
- viewBead = loadBeadFromValuesManager(IComboBoxView, "iBeadView", _strand) as IComboBoxView;
- }
- IEventDispatcher(viewBead.popUp).addEventListener("show", handlePopupShow);
- IEventDispatcher(viewBead.popUp).addEventListener("hide", handlePopupHide);
- }
-
- protected function handleControlMouseDown(event:MouseEvent):void
- {
- event.stopImmediatePropagation();
- }
-
/**
* @royaleignorecoercion org.apache.royale.core.IUIBase
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
*/
- protected function handlePopupShow(event:Event):void
+ override protected function handlePopupShow(event:Event):void
{
IEventDispatcher(viewBead.popUp).addEventListener(MouseEvent.MOUSE_DOWN, handleControlMouseDown);
IEventDispatcher(_strand).addEventListener(MouseEvent.MOUSE_DOWN, handleControlMouseDown);
callLater(function():void {
- IUIBase(viewBead.popUp).topMostEventDispatcher.addEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
+ (FlexGlobals.topLevelApplication as IEventDispatcher).addEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
});
}
- protected function handleTopMostEventDispatcherMouseDown(event:MouseEvent):void
- {
- viewBead.popUpVisible = false;
- }
-
/**
* @royaleignorecoercion org.apache.royale.core.IUIBase
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
*/
- protected function handlePopupHide(event:Event):void
+ override protected function handlePopupHide(event:Event):void
{
IEventDispatcher(viewBead.popUp).removeEventListener(MouseEvent.MOUSE_DOWN, handleControlMouseDown);
IEventDispatcher(_strand).removeEventListener(MouseEvent.MOUSE_DOWN, handleControlMouseDown);
- IUIBase(viewBead.popUp).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
+ (FlexGlobals.topLevelApplication as IEventDispatcher).removeEventListener(MouseEvent.MOUSE_DOWN, handleTopMostEventDispatcherMouseDown);
}
}
}