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/01/01 19:07:20 UTC

[royale-asjs] branch feature/bead-base updated: More util uses

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

harbs pushed a commit to branch feature/bead-base
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/feature/bead-base by this push:
     new 6d2d55f  More util uses
6d2d55f is described below

commit 6d2d55f87e1dd2e571d588dfdce93289b2aeeeaf
Author: Harbs <ha...@in-tools.com>
AuthorDate: Wed Jan 1 21:07:04 2020 +0200

    More util uses
---
 frameworks/projects/Basic/asconfig.json            |   2 +-
 .../royale/org/apache/royale/core/Application.as   |  22 +-
 .../royale/org/apache/royale/core/ContainerBase.as |   7 +-
 .../org/apache/royale/core/DataContainerBase.as    |   3 +-
 .../royale/org/apache/royale/core/GroupBase.as     |  18 +-
 .../royale/org/apache/royale/core/StyledUIBase.as  |  15 +-
 .../main/royale/org/apache/royale/core/UIBase.as   |  43 ++--
 .../src/main/royale/org/apache/royale/core/View.as |   5 +-
 .../main/royale/org/apache/royale/core/ViewBase.as |   3 +-
 .../royale/org/apache/royale/html/Accordion.as     |  11 +-
 .../royale/html/beads/AccessibilityAltBead.as      |   4 +-
 .../royale/html/beads/AccordionCollapseBead.as     |   5 +-
 .../royale/html/beads/AccordionItemRendererView.as |   3 +-
 .../org/apache/royale/html/beads/AlertView.as      | 267 +++++++++++----------
 .../org/apache/royale/utils/sendBeadEvent.as       |   9 +-
 .../royale/org/apache/royale/utils/sendEvent.as    |   9 +-
 .../org/apache/royale/utils/sendStrandEvent.as     |   9 +-
 17 files changed, 235 insertions(+), 200 deletions(-)

diff --git a/frameworks/projects/Basic/asconfig.json b/frameworks/projects/Basic/asconfig.json
index 6a2265a..5d88fee 100644
--- a/frameworks/projects/Basic/asconfig.json
+++ b/frameworks/projects/Basic/asconfig.json
@@ -20,7 +20,7 @@
     "compilerOptions": {
         "debug": true,
         "targets": [
-            "SWF", "JSRoyale"
+            "JSRoyale","SWF"
         ],
         "include-classes": [
             "BasicClasses"
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/Application.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/Application.as
index a1a521f..fe511a8 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/Application.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/Application.as
@@ -157,7 +157,7 @@ package org.apache.royale.core
 
             sendEvent(this,"beadsAdded");
 
-            if (dispatchEvent(new org.apache.royale.events.Event("preinitialize", false, true)))
+            if (sendEvent(this,new org.apache.royale.events.Event("preinitialize", false, true)))
                 initialize();
             else
                 addEventListener(flash.events.Event.ENTER_FRAME, enterFrameHandler);
@@ -167,7 +167,7 @@ package org.apache.royale.core
         COMPILE::SWF
         private function enterFrameHandler(event:flash.events.Event):void
         {
-            if (dispatchEvent(new org.apache.royale.events.Event("preinitialize", false, true)))
+            if (sendEvent(this,new org.apache.royale.events.Event("preinitialize", false, true)))
             {
                 removeEventListener(flash.events.Event.ENTER_FRAME, enterFrameHandler);
                 initialize();
@@ -189,7 +189,7 @@ package org.apache.royale.core
 
             MXMLDataInterpreter.generateMXMLInstances(this, instanceParent, MXMLDescriptor);
 
-            dispatchEvent(new org.apache.royale.events.Event("initialize"));
+            sendEvent(this,"initialize");
 
             if (initialView)
             {
@@ -217,9 +217,9 @@ package org.apache.royale.core
                     graphics.drawRect(0, 0, initialView.width, initialView.height);
                     graphics.endFill();
                 }
-                dispatchEvent(new org.apache.royale.events.Event("viewChanged"));
+                sendEvent(this,"viewChanged");
             }
-            dispatchEvent(new org.apache.royale.events.Event("applicationComplete"));
+            sendEvent(this,"applicationComplete");
         }
 
         /**
@@ -656,7 +656,7 @@ package org.apache.royale.core
 			}
 			sendEvent(this,"beadsAdded");
 			
-			if (dispatchEvent(new org.apache.royale.events.Event("preinitialize", false, true)))
+			if (sendEvent(this,new org.apache.royale.events.Event("preinitialize", false, true)))
 				initialize();
 			else {			
 				startupTimer = new Timer(34, 0);
@@ -671,7 +671,7 @@ package org.apache.royale.core
 		COMPILE::JS
 		protected function handleStartupTimer(event:Event):void
 		{
-			if (dispatchEvent(new org.apache.royale.events.Event("preinitialize", false, true)))
+			if (sendEvent(this,new org.apache.royale.events.Event("preinitialize", false, true)))
 			{
 				startupTimer.stop();
 				initialize();
@@ -687,7 +687,7 @@ package org.apache.royale.core
 		{
 			MXMLDataInterpreter.generateMXMLInstances(this, instanceParent, MXMLDescriptor);
 			
-			dispatchEvent('initialize');
+			sendEvent(this,'initialize');
 			
 			if (initialView)
 			{
@@ -699,12 +699,12 @@ package org.apache.royale.core
                     var style:CSSStyleDeclaration  = getStyle(this);
 					style.height = window.innerHeight.toString() + 'px';
 					style.width = window.innerWidth.toString() + 'px';
-					this.initialView.dispatchEvent(new Event("sizeChanged")); // kick off layout if % sizes
+					sendEvent(initialView,"sizeChanged"); // kick off layout if % sizes
 				}
 				
-				dispatchEvent(new org.apache.royale.events.Event("viewChanged"));
+				sendEvent(this,"viewChanged");
 			}
-			dispatchEvent(new org.apache.royale.events.Event("applicationComplete"));
+			sendEvent(this,"applicationComplete");
 		}
         
         COMPILE::SWF
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
index 73aab0c..765fea2 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ContainerBase.as
@@ -20,6 +20,7 @@ package org.apache.royale.core
 {
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.ValueEvent;
+	import org.apache.royale.utils.sendEvent;
 
     /**
      *  Indicates that the state change has completed.  All properties
@@ -108,7 +109,7 @@ package org.apache.royale.core
 			var contentView:IParent = getLayoutHost().contentView as IParent;
 			contentView.addElement(c, dispatchEvent);
             if (dispatchEvent)
-                this.dispatchEvent(new ValueEvent("childrenAdded", c));
+                sendEvent(this,new ValueEvent("childrenAdded", c));
 		}
 		
 		/**
@@ -120,7 +121,7 @@ package org.apache.royale.core
 			var contentView:IParent = getLayoutHost().contentView as IParent;
 			contentView.addElementAt(c, index, dispatchEvent);
             if (dispatchEvent)
-                this.dispatchEvent(new ValueEvent("childrenAdded", c));
+                sendEvent(this,new ValueEvent("childrenAdded", c));
 		}
 		
 		/**
@@ -145,7 +146,7 @@ package org.apache.royale.core
 			contentView.removeElement(c, dispatchEvent);
 			//TODO This should possibly be ultimately refactored to be more PAYG
 			if(dispatchEvent)
-				this.dispatchEvent(new ValueEvent("childrenRemoved", c));
+				sendEvent(this,new ValueEvent("childrenRemoved", c));
 		}
 		
 		/**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
index 18f5ec6..6803e8a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/DataContainerBase.as
@@ -23,6 +23,7 @@ package org.apache.royale.core
 	import org.apache.royale.html.beads.IListView;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.html.supportClasses.DataItemRenderer;
+	import org.apache.royale.utils.sendEvent;
 	
 	/**
 	 *  Indicates that the initialization of the list is complete.
@@ -77,7 +78,7 @@ package org.apache.royale.core
 			
 			super.addedToParent();
 						
-			dispatchEvent(new Event("initComplete"));
+			sendEvent(this,"initComplete");
 		}
 		
 		/*
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
index 096c797..fc0595d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
@@ -33,6 +33,12 @@ package org.apache.royale.core
     COMPILE::JS
     {
         import org.apache.royale.html.util.addElementToWrapper;
+        import org.apache.royale.utils.sendEvent;
+        import org.apache.royale.utils.sendEvent;
+        import org.apache.royale.utils.sendEvent;
+        import org.apache.royale.utils.sendEvent;
+        import org.apache.royale.utils.sendEvent;
+        import org.apache.royale.utils.sendEvent;
     }
 
     /**
@@ -120,7 +126,7 @@ package org.apache.royale.core
          */
         public function childrenAdded():void
         {
-            dispatchEvent(new ValueEvent("childrenAdded"));
+            sendEvent(this,new ValueEvent("childrenAdded"));
         }
 		
 		/*
@@ -137,7 +143,7 @@ package org.apache.royale.core
 		 */
 		public function layoutNeeded():void
 		{
-			dispatchEvent( new Event("layoutNeeded") );
+			sendEvent(this,"layoutNeeded");
 		}
 		
 		/*
@@ -257,7 +263,7 @@ package org.apache.royale.core
 			if (value == _currentState) return;
             var event:ValueChangeEvent = new ValueChangeEvent("currentStateChange", false, false, _currentState, value)
             _currentState = value;
-            dispatchEvent(event);
+            sendEvent(this,event);
         }
         
         private var _transitions:Array;
@@ -290,7 +296,7 @@ package org.apache.royale.core
 		{
 			super.addElement(c, dispatchEvent);
             if (dispatchEvent)
-                this.dispatchEvent(new ValueEvent("childrenAdded", c));
+                sendEvent(this,new ValueEvent("childrenAdded", c));
 		}
 		
 		/**
@@ -300,7 +306,7 @@ package org.apache.royale.core
 		{
 			super.addElementAt(c, index, dispatchEvent);
             if (dispatchEvent)
-                this.dispatchEvent(new ValueEvent("childrenAdded", c));
+                sendEvent(this,new ValueEvent("childrenAdded", c));
 		}
 
 		/**
@@ -311,7 +317,7 @@ package org.apache.royale.core
 			super.removeElement(c, dispatchEvent);
 			//TODO This should possibly be ultimately refactored to be more PAYG
             if (dispatchEvent)
-                this.dispatchEvent(new ValueEvent("childrenRemoved", c));
+                sendEvent(this,new ValueEvent("childrenRemoved", c));
 		}
 
     }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledUIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledUIBase.as
index 0c8ff74..7438569 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledUIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/StyledUIBase.as
@@ -26,6 +26,7 @@ package org.apache.royale.core
     import org.apache.royale.events.Event;
     import org.apache.royale.utils.ClassSelectorList;
     import org.apache.royale.utils.IClassSelectorListSupport;
+    import org.apache.royale.utils.sendEvent;
 
     /**
      *  The StyledUIBase is the base class for UIBase components that makes
@@ -211,7 +212,7 @@ package org.apache.royale.core
 					this._explicitWidth = NaN;
 			}
 			
-			dispatchEvent(new Event("percentWidthChanged"));
+			sendEvent(this,"percentWidthChanged");
 		}
 
         /**
@@ -239,7 +240,7 @@ package org.apache.royale.core
 					this._explicitHeight = NaN;
 			}
 			
-			dispatchEvent(new Event("percentHeightChanged"));
+			sendEvent(this,"percentHeightChanged");
 		}
 
         /**
@@ -263,7 +264,7 @@ package org.apache.royale.core
                     this.positioner.style.height = isNaN(value) ? null : value.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("heightChanged"));
+                    sendEvent(this,"heightChanged");
             }            
         }
 
@@ -288,7 +289,7 @@ package org.apache.royale.core
                     this.positioner.style.width = isNaN(value) ? null : value.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("widthChanged"));
+                    sendEvent(this,"widthChanged");
             }
         }
 
@@ -313,7 +314,7 @@ package org.apache.royale.core
                     this.positioner.style.width = isNaN(newWidth) ? null : newWidth.toString() + 'px';        
                 }
                 if (!noEvent) 
-                    dispatchEvent(new Event("widthChanged"));
+                    sendEvent(this,"widthChanged");
             }
             if (_height !== newHeight)
             {
@@ -323,9 +324,9 @@ package org.apache.royale.core
                     this.positioner.style.height = isNaN(newHeight) ? null : newHeight.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("heightChanged"));
+                    sendEvent(this,"heightChanged");
             }            
-            dispatchEvent(new Event("sizeChanged"));
+            sendEvent(this,"sizeChanged");
         }
 
         /**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index ef1d4e6..c4d66e9 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -34,6 +34,7 @@ package org.apache.royale.core
 	import org.apache.royale.events.MouseEvent;
 	import org.apache.royale.events.ValueChangeEvent;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
+    import org.apache.royale.utils.sendEvent;
 
     COMPILE::JS
     {
@@ -254,7 +255,7 @@ package org.apache.royale.core
 			
 			_explicitWidth = value;
 			
-			dispatchEvent(new Event("explicitWidthChanged"));
+			sendEvent(this,"explicitWidthChanged");
 		}
 		
 		protected var _explicitHeight:Number;
@@ -287,7 +288,7 @@ package org.apache.royale.core
 			
 			_explicitHeight = value;
 			
-			dispatchEvent(new Event("explicitHeightChanged"));
+			sendEvent(this,"explicitHeightChanged");
 		}
 		
 		protected var _percentWidth:Number;
@@ -330,7 +331,7 @@ package org.apache.royale.core
 					this._explicitWidth = NaN;
 			}
 			
-			dispatchEvent(new Event("percentWidthChanged"));
+			sendEvent(this,"percentWidthChanged");
 		}
 
         protected var _percentHeight:Number;
@@ -374,7 +375,7 @@ package org.apache.royale.core
 					this._explicitHeight = NaN;
 			}
 			
-			dispatchEvent(new Event("percentHeightChanged"));
+			sendEvent(this,"percentHeightChanged");
 		}
 		
 		protected var _width:Number;
@@ -587,7 +588,7 @@ package org.apache.royale.core
                     this.positioner.style.height = value.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("heightChanged"));
+                    sendEvent(this,"heightChanged");
             }            
         }
 
@@ -609,7 +610,7 @@ package org.apache.royale.core
                     this.positioner.style.width = value.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("widthChanged"));
+                    sendEvent(this,"widthChanged");
             }
         }
         
@@ -631,7 +632,7 @@ package org.apache.royale.core
                     this.positioner.style.width = newWidth.toString() + 'px';        
                 }
                 if (!noEvent) 
-                    dispatchEvent(new Event("widthChanged"));
+                    sendEvent(this,"widthChanged");
             }
             if (_height !== newHeight)
             {
@@ -641,9 +642,9 @@ package org.apache.royale.core
                     this.positioner.style.height = newHeight.toString() + 'px';        
                 }
                 if (!noEvent)
-                    dispatchEvent(new Event("heightChanged"));
+                    sendEvent(this,"heightChanged");
             }            
-            dispatchEvent(new Event("sizeChanged"));
+            sendEvent(this,"sizeChanged");
         }
         
         /**
@@ -829,8 +830,8 @@ package org.apache.royale.core
 		override public function set visible(value:Boolean):void
 		{
 			super.visible = value;
-			dispatchEvent(new Event(value?"show":"hide"));
-			dispatchEvent(new Event("visibleChanged"));
+			sendEvent(this,new Event(value?"show":"hide"));
+			sendEvent(this,new Event("visibleChanged"));
         }
         /**
          * @private
@@ -873,15 +874,15 @@ package org.apache.royale.core
                 {
 					displayStyleForLayout = positioner.style.display;
                     positioner.style.display = 'none';
-                    dispatchEvent(new Event('hide'));
+                    sendEvent(this,'hide');
                 } 
                 else 
                 {
                     if (displayStyleForLayout != null)
                         positioner.style.display = displayStyleForLayout;
-                    dispatchEvent(new Event('show'));
+                    sendEvent(this,'show');
                 }
-                dispatchEvent(new Event('visibleChanged'));
+                sendEvent(this,'visibleChanged');
             }
         }
         
@@ -922,7 +923,7 @@ package org.apache.royale.core
             if (_view != value)
             {
                 addBead(value);
-                dispatchEvent(new Event("viewChanged"));
+                sendEvent(this,"viewChanged");
             }
         }
 
@@ -949,7 +950,7 @@ package org.apache.royale.core
 			if (_id !== value)
 			{
 				_id = value;
-				dispatchEvent(new Event("idChanged"));
+				sendEvent(this,"idChanged");
 			}
             COMPILE::JS
             {
@@ -1002,7 +1003,7 @@ package org.apache.royale.core
 					if (parent)
 						ValuesManager.valuesImpl.applyStyles(this, _style);
 				}
-                dispatchEvent(new Event("stylesChanged"));
+                sendEvent(this,"stylesChanged");
 
                 // if the new style is an IStyleObject, set the reference back to us to get updates
                 var styleObject : IStyleObject = _style as IStyleObject;
@@ -1068,7 +1069,7 @@ package org.apache.royale.core
                         setClassName(computeFinalClassNames());             
                 }
                 
-                dispatchEvent(new Event("classNameChanged"));
+                sendEvent(this,"classNameChanged");
             }
         }
 
@@ -1132,7 +1133,7 @@ package org.apache.royale.core
 			}
 			
 			if (isView) {
-				dispatchEvent(new Event("viewChanged"));
+				sendEvent(this,"viewChanged");
 			}
 		}
 		
@@ -1382,7 +1383,7 @@ package org.apache.royale.core
 			loadBeadFromValuesManager(IBeadModel, "iBeadModel", this);
             loadBeadFromValuesManager(IBeadView, "iBeadView", this);
 			loadBeadFromValuesManager(IBeadController, "iBeadController", this);
-            dispatchEvent(new Event("beadsAdded"));
+            sendEvent(this,"beadsAdded");
         }
 
         private var _measurementBead:IMeasurementBead;
@@ -1447,7 +1448,7 @@ package org.apache.royale.core
          */
         protected function repeaterListener(event:Event):void
         {
-            dispatchEvent(event);
+            sendEvent(this,event);
         }
         
         /**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/View.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/View.as
index 88632e0..b519df1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/View.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/View.as
@@ -22,6 +22,7 @@ package org.apache.royale.core
 	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.utils.MXMLDataInterpreter;
+	import org.apache.royale.utils.sendEvent;
 	
 	/**
 	 * The default property uses when additional MXML content appears within an element's
@@ -67,8 +68,8 @@ package org.apache.royale.core
 			{
 				MXMLDataInterpreter.generateMXMLInstances(_mxmlDocument, this, MXMLDescriptor);
 				
-				dispatchEvent(new Event("initBindings"));
-				dispatchEvent(new Event("initComplete"));
+				sendEvent(this,"initBindings");
+				sendEvent(this,"initComplete");
 				_initialized = true;
 				
 				// - why was this added here? childrenAdded(); //?? Is this necessary since MXMLDataInterpreter will already have called it
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ViewBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ViewBase.as
index 8bc8876..4e25d16 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ViewBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/ViewBase.as
@@ -19,6 +19,7 @@
 package org.apache.royale.core
 {
 	import org.apache.royale.events.Event;
+	import org.apache.royale.utils.sendEvent;
 
     //--------------------------------------
     //  Events
@@ -90,7 +91,7 @@ package org.apache.royale.core
         public function set applicationModel(value:Object):void
         {
             _applicationModel = value;
-            dispatchEvent(new Event("modelChanged"));
+            sendEvent(this,"modelChanged");
         }
 
         /**
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Accordion.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Accordion.as
index 6674559..5c1660c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Accordion.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/Accordion.as
@@ -23,6 +23,7 @@ package org.apache.royale.html
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.html.beads.IAccordionCollapseBead;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
+	import org.apache.royale.utils.sendEvent;
 	
 	/**
 	 *  The Accordion class used to display a list of collapsible components
@@ -49,7 +50,9 @@ package org.apache.royale.html
 		{
 			super();
 		}
-		
+		/**
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
 		override public function addedToParent():void
 		{
 			super.addedToParent();
@@ -61,10 +64,12 @@ package org.apache.royale.html
 			{
 				// TODO this should probably be done in List, but it's too hacky
 				// This is my way of setting the proper item renderer state and layout 
-				(model as IEventDispatcher).dispatchEvent(new Event("selectedIndexChanged"));
+				sendEvent(model as IEventDispatcher,"selectedIndexChanged");
 			}
 		}
-		
+		/**
+		 * @royaleignorecoercion org.apache.royale.html.beads.IAccordionCollapseBead
+		 */
 		public function get accordionCollapseBead():IAccordionCollapseBead
 		{
 			if (!_collapseBead)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccessibilityAltBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccessibilityAltBead.as
index 6e342c0..9724129 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccessibilityAltBead.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccessibilityAltBead.as
@@ -23,6 +23,8 @@ package org.apache.royale.html.beads
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.events.ValueEvent;
+	import org.apache.royale.utils.sendEvent;
+	import org.apache.royale.utils.sendStrandEvent;
 
 	COMPILE::SWF {
 		import org.apache.royale.html.accessories.ToolTipBead;
@@ -106,7 +108,7 @@ package org.apache.royale.html.beads
                 (_strand as Object).element.alt = _alt;
             }
 
-			IEventDispatcher(_strand).dispatchEvent(new ValueEvent("altChange", alt));
+			sendStrandEvent(_strand,new ValueEvent("altChange", alt));
 				
 		}
 		
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
index 9993f7f..25268b2 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionCollapseBead.as
@@ -28,6 +28,7 @@ package org.apache.royale.html.beads
 	import org.apache.royale.html.supportClasses.ICollapsible;
 	import org.apache.royale.utils.loadBeadFromValuesManager;
 	import org.apache.royale.html.beads.IListView;
+	import org.apache.royale.utils.sendStrandEvent;
 	
 	public class AccordionCollapseBead implements IAccordionCollapseBead
 	{
@@ -74,8 +75,8 @@ package org.apache.royale.html.beads
 			if(lastElement)
 				lastElement.collapse();
 			lastSelectedIndex = host.selectedIndex;
-			layout.flexibleChild = String(host.selectedIndex);			
-			IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded"));
+			layout.flexibleChild = String(host.selectedIndex);
+			sendStrandEvent(_strand,"layoutNeeded");
 		}
 		
 		protected function get layout():IOneFlexibleChildLayout
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionItemRendererView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionItemRendererView.as
index e6ff93e..9504559 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionItemRendererView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AccordionItemRendererView.as
@@ -23,6 +23,7 @@ package org.apache.royale.html.beads
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.html.supportClasses.ICollapsible;
 	import org.apache.royale.html.supportClasses.AccordionItemRenderer
+	import org.apache.royale.utils.sendStrandEvent;
     
 	/**
 	 * This class creates and manages the contents of an AccordionItemRenderer
@@ -77,7 +78,7 @@ package org.apache.royale.html.beads
 			var collapsibleStrand:ICollapsible = _strand as ICollapsible;
 			if (!collapsibleStrand.collapsed)
 			{
-				IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded"));
+				sendStrandEvent(_strand,"layoutNeeded");
 //				super.performLayout(event);
 			} else // skip layout for viewport children
 			{
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlertView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlertView.as
index 4b7bd88..397e641 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlertView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlertView.as
@@ -19,37 +19,42 @@
 package org.apache.royale.html.beads
 {
 	import org.apache.royale.html.beads.GroupView;
-    import org.apache.royale.core.BeadViewBase;
+	import org.apache.royale.core.BeadViewBase;
 	import org.apache.royale.core.IAlertModel;
 	import org.apache.royale.core.IBead;
-    import org.apache.royale.core.IBeadView;
-    import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
-    import org.apache.royale.core.IParent;
+	import org.apache.royale.core.IBeadView;
+	import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
+	import org.apache.royale.core.IParent;
 	import org.apache.royale.core.IStrand;
-    import org.apache.royale.core.IUIBase;
-    import org.apache.royale.core.layout.EdgeData;
+	import org.apache.royale.core.IUIBase;
+	import org.apache.royale.core.layout.EdgeData;
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.events.Event;
-    import org.apache.royale.events.MouseEvent;
-    import org.apache.royale.events.CloseEvent;
+	import org.apache.royale.events.MouseEvent;
+	import org.apache.royale.events.CloseEvent;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.html.Alert;
-    import org.apache.royale.html.Container;
-    import org.apache.royale.html.ControlBar;
-    import org.apache.royale.html.Group;
-    import org.apache.royale.html.Label;
+	import org.apache.royale.html.Container;
+	import org.apache.royale.html.ControlBar;
+	import org.apache.royale.html.Group;
+	import org.apache.royale.html.Label;
 	import org.apache.royale.html.TextButton;
 	import org.apache.royale.html.TitleBar;
 
 	COMPILE::SWF
 	{
-        import org.apache.royale.geom.Rectangle;
-        import org.apache.royale.core.ValuesManager;
-        import org.apache.royale.utils.loadBeadFromValuesManager;
-        import org.apache.royale.core.IMeasurementBead;
+		import org.apache.royale.geom.Rectangle;
+		import org.apache.royale.core.ValuesManager;
+		import org.apache.royale.utils.loadBeadFromValuesManager;
+		import org.apache.royale.core.IMeasurementBead;
 		import org.apache.royale.html.beads.IBackgroundBead;
 		import org.apache.royale.html.beads.IBorderBead;
 	}
+	COMPILE::JS
+	{
+		import org.apache.royale.utils.html.getStyle;
+		import org.apache.royale.utils.sendStrandEvent;
+	}
 	
 	/**
 	 *  The AlertView class creates the visual elements of the org.apache.royale.html.Alert
@@ -80,12 +85,12 @@ package org.apache.royale.html.beads
 		protected var label:Label;
 		protected var labelContent:Group;
 
-        protected var okButton:TextButton;
-        protected var cancelButton:TextButton;
-        protected var yesButton:TextButton;
-        protected var noButton:TextButton;
+		protected var okButton:TextButton;
+		protected var cancelButton:TextButton;
+		protected var yesButton:TextButton;
+		protected var noButton:TextButton;
 
-        protected var alertModel:IAlertModel;
+		protected var alertModel:IAlertModel;
 
 		/**
 		 *  @copy org.apache.royale.core.IBead#strand
@@ -100,69 +105,71 @@ package org.apache.royale.html.beads
 			super.strand = value;
 
 			COMPILE::SWF
-            {
-                var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
-                var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
-                if (backgroundColor != null || backgroundImage != null)
-                {
-                    loadBeadFromValuesManager(IBackgroundBead, "iBackgroundBead", value);
-                }
+			{
+				var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
+				var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
+				if (backgroundColor != null || backgroundImage != null)
+				{
+					loadBeadFromValuesManager(IBackgroundBead, "iBackgroundBead", value);
+				}
 
-                var borderStyle:String;
-                var borderStyles:Object = ValuesManager.valuesImpl.getValue(value, "border");
-                if (borderStyles is Array)
-                {
-                    borderStyle = borderStyles[1];
-                }
-                if (borderStyle == null)
-                {
-                    borderStyle = ValuesManager.valuesImpl.getValue(value, "border-style") as String;
-                }
-                if (borderStyle != null && borderStyle != "none")
-                {
-                    loadBeadFromValuesManager(IBorderBead, "iBorderBead", value);
-                }
-            }
+				var borderStyle:String;
+				var borderStyles:Object = ValuesManager.valuesImpl.getValue(value, "border");
+				if (borderStyles is Array)
+				{
+					borderStyle = borderStyles[1];
+				}
+				if (borderStyle == null)
+				{
+					borderStyle = ValuesManager.valuesImpl.getValue(value, "border-style") as String;
+				}
+				if (borderStyle != null && borderStyle != "none")
+				{
+					loadBeadFromValuesManager(IBorderBead, "iBorderBead", value);
+				}
+			}
 
 			alertModel = (_strand as UIBase).model as IAlertModel;
 
 			createButtons();
 
 			if (alertModel.title)
-            {
-                titleBar = new TitleBar();
-                titleBar.height = 25;
-                titleBar.title = alertModel.title;
-                IParent(_strand).addElement(titleBar);
-            }
+			{
+				titleBar = new TitleBar();
+				titleBar.height = 25;
+				titleBar.title = alertModel.title;
+				IParent(_strand).addElement(titleBar);
+			}
 
 			label = new Label();
 			label.text = alertModel.message;
 			
 			labelContent = new Group();
-            labelContent.className = "AlertContent";
+			labelContent.className = "AlertContent";
 			//labelContent.percentWidth = 100;
 			//labelContent.percentHeight = 100;
 
 			labelContent.addElement(label);
 			
-            IParent(_strand).addElement(labelContent);
+			IParent(_strand).addElement(labelContent);
 
 			COMPILE::JS
 			{
-                label.element.style["white-space"] = "unset";
+				getStyle(label)["white-space"] = "unset";
+				// label.element.style["white-space"] = "unset";
 				//labelContent.element.style["minHeight"] = "30px";
-				controlBar.element.style["flex-direction"] = "row";
-				controlBar.element.style["justify-content"] = "center";
-				controlBar.element.style["border"] = "none";
-				controlBar.element.style["background-color"] = "#FFFFFF";
+				var style:CSSStyleDeclaration = getStyle(controlBar);
+				style["flex-direction"] = "row";
+				style["justify-content"] = "center";
+				style["border"] = "none";
+				style["background-color"] = "#FFFFFF";
 			}
-            IParent(_strand).addElement(controlBar);
+			IParent(_strand).addElement(controlBar);
 
 			COMPILE::SWF
-            {
-                refreshSize();
-            }
+			{
+				refreshSize();
+			}
 		}
 
 		private function createButtons():void
@@ -170,83 +177,87 @@ package org.apache.royale.html.beads
 			COMPILE::SWF
 			{
 				controlBar = new Group();
-            }
+			}
 
 			COMPILE::JS
 			{
 				controlBar = new ControlBar();
 			}
 
-            var flags:uint = alertModel.flags;
-            if( flags & Alert.OK )
-            {
-                okButton = new TextButton();
-                okButton.className = "AlertButton";
-                okButton.text = alertModel.okLabel;
-                okButton.addEventListener("click",handleOK);
+			var flags:uint = alertModel.flags;
+			if( flags & Alert.OK )
+			{
+				okButton = new TextButton();
+				okButton.className = "AlertButton";
+				okButton.text = alertModel.okLabel;
+				okButton.addEventListener("click",handleOK);
 
-                controlBar.addElement(okButton);
+				controlBar.addElement(okButton);
 
-                COMPILE::JS
-                {
-                    okButton.element.style["height"] = "intrinsic";
-                    okButton.element.style["margin-left"] = "2px";
-                    okButton.element.style["margin-right"] = "2px";
-                }
-            }
-            if( flags & Alert.CANCEL )
-            {
-                cancelButton = new TextButton();
-                cancelButton.className = "AlertButton";
-                cancelButton.text = alertModel.cancelLabel;
-                cancelButton.addEventListener("click",handleCancel);
+				COMPILE::JS
+				{
+					var style:CSSStyleDeclaration = getStyle(okButton);
+					style["height"] = "intrinsic";
+					style["margin-left"] = "2px";
+					style["margin-right"] = "2px";
+				}
+			}
+			if( flags & Alert.CANCEL )
+			{
+				cancelButton = new TextButton();
+				cancelButton.className = "AlertButton";
+				cancelButton.text = alertModel.cancelLabel;
+				cancelButton.addEventListener("click",handleCancel);
 
-                controlBar.addElement(cancelButton);
+				controlBar.addElement(cancelButton);
 
-                COMPILE::JS
-                {
-                    cancelButton.element.style["height"] = "intrinsic";
-                    cancelButton.element.style["margin-left"] = "2px";
-                    cancelButton.element.style["margin-right"] = "2px";
-                }
-            }
-            if( flags & Alert.YES )
-            {
-                yesButton = new TextButton();
-                yesButton.className = "AlertButton";
-                yesButton.text = alertModel.yesLabel;
-                yesButton.addEventListener("click",handleYes);
+				COMPILE::JS
+				{
+					style = getStyle(cancelButton);
+					style["height"] = "intrinsic";
+					style["margin-left"] = "2px";
+					style["margin-right"] = "2px";
+				}
+			}
+			if( flags & Alert.YES )
+			{
+				yesButton = new TextButton();
+				yesButton.className = "AlertButton";
+				yesButton.text = alertModel.yesLabel;
+				yesButton.addEventListener("click",handleYes);
 
-                controlBar.addElement(yesButton);
+				controlBar.addElement(yesButton);
 
-                COMPILE::JS
-                {
-                    yesButton.element.style["height"] = "intrinsic";
-                    yesButton.element.style["margin-left"] = "2px";
-                    yesButton.element.style["margin-right"] = "2px";
-                }
-            }
-            if( flags & Alert.NO )
-            {
-                noButton = new TextButton();
-                noButton.className = "AlertButton";
-                noButton.text = alertModel.noLabel;
-                noButton.addEventListener("click",handleNo);
+				COMPILE::JS
+				{
+					style = getStyle(yesButton);
+					style["height"] = "intrinsic";
+					style["margin-left"] = "2px";
+					style["margin-right"] = "2px";
+				}
+			}
+			if( flags & Alert.NO )
+			{
+				noButton = new TextButton();
+				noButton.className = "AlertButton";
+				noButton.text = alertModel.noLabel;
+				noButton.addEventListener("click",handleNo);
 
-                controlBar.addElement(noButton);
+				controlBar.addElement(noButton);
 
-                COMPILE::JS
-                {
-                    noButton.element.style["height"] = "intrinsic";
-                    noButton.element.style["margin-left"] = "2px";
-                    noButton.element.style["margin-right"] = "2px";
-                }
-            }
+				COMPILE::JS
+				{
+					style = getStyle(noButton);
+					style["height"] = "intrinsic";
+					style["margin-left"] = "2px";
+					style["margin-right"] = "2px";
+				}
+			}
 		}
 
 		/**
 		 * @private
-         * @royaleignorecoercion org.apache.royale.core.IBorderPaddingMarginValuesImpl
+		 * @royaleignorecoercion org.apache.royale.core.IBorderPaddingMarginValuesImpl
 		 */
 		COMPILE::SWF
 		private function refreshSize():void
@@ -259,15 +270,15 @@ package org.apache.royale.html.beads
 
 			var metrics:EdgeData = (ValuesManager.valuesImpl as IBorderPaddingMarginValuesImpl).getBorderAndPaddingMetrics(_strand as IUIBase);
 
-            var titleBarHeight:Number = 0;
+			var titleBarHeight:Number = 0;
 			if (titleBar)
-            {
-                titleBarHeight = titleBar.height;
-                titleBar.x = 0;
-                titleBar.y = 0;
-                titleBar.width = maxWidth;
-                titleBar.dispatchEvent(new Event("layoutNeeded"));
-            }
+			{
+				titleBarHeight = titleBar.height;
+				titleBar.x = 0;
+				titleBar.y = 0;
+				titleBar.width = maxWidth;
+				titleBar.dispatchEvent(new Event("layoutNeeded"));
+			}
 
 			// content placement here
 			label.x = metrics.left;
@@ -323,7 +334,7 @@ package org.apache.royale.html.beads
 		public function dispatchCloseEvent(buttonFlag:uint):void
 		{
 			var closeEvent:CloseEvent = new CloseEvent("close", false, false, buttonFlag);
-			IEventDispatcher(_strand).dispatchEvent(closeEvent);
+			sendStrandEvent(_strand,closeEvent);
 		}
 	}
 }
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendBeadEvent.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendBeadEvent.as
index a6c5ba4..7757157 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendBeadEvent.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendBeadEvent.as
@@ -21,6 +21,7 @@ package org.apache.royale.utils
   COMPILE::SWF
   {
     import flash.events.Event;
+    import org.apache.royale.events.Event;
   }
 
   import org.apache.royale.core.IBead;
@@ -33,16 +34,16 @@ package org.apache.royale.utils
    * @royalesuppressexport
    * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
    */
-  public function sendBeadEvent(bead:IBead,event:Object):void
+  public function sendBeadEvent(bead:IBead,event:Object):Boolean
   {
       COMPILE::SWF{
         if(event is String)
-          event = new flash.events.Event(event as String);
-        (bead as IEventDispatcher).dispatchEvent(event as flash.events.Event);
+          event = new org.apache.royale.events.Event(event as String);
+        return (bead as IEventDispatcher).dispatchEvent(event as flash.events.Event);
       }
       COMPILE::JS
       {
-        (bead as IEventDispatcher).dispatchEvent(event);
+        return (bead as IEventDispatcher).dispatchEvent(event);
       }
   }
 }
\ No newline at end of file
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendEvent.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendEvent.as
index 79f246a..f4ef25f 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendEvent.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendEvent.as
@@ -21,6 +21,7 @@ package org.apache.royale.utils
   COMPILE::SWF
   {
     import flash.events.Event;
+    import org.apache.royale.events.Event;
   }
 
   import org.apache.royale.events.IEventDispatcher;
@@ -31,16 +32,16 @@ package org.apache.royale.utils
    * @royalesuppressexport
    * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
    */
-  public function sendEvent(dispatcher:IEventDispatcher,event:Object):void
+  public function sendEvent(dispatcher:IEventDispatcher,event:Object):Boolean
   {
       COMPILE::SWF{
         if(event is String)
-          event = new flash.events.Event(event as String);
-        (dispatcher as IEventDispatcher).dispatchEvent(event as flash.events.Event);
+          event = new org.apache.royale.events.Event(event as String);
+        return (dispatcher as IEventDispatcher).dispatchEvent(event as flash.events.Event);
       }
       COMPILE::JS
       {
-        (dispatcher as IEventDispatcher).dispatchEvent(event);
+        return (dispatcher as IEventDispatcher).dispatchEvent(event);
       }
   }
 }
\ No newline at end of file
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendStrandEvent.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendStrandEvent.as
index 87e1bc9..1fd5918 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendStrandEvent.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/sendStrandEvent.as
@@ -21,6 +21,7 @@ package org.apache.royale.utils
   COMPILE::SWF
   {
     import flash.events.Event;
+    import org.apache.royale.events.Event;
   }
 
   import org.apache.royale.core.IStrand;
@@ -33,16 +34,16 @@ package org.apache.royale.utils
    * @royalesuppressexport
    * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
    */
-  public function sendStrandEvent(strand:IStrand,event:Object):void
+  public function sendStrandEvent(strand:IStrand,event:Object):Boolean
   {
       COMPILE::SWF{
         if(event is String)
-          event = new flash.events.Event(event as String);
-        (strand as IEventDispatcher).dispatchEvent(event as flash.events.Event);
+          event = new org.apache.royale.events.Event(event as String);
+        return (strand as IEventDispatcher).dispatchEvent(event as flash.events.Event);
       }
       COMPILE::JS
       {
-        (strand as IEventDispatcher).dispatchEvent(event);
+        return (strand as IEventDispatcher).dispatchEvent(event);
       }
   }
 }
\ No newline at end of file