You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/11/22 01:58:27 UTC

[royale-asjs] 03/04: allow easy injection of other or alternate event converters. I think this might be faster than a growing switch statement anyway

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

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 25fbbd4163ff4b9870a31038e28d2f46871546d8
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Nov 21 17:57:04 2018 -0800

    allow easy injection of other or alternate event converters.  I think this might be faster than a growing switch statement anyway
---
 .../org/apache/royale/core/HTMLElementWrapper.as   | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
index a4d084f..7d00bc7 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
@@ -71,22 +71,20 @@ package org.apache.royale.core
 		{
             var e:IBrowserEvent;
             var nativeEvent:Object = eventObject.getBrowserEvent();
-            switch(nativeEvent.constructor.name)
-            {
-                case "KeyboardEvent":
-                    e = KeyboardEventConverter.convert(nativeEvent);
-                    break;
-                case "MouseEvent":
-                    e = MouseEventConverter.convert(nativeEvent);
-                    break;
-                default:
-                    e = new org.apache.royale.events.BrowserEvent();
-                    break;
-            }
+            var converter:Object = converterMap[nativeEvent.constructor.name];
+            if (converter)
+                e = converter["convert"](nativeEvent);
+            else
+                e = new org.apache.royale.events.BrowserEvent();
 
 			e.wrapEvent(eventObject);
 			return HTMLElementWrapper.googFireListener(listener, e);
 		}
+        
+        /**
+         * @royalesuppresspublicvarwarning
+         */
+        static public var converterMap:Object = {};
 
         /**
          * Static initializer
@@ -95,6 +93,8 @@ package org.apache.royale.core
 		{
 			HTMLElementWrapper.googFireListener = goog.events.fireListener;
 			goog.events.fireListener = HTMLElementWrapper.fireListenerOverride;
+            converterMap["KeyboardEvent"] = KeyboardEventConverter;
+            converterMap["MouseEvent"] = MouseEventConverter;
 			return true;
 		}