You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2020/07/05 19:41:13 UTC

[royale-asjs] branch develop updated: Cleaned up casting

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

harbs 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 0f282c9  Cleaned up casting
0f282c9 is described below

commit 0f282c96520fb7b41dec957a7366f9557fbdd3ca
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jul 5 22:40:56 2020 +0300

    Cleaned up casting
---
 .../royale/html/beads/ButtonBarReorderBead.as      | 48 +++++++++++++++-------
 .../royale/html/beads/DataGridColumnReorderView.as |  9 +++-
 .../royale/html/beads/DataGridDragDropBead.as      |  3 ++
 .../royale/html/beads/DataGridDrawingLayerBead.as  |  4 +-
 .../html/beads/DataGridWithDrawingLayerLayout.as   | 11 +++--
 .../apache/royale/html/beads/DragDropListView.as   | 11 ++---
 .../html/beads/MultiSelectionDragSourceBead.as     |  9 ++++
 .../html/beads/MultiSelectionTreeDragSourceBead.as |  2 +
 .../html/beads/OutOfApplicationDropTargetBead.as   |  1 +
 .../beads/SensitiveMultiSelectionDropTargetBead.as | 16 +++++++-
 .../SensitiveSingleSelectionDropTargetBead.as      | 16 +++++++-
 .../html/beads/SingleSelectionDragImageBead.as     |  4 +-
 .../html/beads/SingleSelectionDragSourceBead.as    |  5 +++
 .../html/beads/controllers/DragMouseController.as  |  4 +-
 .../html/beads/controllers/DropMouseController.as  | 23 ++++++-----
 .../OutOfApplicationDropMouseController.as         | 10 ++++-
 16 files changed, 130 insertions(+), 46 deletions(-)

diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
index a8d1528..f8ee3cb 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/ButtonBarReorderBead.as
@@ -94,22 +94,22 @@ package org.apache.royale.html.beads
 
 			_dragController = new DragMouseController();
 			_strand.addBead(_dragController);
+			var host:IEventDispatcher = _strand as IEventDispatcher;
+			host.removeEventListener(DragEvent.DRAG_START, handleDragStart);
+			host.removeEventListener(DragEvent.DRAG_MOVE, handleDragMove);
+			host.removeEventListener(DragEvent.DRAG_END, handleDragEnd);
 
-			IEventDispatcher(_strand).removeEventListener(DragEvent.DRAG_START, handleDragStart);
-			IEventDispatcher(_strand).removeEventListener(DragEvent.DRAG_MOVE, handleDragMove);
-			IEventDispatcher(_strand).removeEventListener(DragEvent.DRAG_END, handleDragEnd);
-
-			IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_START, handleDragStart);
-			IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
-			IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_END, handleDragEnd);
+			host.addEventListener(DragEvent.DRAG_START, handleDragStart);
+			host.addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
+			host.addEventListener(DragEvent.DRAG_END, handleDragEnd);
 
 			_dropController = new DropMouseController();
 			_strand.addBead(_dropController);
 
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_OVER, handleDragOver);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
+			_dropController.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
+			_dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
+			_dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
+			_dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
 		}
 
 		/**
@@ -127,6 +127,10 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.ILayoutHost
+		 *  @royaleignorecoercion org.apache.royale.core.IParent
+		 *  @royaleignorecoercion org.apache.royale.core.IChild
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRenderer
 		 */
 		private function handleDragStart(event:DragEvent):void
 		{
@@ -134,7 +138,7 @@ package org.apache.royale.html.beads
 
 			DragMouseController.dragImageOffsetX = 0;
 			DragMouseController.dragImageOffsetY = -30;
-
+			//TODO The itemRenderers should be IIndexedItemRenderers, so there shouldn't be a need for itemRendererOwnerView
 			var startHere:Object = event.relatedObject;
 			while (!(startHere is IItemRenderer) && startHere != null) {
 				startHere = startHere.itemRendererOwnerView;
@@ -162,6 +166,8 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRenderer
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
 		 */
 		private function handleDragEnter(event:DragEvent):void
 		{
@@ -195,6 +201,8 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
+		 *  @royaleignorecoercion org.apache.royale.core.UIBase
 		 */
 		private function handleDragOver(event:DragEvent):void
 		{
@@ -236,6 +244,13 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.ArrayList
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRenderer
+		 *  @royaleignorecoercion org.apache.royale.core.ILayoutHost
+		 *  @royaleignorecoercion org.apache.royale.core.IParent
+		 *  @royaleignorecoercion org.apache.royale.core.IDataProviderModel
+		 *  @royaleignorecoercion org.apache.royale.core.ItemRendererOwnerViewBead
 		 */
 		private function handleDragDrop(event:DragEvent):void
 		{
@@ -255,8 +270,8 @@ package org.apache.royale.html.beads
 			if (startHere is IItemRenderer) {
 				var ir:IItemRenderer = startHere as IItemRenderer;
 				trace("-- dropping onto an existing object: "+ir.data.toString());
-
-                var ownerViewBead:ItemRendererOwnerViewBead = ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead;
+				
+				var ownerViewBead:ItemRendererOwnerViewBead = ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead;
 				itemRendererOwnerView = (ownerViewBead.ownerView as ILayoutHost).contentView as IParent;
 				targetIndex = itemRendererOwnerView.getElementIndex(ir);
 			}
@@ -308,7 +323,9 @@ package org.apache.royale.html.beads
 		}
 
 		protected var _indicatorParent:UIBase;
-
+		/**
+		 *  @royaleignorecoercion org.apache.royale.htmls.beads.IDrawingLayerBead
+		 */
 		protected function get indicatorParent():UIBase
 		{
 			if (_indicatorParent == null) {
@@ -322,6 +339,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.htmls.beads.SingleSelectionDropIndicatorBead
 		 */
 		protected function getDropIndicator(ir:Object, width:Number, height:Number):UIBase
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridColumnReorderView.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridColumnReorderView.as
index 4776856..3baa57e 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridColumnReorderView.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridColumnReorderView.as
@@ -71,17 +71,22 @@ package org.apache.royale.html.beads
 
 			/**
 			 * @private
+			 * @royaleignorecoercion org.apache.royale.core.IDataGridModel
+			 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 			 */
             override protected function handleInitComplete(event:Event):void
 			{
 				super.handleInitComplete(event);
 
 				 var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
-				IEventDispatcher(sharedModel).addEventListener("headerModelChanged", handleHeaderModelChanged);
+				(sharedModel as IEventDispatcher).addEventListener("headerModelChanged", handleHeaderModelChanged);
 			}
 
 			/**
 			 * @private
+		   * @royaleignorecoercion org.apache.royale.html.DataGrid
+		   * @royaleignorecoercion org.apache.royale.core.IDataGridModel
+			 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 			 */
 			private function handleHeaderModelChanged(event:Event):void
 			{
@@ -92,7 +97,7 @@ package org.apache.royale.html.beads
 				 host.removeElement(header);
 				 host.removeElement(listArea);
 
-				 IEventDispatcher(sharedModel).removeEventListener("headerModelChanged", handleHeaderModelChanged);
+				 (sharedModel as IEventDispatcher).removeEventListener("headerModelChanged", handleHeaderModelChanged);
 				 refreshContent();
 			}
 		}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDragDropBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDragDropBead.as
index 087a596..58855d3 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDragDropBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDragDropBead.as
@@ -164,6 +164,9 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.html.DataGrid
+		 *  @royaleignorecoercion org.apache.royale.html.beads.IDataGridView
+		 *  @royaleignorecoercion org.apache.royale.core.UIBase
 		 */
 		protected function handleViewCreated(event:Event):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
index 9b7e5fc..ff66390 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
@@ -25,6 +25,7 @@ package org.apache.royale.html.beads
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.html.beads.IDrawingLayerBead;
+	import org.apache.royale.core.IParent;
 	
 	COMPILE::SWF {
 		import org.apache.royale.html.beads.SolidBackgroundBead;
@@ -59,6 +60,7 @@ package org.apache.royale.html.beads
 		
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IParent
 		 */
 		public function set strand(value:IStrand):void
 		{
@@ -71,7 +73,7 @@ package org.apache.royale.html.beads
 				_layer.element.style['pointer-events'] = 'none';
 				_layer.element.style['overflow'] = 'hidden';
 			}
-			UIBase(_strand).addElement(_layer);
+			(_strand as IParent).addElement(_layer);
 		}
 		
 		private var _layer:UIBase;
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
index 62a8e12..d9c9509 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
@@ -72,6 +72,9 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.UIBase
+		 *  @royaleignorecoercion org.apache.royale.html.beads.IDataGridView
+		 *  @royaleignorecoercion org.apache.royale.html.beads.IDrawingLayerBead
 		 */
 		override public function layout():Boolean
 		{
@@ -81,15 +84,15 @@ package org.apache.royale.html.beads
 
 			// Run the actual layout
 			var result:Boolean = super.layout();
-
 			// Put the drawing layer back, sizing it to fit over the listArea.
 			if (result && layerBead != null && layerBead.layer != null) {
+			var host:UIBase = _strand as UIBase;
 				
-				var view:IDataGridView = UIBase(_strand).view as IDataGridView;
+				var view:IDataGridView = host.view as IDataGridView;
 				var listArea:UIBase = view.listArea as UIBase;
 				
-				UIBase(_strand).removeElement(layerBead.layer);
-				UIBase(_strand).addElement(layerBead.layer); // always keep it on top
+				host.removeElement(layerBead.layer);
+				host.addElement(layerBead.layer); // always keep it on top
 
 				var layerX:Number = listArea.x;
 				var layerY:Number = listArea.y;
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
index 6081111..c2a8934 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
@@ -21,7 +21,9 @@ package org.apache.royale.html.beads
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IContainer;
 	import org.apache.royale.core.UIBase;
+	import org.apache.royale.core.IParent;
 	import org.apache.royale.html.beads.ListView;
+	import org.apache.royale.core.IUIBase;
 
 
 	/**
@@ -44,7 +46,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
-		 * @royaleignorecoercion org.apache.royale.core.UIBase
+		 * @royaleignorecoercion org.apache.royale.core.IParent
 		 */
 		override public function set strand(value:IStrand):void
 		{
@@ -59,7 +61,7 @@ package org.apache.royale.html.beads
 
 			//var chost:IContainer = host as IContainer;
 			//chost.strandChildren.addElement(_layer);
-			UIBase(_strand).addElement(_layer);
+			(_strand as IParent).addElement(_layer);
 
 		}
 
@@ -106,7 +108,6 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
-		 * @royaleignorecoercion org.apache.royale.core.UIBase
 		 */
 		override public function afterLayout():void
 		{
@@ -114,8 +115,8 @@ package org.apache.royale.html.beads
 
 			_layer.x = 0;
 			_layer.y = 0;
-			_layer.width = UIBase(_strand).width;
-			_layer.height = UIBase(_strand).height;
+			_layer.width = (_strand as IUIBase).width;
+			_layer.height = (_strand as IUIBase).height;
 		}
 	}
 }
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionDragSourceBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionDragSourceBead.as
index a29a429..3feb4e2 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionDragSourceBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionDragSourceBead.as
@@ -174,6 +174,8 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IChild
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRenderer
 		 */
 		private function handleDragStart(event:DragEvent):void
 		{
@@ -204,6 +206,11 @@ package org.apache.royale.html.beads
 			}
 		}
 
+		/**
+		 *  @royaleignorecoercion org.apache.royale.core.IMultiSelectionModel
+		 *  @royaleignorecoercion org.apache.royale.core.IStrandWithModel
+		 * 
+		 */
 		protected function get model():IMultiSelectionModel
 		{
 			return (_strand as IStrandWithModel).model as IMultiSelectionModel;
@@ -234,6 +241,8 @@ package org.apache.royale.html.beads
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.ArrayList
 		 */
 		public function acceptingDrop(dropTarget:Object, type:String):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionTreeDragSourceBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionTreeDragSourceBead.as
index a14548f..e27e02d 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionTreeDragSourceBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/MultiSelectionTreeDragSourceBead.as
@@ -117,6 +117,8 @@ package org.apache.royale.html.beads
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.7
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.TreeData
 		 */
 		override public function acceptingDrop(dropTarget:Object, type:String):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/OutOfApplicationDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/OutOfApplicationDropTargetBead.as
index e30bfc4..88e1595 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/OutOfApplicationDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/OutOfApplicationDropTargetBead.as
@@ -122,6 +122,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
 		 */
 		private function handleDragEnter(event:DragEvent):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveMultiSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveMultiSelectionDropTargetBead.as
index 652603a..c45a7e5 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveMultiSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveMultiSelectionDropTargetBead.as
@@ -35,6 +35,7 @@ package org.apache.royale.html.beads
 	import org.apache.royale.geom.Point;
 	import org.apache.royale.html.beads.controllers.DropMouseController;
 	import org.apache.royale.utils.PointUtils;
+	import org.apache.royale.utils.sendStrandEvent;
 
 
 	/**
@@ -148,7 +149,7 @@ package org.apache.royale.html.beads
 			_dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
 			_dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
 			_dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
-			IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
+			(_strand as IEventDispatcher).addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
 		}
 
 		private var _dropDirection: String = "horizontal";
@@ -174,6 +175,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.html.beads.IDrawingLayerBead
 		 */
 		protected function get indicatorParent():UIBase
 		{
@@ -187,6 +189,7 @@ package org.apache.royale.html.beads
 		}
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
 		 */
 		private function get itemRendererOwnerView():IItemRendererOwnerView
 		{
@@ -197,6 +200,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.html.beads.SingleSelectionDropIndicatorBead
 		 */
 		protected function getDropIndicator(ir:Object, width:Number, height:Number):UIBase
 		{
@@ -210,6 +214,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
 		 */
 		private function handleDragEnter(event:DragEvent):void
 		{
@@ -225,6 +230,9 @@ package org.apache.royale.html.beads
 			_dropController.acceptDragDrop(event.relatedObject as IUIBase, DropType.COPY);
 		}
 		
+		/**
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
+		 */
 		private function checkForNextItemRenderer(e:DragEvent):void
 		{
 			var changeMade:Boolean = true;
@@ -301,6 +309,10 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.ArrayList
+		 *  @royaleignorecoercion org.apache.royale.core.IMultiSelectionModel
+		 *  @royaleignorecoercion org.apache.royale.core.ISelectionModel
 		 */
 		private function handleDragDrop(event:DragEvent):void
 		{
@@ -361,7 +373,7 @@ package org.apache.royale.html.beads
 			}
 
 			// is this event necessary? isn't "complete" enough?
-			IEventDispatcher(_strand).dispatchEvent(new Event("dragDropAccepted"));
+			sendStrandEvent(_strand,"dragDropAccepted");
 
 			dispatchEvent(new Event("complete"));
 		}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
index a471845..daa21b8 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
@@ -37,6 +37,8 @@ package org.apache.royale.html.beads
 	import org.apache.royale.geom.Point;
 	import org.apache.royale.html.beads.controllers.DropMouseController;
 	import org.apache.royale.utils.PointUtils;
+	import org.apache.royale.utils.sendEvent;
+	import org.apache.royale.utils.sendStrandEvent;
 
 
 	/**
@@ -176,6 +178,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.html.beads.IDrawingLayerBead
 		 */
 		protected function get indicatorParent():UIBase
 		{
@@ -189,6 +192,7 @@ package org.apache.royale.html.beads
 		}
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
 		 */
 		private function get itemRendererOwnerView():IItemRendererOwnerView
 		{
@@ -199,6 +203,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.html.beads.SingleSelectionDropIndicatorBead
 		 */
 		protected function getDropIndicator(ir:Object, width:Number, height:Number):UIBase
 		{
@@ -212,6 +217,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
 		 */
 		private function handleDragEnter(event:DragEvent):void
 		{
@@ -226,7 +232,9 @@ package org.apache.royale.html.beads
 
 			_dropController.acceptDragDrop(event.relatedObject as IUIBase, DropType.COPY);
 		}
-		
+		/**
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
+		 */
 		private function checkForNextItemRenderer(e:DragEvent):void
 		{
 			var changeMade:Boolean = true;
@@ -303,6 +311,10 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.ArrayList
+		 *  @royaleignorecoercion org.apache.royale.core.IDataProviderModel
+		 *  @royaleignorecoercion org.apache.royale.core.ISelectionModel
 		 */
 		private function handleDragDrop(event:DragEvent):void
 		{
@@ -357,7 +369,7 @@ package org.apache.royale.html.beads
 			}
 
 			// is this event necessary? isn't "complete" enough?
-			IEventDispatcher(_strand).dispatchEvent(new Event("dragDropAccepted"));
+			sendStrandEvent(_strand,"dragDropAccepted");
 
 			dispatchEvent(new Event("complete"));
 		}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragImageBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragImageBead.as
index 2ba0454..310d916 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragImageBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragImageBead.as
@@ -106,6 +106,7 @@ package org.apache.royale.html.beads
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.8
+		 *  @royaleignorecoercion org.apache.royale.core.IUIBase
 		 */
 		protected function createDragImage(ir:IItemRenderer):UIBase
 		{
@@ -123,7 +124,8 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
-		 *
+		 *  @royaleignorecoercion org.apache.royale.core.IChild
+		 *  @royaleignorecoercion org.apache.royale.core.IItemRenderer
 		 */
 		private function handleDragStart(event:DragEvent):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
index 9f06ea3..823a955 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDragSourceBead.as
@@ -175,6 +175,8 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+		 *  @royaleignorecoercion org.apache.royale.core.IChild
+		 *  @royaleignorecoercion org.apache.royale.core.IIndexedItemRenderer
 		 */
 		private function handleDragStart(event:DragEvent):void
 		{
@@ -225,6 +227,9 @@ package org.apache.royale.html.beads
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.8
+		 *  @royaleignorecoercion Array
+		 *  @royaleignorecoercion org.apache.royale.collections.ArrayList
+		 *  @royaleignorecoercion org.apache.royale.core.ISelectionModel
 		 */
 		public function acceptingDrop(dropTarget:Object, type:String):void
 		{
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DragMouseController.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DragMouseController.as
index d64e6b9..5fd7222 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DragMouseController.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DragMouseController.as
@@ -375,8 +375,8 @@ package org.apache.royale.html.beads.controllers
             DragEvent.dragInitiator = null;
             dragImage = null;
 
-            IUIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_MOVE, dragMouseMoveHandler);
-            IUIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.CLICK, dragMouseUpHandler);
+            (_strand as IUIBase).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_MOVE, dragMouseMoveHandler);
+            (_strand as IUIBase).topMostEventDispatcher.removeEventListener(MouseEvent.CLICK, dragMouseUpHandler);
 
             COMPILE::SWF
             {
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DropMouseController.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DropMouseController.as
index 9dcccae..02db470 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DropMouseController.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/DropMouseController.as
@@ -149,16 +149,17 @@ package org.apache.royale.html.beads.controllers
         {
 //            trace("DROP-MOUSE: dragMove" + event.target.toString());
             var dragEvent:DragEvent;
+            var host:IUIBase = _strand as IUIBase;
             if (!inside)
             {
                 dragEvent = DragEvent.createDragEvent("dragEnter", event as MouseEvent);
 				dragEvent.relatedObject = event.relatedObject;
 				dispatchEvent(dragEvent);
                 inside = true;
-                IUIBase(_strand).addEventListener(DragEvent.DRAG_END, dragEndHandler);
-                IUIBase(_strand).addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
+                host.addEventListener(DragEvent.DRAG_END, dragEndHandler);
+                host.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
 
-				Cursors.setCursor(_strand as IUIBase, Cursors.MOVE);
+				Cursors.setCursor(host, Cursors.MOVE);
             }
             else
             {
@@ -174,17 +175,17 @@ package org.apache.royale.html.beads.controllers
         private function rollOutHandler(event:MouseEvent):void
         {
             var dragEvent:DragEvent;
-
+            var host:IUIBase = _strand as IUIBase;
             if (inside)
             {
                 dragEvent = DragEvent.createDragEvent("dragExit", event);
 				dispatchEvent(dragEvent);
                 inside = false;
 
-				Cursors.setCursor(_strand as IUIBase, Cursors.AUTO);
+				Cursors.setCursor(host, Cursors.AUTO);
             }
-            IUIBase(_strand).removeEventListener(DragEvent.DRAG_END, dragEndHandler);
-            IUIBase(_strand).removeEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
+            host.removeEventListener(DragEvent.DRAG_END, dragEndHandler);
+            host.removeEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
         }
 
 		/**
@@ -209,12 +210,12 @@ package org.apache.royale.html.beads.controllers
 			}
 
 			dispatchEvent(dragEvent);
-
+            var host:IUIBase = _strand as IUIBase;
             inside = false;
-            IUIBase(_strand).removeEventListener(DragEvent.DRAG_END, dragEndHandler);
-            IUIBase(_strand).removeEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
+            host.removeEventListener(DragEvent.DRAG_END, dragEndHandler);
+            host.removeEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
 
-			Cursors.setCursor(_strand as IUIBase, Cursors.AUTO);
+			Cursors.setCursor(host, Cursors.AUTO);
         }
 
 	}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/OutOfApplicationDropMouseController.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/OutOfApplicationDropMouseController.as
index e807350..16a7870 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/OutOfApplicationDropMouseController.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/controllers/OutOfApplicationDropMouseController.as
@@ -31,6 +31,7 @@ package org.apache.royale.html.beads.controllers
 
 	COMPILE::JS {
 		import org.apache.royale.events.BrowserEvent;
+		import org.apache.royale.utils.sendStrandEvent;
 	}
 
     /**
@@ -128,6 +129,7 @@ package org.apache.royale.html.beads.controllers
 
 		/**
 		 *  @private
+		 *  @royaleignorecoercion org.apache.royale.core.IRenderedObject
 		 */ 
 		private function dragMoveHandler(event:DragEvent):void
 		{
@@ -152,6 +154,9 @@ package org.apache.royale.html.beads.controllers
 
 		}
 
+		/**
+		 *  @royaleignorecoercion org.apache.royale.core.IRenderedObject
+		 */
 		COMPILE::JS
 		private function mouseLeaveHandler(event:BrowserEvent):void
 		{
@@ -162,6 +167,9 @@ package org.apache.royale.html.beads.controllers
 			draggingOutOfApp = true;
 		}
 
+		/**
+		 *  @royaleignorecoercion org.apache.royale.core.IRenderedObject
+		 */
 		COMPILE::JS
 		private function dragEndHandler(event:BrowserEvent):void
 		{
@@ -173,7 +181,7 @@ package org.apache.royale.html.beads.controllers
 			Cursors.setCursor(_strand as IRenderedObject, Cursors.AUTO);
 			// clean up drag image, etc.
 			var mouseEvent:MouseEvent = new MouseEvent(MouseEvent.MOUSE_UP);
-			(_strand as IEventDispatcher).dispatchEvent(mouseEvent);
+			sendStrandEvent(_strand,mouseEvent);
 		}
 
 	}