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 43956a7f71 Emulation - make sure drop mouse events are dispatched from
list based components
43956a7f71 is described below
commit 43956a7f71d450a9fb4f6a45bc66d49e829abcac
Author: Yishay Weiss <[email protected]>
AuthorDate: Sun Oct 16 14:07:44 2022 +0300
Emulation - make sure drop mouse events are dispatched from list based
components
---
.../beads/SingleSelectionDropTargetBead.as | 4 ++--
.../beads/TreeSingleSelectionDropTargetBead.as | 4 ++--
.../royale/mx/controls/listClasses/ListBase.as | 22 +++++++++++++++++++++-
3 files changed, 25 insertions(+), 5 deletions(-)
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/SingleSelectionDropTargetBead.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/SingleSelectionDropTargetBead.as
index 3360e98fe9..30e94a218b 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/SingleSelectionDropTargetBead.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/SingleSelectionDropTargetBead.as
@@ -24,6 +24,7 @@ package mx.controls.beads
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.IChild;
import org.apache.royale.core.IDataProviderModel;
+ import org.apache.royale.utils.getOrAddBeadByType;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.ItemRendererOwnerViewBead;
import org.apache.royale.core.IParent;
@@ -153,8 +154,7 @@ package mx.controls.beads
{
_strand = value;
- _dropController = new DropMouseController();
- _strand.addBead(_dropController);
+ _dropController =
getOrAddBeadByType(DropMouseController, value) as DropMouseController;
_dropController.addEventListener(DragEvent.DRAG_ENTER,
handleDragEnter);
_dropController.addEventListener(DragEvent.DRAG_EXIT,
handleDragExit);
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeSingleSelectionDropTargetBead.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeSingleSelectionDropTargetBead.as
index aac294ce0b..b089f7eef9 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeSingleSelectionDropTargetBead.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/TreeSingleSelectionDropTargetBead.as
@@ -20,6 +20,7 @@ package mx.controls.beads
{
import mx.collections.IList;
+ import org.apache.royale.utils.getOrAddBeadByType;
import org.apache.royale.core.DropType;
import org.apache.royale.core.IBead;
import org.apache.royale.core.IDataProviderModel;
@@ -148,8 +149,7 @@ package mx.controls.beads
{
_strand = value;
- _dropController = new DropMouseController();
- _strand.addBead(_dropController);
+ _dropController =
getOrAddBeadByType(DropMouseController, value) as DropMouseController;
_dropController.addEventListener(DragEvent.DRAG_ENTER,
handleDragEnter);
_dropController.addEventListener(DragEvent.DRAG_EXIT,
handleDragExit);
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
index 312e17e336..f94d2a4c42 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
@@ -19,6 +19,7 @@
package mx.controls.listClasses
{
+import org.apache.royale.utils.getOrAddBeadByType;
import mx.collections.ArrayCollection;
import mx.collections.ICollectionView;
import mx.collections.IList;
@@ -60,6 +61,11 @@ import org.apache.royale.utils.loadBeadFromValuesManager;
import mx.controls.dataGridClasses.DataGridListData;
import mx.events.FlexEvent;
import org.apache.royale.core.IHasLabelField;
+import org.apache.royale.html.beads.controllers.DropMouseController;
+import org.apache.royale.events.IEventDispatcher;
+import org.apache.royale.utils.sendStrandEvent;
+import mx.core.DragSource;
+import org.apache.royale.events.DragEvent;
use namespace mx_internal;
@@ -955,9 +961,23 @@ use namespace mx_internal;
// were made; these are just defaults extracted from CSS.
loadBeadFromValuesManager(IDataProviderItemRendererMapper,
"iDataProviderItemRendererMapper", this);
loadBeadFromValuesManager(IItemRendererClassFactory,
"iItemRendererClassFactory", this);
+ // Make sure list based components dispatch drop events to
potential listeners
+ var dropMouseController:IEventDispatcher =
getOrAddBeadByType(DropMouseController, this) as IEventDispatcher;
+
dropMouseController.addEventListener(org.apache.royale.events.DragEvent.DRAG_ENTER,
handleDropControllerEvent);
+
dropMouseController.addEventListener(org.apache.royale.events.DragEvent.DRAG_EXIT,
handleDropControllerEvent);
+
dropMouseController.addEventListener(org.apache.royale.events.DragEvent.DRAG_OVER,
handleDropControllerEvent);
+
dropMouseController.addEventListener(org.apache.royale.events.DragEvent.DRAG_DROP,
handleDropControllerEvent);
dispatchEvent(new Event("initComplete"));
}
+
+
+ private function
handleDropControllerEvent(event:org.apache.royale.events.DragEvent):void
+ {
+ var dragInitiator:IUIComponent; // TODO...
+ var dragEvent:mx.events.DragEvent = new
mx.events.DragEvent(event.type, false, true, dragInitiator,
org.apache.royale.events.DragEvent.dragSource as DragSource);
+ dispatchEvent(dragEvent);
+ }
/*
* IItemRendererProvider
@@ -1167,7 +1187,7 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- public function hideDropFeedback(event:DragEvent):void
+ public function hideDropFeedback(event:mx.events.DragEvent):void
{
//To Do
trace("hideDropFeedback is not implemented");