You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Harbs <ha...@gmail.com> on 2018/03/15 08:40:34 UTC
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
I have what I think is a simpler (and more versatile) solution for these kinds of things.
I’m going to commit my idea soon.
> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> yishayw pushed a commit to branch EventConverter
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>
>
> The following commit(s) were added to refs/heads/EventConverter by this push:
> new 429032f Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
> 429032f is described below
>
> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>
> Export cross browser support to a bead so core implementation stays
> efficient and works on non-IE browsers
> ---
> .../Basic/src/main/resources/basic-manifest.xml | 1 +
> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
> .../beads/CrossBrowserFireListenerOverrideBead.as | 93 ++++++++++++++++++++++
> 3 files changed, 106 insertions(+), 11 deletions(-)
>
> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> index a201ea1..dbff20e 100644
> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> @@ -87,6 +87,7 @@
> <component id="ListView" class="org.apache.royale.html.beads.ListView"/>
> <component id="AccordionView" class="org.apache.royale.html.beads.AccordionView"/>
> <component id="CenterElement" class="org.apache.royale.html.beads.CenterElement"/>
> + <component id="CrossBrowserFireListenerOverrideBead" class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead" />
> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead" />
> <component id="DataGridColumnChangePropagator" class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
> <component id="DataGridColumnForceChangePropagator" class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator" />
> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> index 7aa8a0b..7228fbc 100644
> --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> @@ -71,17 +71,18 @@ package org.apache.royale.core
> {
> var e:IBrowserEvent;
> var nativeEvent:Object = eventObject.getBrowserEvent();
> - var constructorName:String = nativeEvent.constructor.toString();
> - if (constructorName.indexOf('KeyboardEvent') > -1)
> - {
> - e = KeyboardEventConverter.convert(nativeEvent);
> - } else if (constructorName.indexOf('MouseEvent') > -1)
> - {
> - e = MouseEventConverter.convert(nativeEvent);
> - } else
> - {
> - e = new org.apache.royale.events.BrowserEvent();
> - }
> + 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;
> + }
>
> e.wrapEvent(eventObject);
> return HTMLElementWrapper.googFireListener(listener, e);
> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> new file mode 100644
> index 0000000..06de46f
> --- /dev/null
> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> @@ -0,0 +1,93 @@
> +////////////////////////////////////////////////////////////////////////////////
> +//
> +// Licensed to the Apache Software Foundation (ASF) under one or more
> +// contributor license agreements. See the NOTICE file distributed with
> +// this work for additional information regarding copyright ownership.
> +// The ASF licenses this file to You under the Apache License, Version 2.0
> +// (the "License"); you may not use this file except in compliance with
> +// the License. You may obtain a copy of the License at
> +//
> +// http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +//
> +////////////////////////////////////////////////////////////////////////////////
> +package org.apache.royale.html.beads
> +{
> + import org.apache.royale.core.IBead;
> + import org.apache.royale.core.IStrand;
> + import org.apache.royale.core.HTMLElementWrapper;
> + COMPILE::JS
> + {
> + import goog.events;
> + import goog.events.EventTarget;
> + import goog.events.BrowserEvent;
> + import org.apache.royale.events.IBrowserEvent;
> + import org.apache.royale.events.utils.KeyboardEventConverter;
> + import org.apache.royale.events.utils.MouseEventConverter;
> + }
> + /**
> + * Overrides default HTMLElementWrapper implementation to make sure events are converted on all browsers
> + * including IE.
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public class CrossBrowserFireListenerOverrideBead implements IBead
> + {
> + /**
> + * Constructor.
> + *
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public function CrossBrowserFireListenerOverrideBead()
> + {
> + super();
> + }
> +
> + /**
> + * @copy org.apache.royale.core.IBead#strand
> + *
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public function set strand(value:IStrand):void
> + {
> + COMPILE::JS
> + {
> + goog.events.fireListener = CrossBrowserFireListenerOverrideBead.fireListenerOverride;
> + }
> + }
> +
> + COMPILE::JS
> + static protected function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
> + {
> + var e:IBrowserEvent;
> + var nativeEvent:Object = eventObject.getBrowserEvent();
> + var constructorName:String = nativeEvent.constructor.toString();
> + if (constructorName.indexOf('KeyboardEvent') > -1)
> + {
> + e = KeyboardEventConverter.convert(nativeEvent);
> + } else if (constructorName.indexOf('MouseEvent') > -1)
> + {
> + e = MouseEventConverter.convert(nativeEvent);
> + } else
> + {
> + e = new org.apache.royale.events.BrowserEvent();
> + }
> +
> + e.wrapEvent(eventObject);
> + return HTMLElementWrapper.googFireListener(listener, e);
> + }
> + }
> +}
>
> --
> To stop receiving notification emails like this one, please contact
> yishayw@apache.org.
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
Posted by Alex Harui <ah...@adobe.com.INVALID>.
Yes, wrapping polyfills in beads seems like a good pattern.
-Alex
On 3/15/18, 2:43 AM, "Harbs" <ha...@gmail.com> wrote:
>Yup. :-)
>
>> On Mar 15, 2018, at 11:35 AM, Piotr Zarzycki
>><pi...@gmail.com> wrote:
>>
>> Interesting this allows mimic other things probably if it's missing. :)
>>
>> 2018-03-15 10:09 GMT+01:00 Harbs <ha...@gmail.com>:
>>
>>> OK. I just pushed an IEEventAdapterBead which adds name getters to the
>>> event prototypes. It’ll just add it in IE. Along the way I added some
>>>new
>>> utility functions for creating getters.
>>>
>>> I think this is lighter-weight, and I think it’s an interesting
>>>pattern.
>>>
>>> Harbs
>>>
>>>> On Mar 15, 2018, at 11:00 AM, Harbs <ha...@gmail.com> wrote:
>>>>
>>>> Adding a different type of bead… ;-)
>>>>
>>>>> On Mar 15, 2018, at 10:49 AM, Yishay Weiss <yi...@hotmail.com>
>>> wrote:
>>>>>
>>>>> Already merged mine, using a bead. Feel free to make changes if you
>>>>>see
>>> fit.
>>>>>
>>>>>
>>>>>
>>>>> ________________________________
>>>>> From: Harbs <ha...@gmail.com>
>>>>> Sent: Thursday, March 15, 2018 10:40:34 AM
>>>>> To: dev@royale.apache.org
>>>>> Subject: Re: [royale-asjs] branch EventConverter updated: Export
>>>>>cross
>>> browser support to a bead so core implementation stays efficient and
>>>works
>>> on non-IE browsers
>>>>>
>>>>> I have what I think is a simpler (and more versatile) solution for
>>> these kinds of things.
>>>>>
>>>>> I’m going to commit my idea soon.
>>>>>
>>>>>> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>>>>>>
>>>>>> This is an automated email from the ASF dual-hosted git repository.
>>>>>>
>>>>>> yishayw pushed a commit to branch EventConverter
>>>>>> in repository
>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitb
>>>>>>ox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7Caharui%4
>>>>>>0adobe.com%7Cafaeea1e5e664c1e373c08d58a593b29%7Cfa7b1b5a7b34438794aed
>>>>>>2c178decee1%7C0%7C0%7C636567038223923374&sdata=v2BdRqgbZl7SmNAn1%2BVb
>>>>>>8vg%2FP74oOF4fGCYE9niCkxs%3D&reserved=0
>>>>>>
>>>>>>
>>>>>> The following commit(s) were added to refs/heads/EventConverter by
>>> this push:
>>>>>> new 429032f Export cross browser support to a bead so core
>>> implementation stays efficient and works on non-IE browsers
>>>>>> 429032f is described below
>>>>>>
>>>>>> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
>>>>>> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
>>>>>> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>>>>>>
>>>>>> Export cross browser support to a bead so core implementation stays
>>>>>> efficient and works on non-IE browsers
>>>>>> ---
>>>>>> .../Basic/src/main/resources/basic-manifest.xml | 1 +
>>>>>> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
>>>>>> .../beads/CrossBrowserFireListenerOverrideBead.as | 93
>>> ++++++++++++++++++++++
>>>>>> 3 files changed, 106 insertions(+), 11 deletions(-)
>>>>>>
>>>>>> diff --git
>>>>>>a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>>> index a201ea1..dbff20e 100644
>>>>>> ---
>>>>>>a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>>> +++
>>>>>>b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>>> @@ -87,6 +87,7 @@
>>>>>> <component id="ListView" class="org.apache.royale.html.
>>> beads.ListView"/>
>>>>>> <component id="AccordionView" class="org.apache.royale.html.
>>> beads.AccordionView"/>
>>>>>> <component id="CenterElement" class="org.apache.royale.html.
>>> beads.CenterElement"/>
>>>>>> + <component id="CrossBrowserFireListenerOverrideBead"
>>>
>>>class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead
>>>"
>>> />
>>>>>> <component id="AccessibilityAltBead"
>>>>>>class="org.apache.royale.html.beads.AccessibilityAltBead"
>>> />
>>>>>> <component id="DataGridColumnChangePropagator"
>>> class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
>>>>>> <component id="DataGridColumnForceChangePropagator"
>>>
>>>class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator"
>>> />
>>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>>> royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/
>>> src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>>>>>> index 7aa8a0b..7228fbc 100644
>>>>>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/
>>> royale/core/HTMLElementWrapper.as
>>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>>> royale/core/HTMLElementWrapper.as
>>>>>> @@ -71,17 +71,18 @@ package org.apache.royale.core
>>>>>> {
>>>>>> var e:IBrowserEvent;
>>>>>> var nativeEvent:Object = eventObject.getBrowserEvent();
>>>>>> - var constructorName:String =
>>> nativeEvent.constructor.toString();
>>>>>> - if (constructorName.indexOf('KeyboardEvent') >
>>> -1)
>>>>>> - {
>>>>>> - e = KeyboardEventConverter.
>>> convert(nativeEvent);
>>>>>> - } else if
>>>>>>(constructorName.indexOf('MouseEvent')
>>>> -1)
>>>>>> - {
>>>>>> - e = MouseEventConverter.convert(
>>> nativeEvent);
>>>>>> - } else
>>>>>> - {
>>>>>> - e = new org.apache.royale.events.
>>> BrowserEvent();
>>>>>> - }
>>>>>> + 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;
>>>>>> + }
>>>>>>
>>>>>> e.wrapEvent(eventObject);
>>>>>> return
>>>>>>HTMLElementWrapper.googFireListener(listener,
>>> e);
>>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>>> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>>>
>>>b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads
>>>/
>>> CrossBrowserFireListenerOverrideBead.as
>>>>>> new file mode 100644
>>>>>> index 0000000..06de46f
>>>>>> --- /dev/null
>>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>>> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>>>>>> @@ -0,0 +1,93 @@
>>>>>> +///////////////////////////////////////////////////////////
>>> /////////////////////
>>>>>> +//
>>>>>> +// Licensed to the Apache Software Foundation (ASF) under one or
>>>>>>more
>>>>>> +// contributor license agreements. See the NOTICE file
>>>>>>distributed
>>> with
>>>>>> +// this work for additional information regarding copyright
>>> ownership.
>>>>>> +// The ASF licenses this file to You under the Apache License,
>>> Version 2.0
>>>>>> +// (the "License"); you may not use this file except in compliance
>>> with
>>>>>> +// the License. You may obtain a copy of the License at
>>>>>> +//
>>>>>> +//
>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.a
>>>>>>pache.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7Caharui%40adobe.com%
>>>>>>7Cafaeea1e5e664c1e373c08d58a593b29%7Cfa7b1b5a7b34438794aed2c178decee1
>>>>>>%7C0%7C0%7C636567038223923374&sdata=SPt6oA3EYstrxVT8PNWbo51swGoOeW319
>>>>>>ph5HL90pEc%3D&reserved=0
>>>>>> +//
>>>>>> +// Unless required by applicable law or agreed to in writing,
>>> software
>>>>>> +// distributed under the License is distributed on an "AS IS"
>>>>>>BASIS,
>>>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>> implied.
>>>>>> +// See the License for the specific language governing permissions
>>> and
>>>>>> +// limitations under the License.
>>>>>> +//
>>>>>> +///////////////////////////////////////////////////////////
>>> /////////////////////
>>>>>> +package org.apache.royale.html.beads
>>>>>> +{
>>>>>> + import org.apache.royale.core.IBead;
>>>>>> + import org.apache.royale.core.IStrand;
>>>>>> + import org.apache.royale.core.HTMLElementWrapper;
>>>>>> + COMPILE::JS
>>>>>> + {
>>>>>> + import goog.events;
>>>>>> + import goog.events.EventTarget;
>>>>>> + import goog.events.BrowserEvent;
>>>>>> + import org.apache.royale.events.IBrowserEvent;
>>>>>> + import
>>>>>>org.apache.royale.events.utils.KeyboardEventConverter;
>>>>>> + import org.apache.royale.events.utils.MouseEventConverter;
>>>>>> + }
>>>>>> + /**
>>>>>> + * Overrides default HTMLElementWrapper implementation to make
>>> sure events are converted on all browsers
>>>>>> + * including IE.
>>>>>> + * @langversion 3.0
>>>>>> + * @playerversion Flash 10.2
>>>>>> + * @playerversion AIR 2.6
>>>>>> + * @productversion Royale 0.92
>>>>>> + */
>>>>>> + public class CrossBrowserFireListenerOverrideBead implements
>>> IBead
>>>>>> + {
>>>>>> + /**
>>>>>> + * Constructor.
>>>>>> + *
>>>>>> + * @langversion 3.0
>>>>>> + * @playerversion Flash 10.2
>>>>>> + * @playerversion AIR 2.6
>>>>>> + * @productversion Royale 0.92
>>>>>> + */
>>>>>> + public function CrossBrowserFireListenerOverrideBead()
>>>>>> + {
>>>>>> + super();
>>>>>> + }
>>>>>> +
>>>>>> + /**
>>>>>> + * @copy org.apache.royale.core.IBead#strand
>>>>>> + *
>>>>>> + * @langversion 3.0
>>>>>> + * @playerversion Flash 10.2
>>>>>> + * @playerversion AIR 2.6
>>>>>> + * @productversion Royale 0.92
>>>>>> + */
>>>>>> + public function set strand(value:IStrand):void
>>>>>> + {
>>>>>> + COMPILE::JS
>>>>>> + {
>>>>>> + goog.events.fireListener =
>>> CrossBrowserFireListenerOverrideBead.fireListenerOverride;
>>>>>> + }
>>>>>> + }
>>>>>> +
>>>>>> + COMPILE::JS
>>>>>> + static protected function
>>>>>>fireListenerOverride(listener:Object,
>>> eventObject:goog.events.BrowserEvent):Boolean
>>>>>> + {
>>>>>> + var e:IBrowserEvent;
>>>>>> + var nativeEvent:Object = eventObject.getBrowserEvent();
>>>>>> + var constructorName:String =
>>> nativeEvent.constructor.toString();
>>>>>> + if (constructorName.indexOf('KeyboardEvent') >
>>> -1)
>>>>>> + {
>>>>>> + e = KeyboardEventConverter.
>>> convert(nativeEvent);
>>>>>> + } else if
>>>>>>(constructorName.indexOf('MouseEvent')
>>>> -1)
>>>>>> + {
>>>>>> + e = MouseEventConverter.convert(
>>> nativeEvent);
>>>>>> + } else
>>>>>> + {
>>>>>> + e = new org.apache.royale.events.
>>> BrowserEvent();
>>>>>> + }
>>>>>> +
>>>>>> + e.wrapEvent(eventObject);
>>>>>> + return
>>>>>>HTMLElementWrapper.googFireListener(listener,
>>> e);
>>>>>> + }
>>>>>> + }
>>>>>> +}
>>>>>>
>>>>>> --
>>>>>> To stop receiving notification emails like this one, please contact
>>>>>> yishayw@apache.org.
>>>>>
>>>>
>>>
>>>
>>
>>
>> --
>>
>> Piotr Zarzycki
>>
>> Patreon:
>>*https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat
>>reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cafaeea1e5e66
>>4c1e373c08d58a593b29%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6365670
>>38223933384&sdata=Lnijt3WwCHHi%2BT7Q8znvg6A4%2BPsic4zbOhaB58HB5N0%3D&rese
>>rved=0
>>
>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat
>>reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cafaeea1e5e66
>>4c1e373c08d58a593b29%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6365670
>>38223933384&sdata=Lnijt3WwCHHi%2BT7Q8znvg6A4%2BPsic4zbOhaB58HB5N0%3D&rese
>>rved=0>*
>
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
Posted by Harbs <ha...@gmail.com>.
Yup. :-)
> On Mar 15, 2018, at 11:35 AM, Piotr Zarzycki <pi...@gmail.com> wrote:
>
> Interesting this allows mimic other things probably if it's missing. :)
>
> 2018-03-15 10:09 GMT+01:00 Harbs <ha...@gmail.com>:
>
>> OK. I just pushed an IEEventAdapterBead which adds name getters to the
>> event prototypes. It’ll just add it in IE. Along the way I added some new
>> utility functions for creating getters.
>>
>> I think this is lighter-weight, and I think it’s an interesting pattern.
>>
>> Harbs
>>
>>> On Mar 15, 2018, at 11:00 AM, Harbs <ha...@gmail.com> wrote:
>>>
>>> Adding a different type of bead… ;-)
>>>
>>>> On Mar 15, 2018, at 10:49 AM, Yishay Weiss <yi...@hotmail.com>
>> wrote:
>>>>
>>>> Already merged mine, using a bead. Feel free to make changes if you see
>> fit.
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> From: Harbs <ha...@gmail.com>
>>>> Sent: Thursday, March 15, 2018 10:40:34 AM
>>>> To: dev@royale.apache.org
>>>> Subject: Re: [royale-asjs] branch EventConverter updated: Export cross
>> browser support to a bead so core implementation stays efficient and works
>> on non-IE browsers
>>>>
>>>> I have what I think is a simpler (and more versatile) solution for
>> these kinds of things.
>>>>
>>>> I’m going to commit my idea soon.
>>>>
>>>>> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>>>>>
>>>>> This is an automated email from the ASF dual-hosted git repository.
>>>>>
>>>>> yishayw pushed a commit to branch EventConverter
>>>>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>>>>>
>>>>>
>>>>> The following commit(s) were added to refs/heads/EventConverter by
>> this push:
>>>>> new 429032f Export cross browser support to a bead so core
>> implementation stays efficient and works on non-IE browsers
>>>>> 429032f is described below
>>>>>
>>>>> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
>>>>> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
>>>>> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>>>>>
>>>>> Export cross browser support to a bead so core implementation stays
>>>>> efficient and works on non-IE browsers
>>>>> ---
>>>>> .../Basic/src/main/resources/basic-manifest.xml | 1 +
>>>>> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
>>>>> .../beads/CrossBrowserFireListenerOverrideBead.as | 93
>> ++++++++++++++++++++++
>>>>> 3 files changed, 106 insertions(+), 11 deletions(-)
>>>>>
>>>>> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>> index a201ea1..dbff20e 100644
>>>>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>>>> @@ -87,6 +87,7 @@
>>>>> <component id="ListView" class="org.apache.royale.html.
>> beads.ListView"/>
>>>>> <component id="AccordionView" class="org.apache.royale.html.
>> beads.AccordionView"/>
>>>>> <component id="CenterElement" class="org.apache.royale.html.
>> beads.CenterElement"/>
>>>>> + <component id="CrossBrowserFireListenerOverrideBead"
>> class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead"
>> />
>>>>> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead"
>> />
>>>>> <component id="DataGridColumnChangePropagator"
>> class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
>>>>> <component id="DataGridColumnForceChangePropagator"
>> class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator"
>> />
>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>> royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/
>> src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>>>>> index 7aa8a0b..7228fbc 100644
>>>>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/
>> royale/core/HTMLElementWrapper.as
>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>> royale/core/HTMLElementWrapper.as
>>>>> @@ -71,17 +71,18 @@ package org.apache.royale.core
>>>>> {
>>>>> var e:IBrowserEvent;
>>>>> var nativeEvent:Object = eventObject.getBrowserEvent();
>>>>> - var constructorName:String =
>> nativeEvent.constructor.toString();
>>>>> - if (constructorName.indexOf('KeyboardEvent') >
>> -1)
>>>>> - {
>>>>> - e = KeyboardEventConverter.
>> convert(nativeEvent);
>>>>> - } else if (constructorName.indexOf('MouseEvent')
>>> -1)
>>>>> - {
>>>>> - e = MouseEventConverter.convert(
>> nativeEvent);
>>>>> - } else
>>>>> - {
>>>>> - e = new org.apache.royale.events.
>> BrowserEvent();
>>>>> - }
>>>>> + 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;
>>>>> + }
>>>>>
>>>>> e.wrapEvent(eventObject);
>>>>> return HTMLElementWrapper.googFireListener(listener,
>> e);
>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/
>> CrossBrowserFireListenerOverrideBead.as
>>>>> new file mode 100644
>>>>> index 0000000..06de46f
>>>>> --- /dev/null
>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>>>>> @@ -0,0 +1,93 @@
>>>>> +///////////////////////////////////////////////////////////
>> /////////////////////
>>>>> +//
>>>>> +// Licensed to the Apache Software Foundation (ASF) under one or more
>>>>> +// contributor license agreements. See the NOTICE file distributed
>> with
>>>>> +// this work for additional information regarding copyright
>> ownership.
>>>>> +// The ASF licenses this file to You under the Apache License,
>> Version 2.0
>>>>> +// (the "License"); you may not use this file except in compliance
>> with
>>>>> +// the License. You may obtain a copy of the License at
>>>>> +//
>>>>> +// http://www.apache.org/licenses/LICENSE-2.0
>>>>> +//
>>>>> +// Unless required by applicable law or agreed to in writing,
>> software
>>>>> +// distributed under the License is distributed on an "AS IS" BASIS,
>>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>>>>> +// See the License for the specific language governing permissions
>> and
>>>>> +// limitations under the License.
>>>>> +//
>>>>> +///////////////////////////////////////////////////////////
>> /////////////////////
>>>>> +package org.apache.royale.html.beads
>>>>> +{
>>>>> + import org.apache.royale.core.IBead;
>>>>> + import org.apache.royale.core.IStrand;
>>>>> + import org.apache.royale.core.HTMLElementWrapper;
>>>>> + COMPILE::JS
>>>>> + {
>>>>> + import goog.events;
>>>>> + import goog.events.EventTarget;
>>>>> + import goog.events.BrowserEvent;
>>>>> + import org.apache.royale.events.IBrowserEvent;
>>>>> + import org.apache.royale.events.utils.KeyboardEventConverter;
>>>>> + import org.apache.royale.events.utils.MouseEventConverter;
>>>>> + }
>>>>> + /**
>>>>> + * Overrides default HTMLElementWrapper implementation to make
>> sure events are converted on all browsers
>>>>> + * including IE.
>>>>> + * @langversion 3.0
>>>>> + * @playerversion Flash 10.2
>>>>> + * @playerversion AIR 2.6
>>>>> + * @productversion Royale 0.92
>>>>> + */
>>>>> + public class CrossBrowserFireListenerOverrideBead implements
>> IBead
>>>>> + {
>>>>> + /**
>>>>> + * Constructor.
>>>>> + *
>>>>> + * @langversion 3.0
>>>>> + * @playerversion Flash 10.2
>>>>> + * @playerversion AIR 2.6
>>>>> + * @productversion Royale 0.92
>>>>> + */
>>>>> + public function CrossBrowserFireListenerOverrideBead()
>>>>> + {
>>>>> + super();
>>>>> + }
>>>>> +
>>>>> + /**
>>>>> + * @copy org.apache.royale.core.IBead#strand
>>>>> + *
>>>>> + * @langversion 3.0
>>>>> + * @playerversion Flash 10.2
>>>>> + * @playerversion AIR 2.6
>>>>> + * @productversion Royale 0.92
>>>>> + */
>>>>> + public function set strand(value:IStrand):void
>>>>> + {
>>>>> + COMPILE::JS
>>>>> + {
>>>>> + goog.events.fireListener =
>> CrossBrowserFireListenerOverrideBead.fireListenerOverride;
>>>>> + }
>>>>> + }
>>>>> +
>>>>> + COMPILE::JS
>>>>> + static protected function fireListenerOverride(listener:Object,
>> eventObject:goog.events.BrowserEvent):Boolean
>>>>> + {
>>>>> + var e:IBrowserEvent;
>>>>> + var nativeEvent:Object = eventObject.getBrowserEvent();
>>>>> + var constructorName:String =
>> nativeEvent.constructor.toString();
>>>>> + if (constructorName.indexOf('KeyboardEvent') >
>> -1)
>>>>> + {
>>>>> + e = KeyboardEventConverter.
>> convert(nativeEvent);
>>>>> + } else if (constructorName.indexOf('MouseEvent')
>>> -1)
>>>>> + {
>>>>> + e = MouseEventConverter.convert(
>> nativeEvent);
>>>>> + } else
>>>>> + {
>>>>> + e = new org.apache.royale.events.
>> BrowserEvent();
>>>>> + }
>>>>> +
>>>>> + e.wrapEvent(eventObject);
>>>>> + return HTMLElementWrapper.googFireListener(listener,
>> e);
>>>>> + }
>>>>> + }
>>>>> +}
>>>>>
>>>>> --
>>>>> To stop receiving notification emails like this one, please contact
>>>>> yishayw@apache.org.
>>>>
>>>
>>
>>
>
>
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE browsers
Posted by Piotr Zarzycki <pi...@gmail.com>.
Interesting this allows mimic other things probably if it's missing. :)
2018-03-15 10:09 GMT+01:00 Harbs <ha...@gmail.com>:
> OK. I just pushed an IEEventAdapterBead which adds name getters to the
> event prototypes. It’ll just add it in IE. Along the way I added some new
> utility functions for creating getters.
>
> I think this is lighter-weight, and I think it’s an interesting pattern.
>
> Harbs
>
> > On Mar 15, 2018, at 11:00 AM, Harbs <ha...@gmail.com> wrote:
> >
> > Adding a different type of bead… ;-)
> >
> >> On Mar 15, 2018, at 10:49 AM, Yishay Weiss <yi...@hotmail.com>
> wrote:
> >>
> >> Already merged mine, using a bead. Feel free to make changes if you see
> fit.
> >>
> >>
> >>
> >> ________________________________
> >> From: Harbs <ha...@gmail.com>
> >> Sent: Thursday, March 15, 2018 10:40:34 AM
> >> To: dev@royale.apache.org
> >> Subject: Re: [royale-asjs] branch EventConverter updated: Export cross
> browser support to a bead so core implementation stays efficient and works
> on non-IE browsers
> >>
> >> I have what I think is a simpler (and more versatile) solution for
> these kinds of things.
> >>
> >> I’m going to commit my idea soon.
> >>
> >>> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
> >>>
> >>> This is an automated email from the ASF dual-hosted git repository.
> >>>
> >>> yishayw pushed a commit to branch EventConverter
> >>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
> >>>
> >>>
> >>> The following commit(s) were added to refs/heads/EventConverter by
> this push:
> >>> new 429032f Export cross browser support to a bead so core
> implementation stays efficient and works on non-IE browsers
> >>> 429032f is described below
> >>>
> >>> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
> >>> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
> >>> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
> >>>
> >>> Export cross browser support to a bead so core implementation stays
> >>> efficient and works on non-IE browsers
> >>> ---
> >>> .../Basic/src/main/resources/basic-manifest.xml | 1 +
> >>> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
> >>> .../beads/CrossBrowserFireListenerOverrideBead.as | 93
> ++++++++++++++++++++++
> >>> 3 files changed, 106 insertions(+), 11 deletions(-)
> >>>
> >>> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> >>> index a201ea1..dbff20e 100644
> >>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> >>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> >>> @@ -87,6 +87,7 @@
> >>> <component id="ListView" class="org.apache.royale.html.
> beads.ListView"/>
> >>> <component id="AccordionView" class="org.apache.royale.html.
> beads.AccordionView"/>
> >>> <component id="CenterElement" class="org.apache.royale.html.
> beads.CenterElement"/>
> >>> + <component id="CrossBrowserFireListenerOverrideBead"
> class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead"
> />
> >>> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead"
> />
> >>> <component id="DataGridColumnChangePropagator"
> class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
> >>> <component id="DataGridColumnForceChangePropagator"
> class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator"
> />
> >>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
> royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/
> src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> >>> index 7aa8a0b..7228fbc 100644
> >>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/
> royale/core/HTMLElementWrapper.as
> >>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
> royale/core/HTMLElementWrapper.as
> >>> @@ -71,17 +71,18 @@ package org.apache.royale.core
> >>> {
> >>> var e:IBrowserEvent;
> >>> var nativeEvent:Object = eventObject.getBrowserEvent();
> >>> - var constructorName:String =
> nativeEvent.constructor.toString();
> >>> - if (constructorName.indexOf('KeyboardEvent') >
> -1)
> >>> - {
> >>> - e = KeyboardEventConverter.
> convert(nativeEvent);
> >>> - } else if (constructorName.indexOf('MouseEvent')
> > -1)
> >>> - {
> >>> - e = MouseEventConverter.convert(
> nativeEvent);
> >>> - } else
> >>> - {
> >>> - e = new org.apache.royale.events.
> BrowserEvent();
> >>> - }
> >>> + 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;
> >>> + }
> >>>
> >>> e.wrapEvent(eventObject);
> >>> return HTMLElementWrapper.googFireListener(listener,
> e);
> >>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/
> CrossBrowserFireListenerOverrideBead.as
> >>> new file mode 100644
> >>> index 0000000..06de46f
> >>> --- /dev/null
> >>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
> royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> >>> @@ -0,0 +1,93 @@
> >>> +///////////////////////////////////////////////////////////
> /////////////////////
> >>> +//
> >>> +// Licensed to the Apache Software Foundation (ASF) under one or more
> >>> +// contributor license agreements. See the NOTICE file distributed
> with
> >>> +// this work for additional information regarding copyright
> ownership.
> >>> +// The ASF licenses this file to You under the Apache License,
> Version 2.0
> >>> +// (the "License"); you may not use this file except in compliance
> with
> >>> +// the License. You may obtain a copy of the License at
> >>> +//
> >>> +// http://www.apache.org/licenses/LICENSE-2.0
> >>> +//
> >>> +// Unless required by applicable law or agreed to in writing,
> software
> >>> +// distributed under the License is distributed on an "AS IS" BASIS,
> >>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> >>> +// See the License for the specific language governing permissions
> and
> >>> +// limitations under the License.
> >>> +//
> >>> +///////////////////////////////////////////////////////////
> /////////////////////
> >>> +package org.apache.royale.html.beads
> >>> +{
> >>> + import org.apache.royale.core.IBead;
> >>> + import org.apache.royale.core.IStrand;
> >>> + import org.apache.royale.core.HTMLElementWrapper;
> >>> + COMPILE::JS
> >>> + {
> >>> + import goog.events;
> >>> + import goog.events.EventTarget;
> >>> + import goog.events.BrowserEvent;
> >>> + import org.apache.royale.events.IBrowserEvent;
> >>> + import org.apache.royale.events.utils.KeyboardEventConverter;
> >>> + import org.apache.royale.events.utils.MouseEventConverter;
> >>> + }
> >>> + /**
> >>> + * Overrides default HTMLElementWrapper implementation to make
> sure events are converted on all browsers
> >>> + * including IE.
> >>> + * @langversion 3.0
> >>> + * @playerversion Flash 10.2
> >>> + * @playerversion AIR 2.6
> >>> + * @productversion Royale 0.92
> >>> + */
> >>> + public class CrossBrowserFireListenerOverrideBead implements
> IBead
> >>> + {
> >>> + /**
> >>> + * Constructor.
> >>> + *
> >>> + * @langversion 3.0
> >>> + * @playerversion Flash 10.2
> >>> + * @playerversion AIR 2.6
> >>> + * @productversion Royale 0.92
> >>> + */
> >>> + public function CrossBrowserFireListenerOverrideBead()
> >>> + {
> >>> + super();
> >>> + }
> >>> +
> >>> + /**
> >>> + * @copy org.apache.royale.core.IBead#strand
> >>> + *
> >>> + * @langversion 3.0
> >>> + * @playerversion Flash 10.2
> >>> + * @playerversion AIR 2.6
> >>> + * @productversion Royale 0.92
> >>> + */
> >>> + public function set strand(value:IStrand):void
> >>> + {
> >>> + COMPILE::JS
> >>> + {
> >>> + goog.events.fireListener =
> CrossBrowserFireListenerOverrideBead.fireListenerOverride;
> >>> + }
> >>> + }
> >>> +
> >>> + COMPILE::JS
> >>> + static protected function fireListenerOverride(listener:Object,
> eventObject:goog.events.BrowserEvent):Boolean
> >>> + {
> >>> + var e:IBrowserEvent;
> >>> + var nativeEvent:Object = eventObject.getBrowserEvent();
> >>> + var constructorName:String =
> nativeEvent.constructor.toString();
> >>> + if (constructorName.indexOf('KeyboardEvent') >
> -1)
> >>> + {
> >>> + e = KeyboardEventConverter.
> convert(nativeEvent);
> >>> + } else if (constructorName.indexOf('MouseEvent')
> > -1)
> >>> + {
> >>> + e = MouseEventConverter.convert(
> nativeEvent);
> >>> + } else
> >>> + {
> >>> + e = new org.apache.royale.events.
> BrowserEvent();
> >>> + }
> >>> +
> >>> + e.wrapEvent(eventObject);
> >>> + return HTMLElementWrapper.googFireListener(listener,
> e);
> >>> + }
> >>> + }
> >>> +}
> >>>
> >>> --
> >>> To stop receiving notification emails like this one, please contact
> >>> yishayw@apache.org.
> >>
> >
>
>
--
Piotr Zarzycki
Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
Posted by Harbs <ha...@gmail.com>.
OK. I just pushed an IEEventAdapterBead which adds name getters to the event prototypes. It’ll just add it in IE. Along the way I added some new utility functions for creating getters.
I think this is lighter-weight, and I think it’s an interesting pattern.
Harbs
> On Mar 15, 2018, at 11:00 AM, Harbs <ha...@gmail.com> wrote:
>
> Adding a different type of bead… ;-)
>
>> On Mar 15, 2018, at 10:49 AM, Yishay Weiss <yi...@hotmail.com> wrote:
>>
>> Already merged mine, using a bead. Feel free to make changes if you see fit.
>>
>>
>>
>> ________________________________
>> From: Harbs <ha...@gmail.com>
>> Sent: Thursday, March 15, 2018 10:40:34 AM
>> To: dev@royale.apache.org
>> Subject: Re: [royale-asjs] branch EventConverter updated: Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
>>
>> I have what I think is a simpler (and more versatile) solution for these kinds of things.
>>
>> I’m going to commit my idea soon.
>>
>>> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>>>
>>> This is an automated email from the ASF dual-hosted git repository.
>>>
>>> yishayw pushed a commit to branch EventConverter
>>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>>>
>>>
>>> The following commit(s) were added to refs/heads/EventConverter by this push:
>>> new 429032f Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
>>> 429032f is described below
>>>
>>> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
>>> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
>>> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>>>
>>> Export cross browser support to a bead so core implementation stays
>>> efficient and works on non-IE browsers
>>> ---
>>> .../Basic/src/main/resources/basic-manifest.xml | 1 +
>>> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
>>> .../beads/CrossBrowserFireListenerOverrideBead.as | 93 ++++++++++++++++++++++
>>> 3 files changed, 106 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>> index a201ea1..dbff20e 100644
>>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>>> @@ -87,6 +87,7 @@
>>> <component id="ListView" class="org.apache.royale.html.beads.ListView"/>
>>> <component id="AccordionView" class="org.apache.royale.html.beads.AccordionView"/>
>>> <component id="CenterElement" class="org.apache.royale.html.beads.CenterElement"/>
>>> + <component id="CrossBrowserFireListenerOverrideBead" class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead" />
>>> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead" />
>>> <component id="DataGridColumnChangePropagator" class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
>>> <component id="DataGridColumnForceChangePropagator" class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator" />
>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>>> index 7aa8a0b..7228fbc 100644
>>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>>> @@ -71,17 +71,18 @@ package org.apache.royale.core
>>> {
>>> var e:IBrowserEvent;
>>> var nativeEvent:Object = eventObject.getBrowserEvent();
>>> - var constructorName:String = nativeEvent.constructor.toString();
>>> - if (constructorName.indexOf('KeyboardEvent') > -1)
>>> - {
>>> - e = KeyboardEventConverter.convert(nativeEvent);
>>> - } else if (constructorName.indexOf('MouseEvent') > -1)
>>> - {
>>> - e = MouseEventConverter.convert(nativeEvent);
>>> - } else
>>> - {
>>> - e = new org.apache.royale.events.BrowserEvent();
>>> - }
>>> + 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;
>>> + }
>>>
>>> e.wrapEvent(eventObject);
>>> return HTMLElementWrapper.googFireListener(listener, e);
>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>>> new file mode 100644
>>> index 0000000..06de46f
>>> --- /dev/null
>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>>> @@ -0,0 +1,93 @@
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +//
>>> +// Licensed to the Apache Software Foundation (ASF) under one or more
>>> +// contributor license agreements. See the NOTICE file distributed with
>>> +// this work for additional information regarding copyright ownership.
>>> +// The ASF licenses this file to You under the Apache License, Version 2.0
>>> +// (the "License"); you may not use this file except in compliance with
>>> +// the License. You may obtain a copy of the License at
>>> +//
>>> +// http://www.apache.org/licenses/LICENSE-2.0
>>> +//
>>> +// Unless required by applicable law or agreed to in writing, software
>>> +// distributed under the License is distributed on an "AS IS" BASIS,
>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>>> +// See the License for the specific language governing permissions and
>>> +// limitations under the License.
>>> +//
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +package org.apache.royale.html.beads
>>> +{
>>> + import org.apache.royale.core.IBead;
>>> + import org.apache.royale.core.IStrand;
>>> + import org.apache.royale.core.HTMLElementWrapper;
>>> + COMPILE::JS
>>> + {
>>> + import goog.events;
>>> + import goog.events.EventTarget;
>>> + import goog.events.BrowserEvent;
>>> + import org.apache.royale.events.IBrowserEvent;
>>> + import org.apache.royale.events.utils.KeyboardEventConverter;
>>> + import org.apache.royale.events.utils.MouseEventConverter;
>>> + }
>>> + /**
>>> + * Overrides default HTMLElementWrapper implementation to make sure events are converted on all browsers
>>> + * including IE.
>>> + * @langversion 3.0
>>> + * @playerversion Flash 10.2
>>> + * @playerversion AIR 2.6
>>> + * @productversion Royale 0.92
>>> + */
>>> + public class CrossBrowserFireListenerOverrideBead implements IBead
>>> + {
>>> + /**
>>> + * Constructor.
>>> + *
>>> + * @langversion 3.0
>>> + * @playerversion Flash 10.2
>>> + * @playerversion AIR 2.6
>>> + * @productversion Royale 0.92
>>> + */
>>> + public function CrossBrowserFireListenerOverrideBead()
>>> + {
>>> + super();
>>> + }
>>> +
>>> + /**
>>> + * @copy org.apache.royale.core.IBead#strand
>>> + *
>>> + * @langversion 3.0
>>> + * @playerversion Flash 10.2
>>> + * @playerversion AIR 2.6
>>> + * @productversion Royale 0.92
>>> + */
>>> + public function set strand(value:IStrand):void
>>> + {
>>> + COMPILE::JS
>>> + {
>>> + goog.events.fireListener = CrossBrowserFireListenerOverrideBead.fireListenerOverride;
>>> + }
>>> + }
>>> +
>>> + COMPILE::JS
>>> + static protected function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
>>> + {
>>> + var e:IBrowserEvent;
>>> + var nativeEvent:Object = eventObject.getBrowserEvent();
>>> + var constructorName:String = nativeEvent.constructor.toString();
>>> + if (constructorName.indexOf('KeyboardEvent') > -1)
>>> + {
>>> + e = KeyboardEventConverter.convert(nativeEvent);
>>> + } else if (constructorName.indexOf('MouseEvent') > -1)
>>> + {
>>> + e = MouseEventConverter.convert(nativeEvent);
>>> + } else
>>> + {
>>> + e = new org.apache.royale.events.BrowserEvent();
>>> + }
>>> +
>>> + e.wrapEvent(eventObject);
>>> + return HTMLElementWrapper.googFireListener(listener, e);
>>> + }
>>> + }
>>> +}
>>>
>>> --
>>> To stop receiving notification emails like this one, please contact
>>> yishayw@apache.org.
>>
>
Re: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
Posted by Harbs <ha...@gmail.com>.
Adding a different type of bead… ;-)
> On Mar 15, 2018, at 10:49 AM, Yishay Weiss <yi...@hotmail.com> wrote:
>
> Already merged mine, using a bead. Feel free to make changes if you see fit.
>
>
>
> ________________________________
> From: Harbs <ha...@gmail.com>
> Sent: Thursday, March 15, 2018 10:40:34 AM
> To: dev@royale.apache.org
> Subject: Re: [royale-asjs] branch EventConverter updated: Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
>
> I have what I think is a simpler (and more versatile) solution for these kinds of things.
>
> I’m going to commit my idea soon.
>
>> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>>
>> This is an automated email from the ASF dual-hosted git repository.
>>
>> yishayw pushed a commit to branch EventConverter
>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>>
>>
>> The following commit(s) were added to refs/heads/EventConverter by this push:
>> new 429032f Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
>> 429032f is described below
>>
>> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
>> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
>> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>>
>> Export cross browser support to a bead so core implementation stays
>> efficient and works on non-IE browsers
>> ---
>> .../Basic/src/main/resources/basic-manifest.xml | 1 +
>> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
>> .../beads/CrossBrowserFireListenerOverrideBead.as | 93 ++++++++++++++++++++++
>> 3 files changed, 106 insertions(+), 11 deletions(-)
>>
>> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> index a201ea1..dbff20e 100644
>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> @@ -87,6 +87,7 @@
>> <component id="ListView" class="org.apache.royale.html.beads.ListView"/>
>> <component id="AccordionView" class="org.apache.royale.html.beads.AccordionView"/>
>> <component id="CenterElement" class="org.apache.royale.html.beads.CenterElement"/>
>> + <component id="CrossBrowserFireListenerOverrideBead" class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead" />
>> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead" />
>> <component id="DataGridColumnChangePropagator" class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
>> <component id="DataGridColumnForceChangePropagator" class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator" />
>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>> index 7aa8a0b..7228fbc 100644
>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
>> @@ -71,17 +71,18 @@ package org.apache.royale.core
>> {
>> var e:IBrowserEvent;
>> var nativeEvent:Object = eventObject.getBrowserEvent();
>> - var constructorName:String = nativeEvent.constructor.toString();
>> - if (constructorName.indexOf('KeyboardEvent') > -1)
>> - {
>> - e = KeyboardEventConverter.convert(nativeEvent);
>> - } else if (constructorName.indexOf('MouseEvent') > -1)
>> - {
>> - e = MouseEventConverter.convert(nativeEvent);
>> - } else
>> - {
>> - e = new org.apache.royale.events.BrowserEvent();
>> - }
>> + 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;
>> + }
>>
>> e.wrapEvent(eventObject);
>> return HTMLElementWrapper.googFireListener(listener, e);
>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>> new file mode 100644
>> index 0000000..06de46f
>> --- /dev/null
>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
>> @@ -0,0 +1,93 @@
>> +////////////////////////////////////////////////////////////////////////////////
>> +//
>> +// Licensed to the Apache Software Foundation (ASF) under one or more
>> +// contributor license agreements. See the NOTICE file distributed with
>> +// this work for additional information regarding copyright ownership.
>> +// The ASF licenses this file to You under the Apache License, Version 2.0
>> +// (the "License"); you may not use this file except in compliance with
>> +// the License. You may obtain a copy of the License at
>> +//
>> +// http://www.apache.org/licenses/LICENSE-2.0
>> +//
>> +// Unless required by applicable law or agreed to in writing, software
>> +// distributed under the License is distributed on an "AS IS" BASIS,
>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>> +// See the License for the specific language governing permissions and
>> +// limitations under the License.
>> +//
>> +////////////////////////////////////////////////////////////////////////////////
>> +package org.apache.royale.html.beads
>> +{
>> + import org.apache.royale.core.IBead;
>> + import org.apache.royale.core.IStrand;
>> + import org.apache.royale.core.HTMLElementWrapper;
>> + COMPILE::JS
>> + {
>> + import goog.events;
>> + import goog.events.EventTarget;
>> + import goog.events.BrowserEvent;
>> + import org.apache.royale.events.IBrowserEvent;
>> + import org.apache.royale.events.utils.KeyboardEventConverter;
>> + import org.apache.royale.events.utils.MouseEventConverter;
>> + }
>> + /**
>> + * Overrides default HTMLElementWrapper implementation to make sure events are converted on all browsers
>> + * including IE.
>> + * @langversion 3.0
>> + * @playerversion Flash 10.2
>> + * @playerversion AIR 2.6
>> + * @productversion Royale 0.92
>> + */
>> + public class CrossBrowserFireListenerOverrideBead implements IBead
>> + {
>> + /**
>> + * Constructor.
>> + *
>> + * @langversion 3.0
>> + * @playerversion Flash 10.2
>> + * @playerversion AIR 2.6
>> + * @productversion Royale 0.92
>> + */
>> + public function CrossBrowserFireListenerOverrideBead()
>> + {
>> + super();
>> + }
>> +
>> + /**
>> + * @copy org.apache.royale.core.IBead#strand
>> + *
>> + * @langversion 3.0
>> + * @playerversion Flash 10.2
>> + * @playerversion AIR 2.6
>> + * @productversion Royale 0.92
>> + */
>> + public function set strand(value:IStrand):void
>> + {
>> + COMPILE::JS
>> + {
>> + goog.events.fireListener = CrossBrowserFireListenerOverrideBead.fireListenerOverride;
>> + }
>> + }
>> +
>> + COMPILE::JS
>> + static protected function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
>> + {
>> + var e:IBrowserEvent;
>> + var nativeEvent:Object = eventObject.getBrowserEvent();
>> + var constructorName:String = nativeEvent.constructor.toString();
>> + if (constructorName.indexOf('KeyboardEvent') > -1)
>> + {
>> + e = KeyboardEventConverter.convert(nativeEvent);
>> + } else if (constructorName.indexOf('MouseEvent') > -1)
>> + {
>> + e = MouseEventConverter.convert(nativeEvent);
>> + } else
>> + {
>> + e = new org.apache.royale.events.BrowserEvent();
>> + }
>> +
>> + e.wrapEvent(eventObject);
>> + return HTMLElementWrapper.googFireListener(listener, e);
>> + }
>> + }
>> +}
>>
>> --
>> To stop receiving notification emails like this one, please contact
>> yishayw@apache.org.
>
RE: [royale-asjs] branch EventConverter updated: Export cross browser
support to a bead so core implementation stays efficient and works on non-IE
browsers
Posted by Yishay Weiss <yi...@hotmail.com>.
Already merged mine, using a bead. Feel free to make changes if you see fit.
________________________________
From: Harbs <ha...@gmail.com>
Sent: Thursday, March 15, 2018 10:40:34 AM
To: dev@royale.apache.org
Subject: Re: [royale-asjs] branch EventConverter updated: Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
I have what I think is a simpler (and more versatile) solution for these kinds of things.
I’m going to commit my idea soon.
> On Mar 15, 2018, at 10:37 AM, yishayw@apache.org wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> yishayw pushed a commit to branch EventConverter
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>
>
> The following commit(s) were added to refs/heads/EventConverter by this push:
> new 429032f Export cross browser support to a bead so core implementation stays efficient and works on non-IE browsers
> 429032f is described below
>
> commit 429032f75d4e48988980fda8e171c6c6e6b1e7bb
> Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
> AuthorDate: Thu Mar 15 10:36:44 2018 +0200
>
> Export cross browser support to a bead so core implementation stays
> efficient and works on non-IE browsers
> ---
> .../Basic/src/main/resources/basic-manifest.xml | 1 +
> .../org/apache/royale/core/HTMLElementWrapper.as | 23 +++---
> .../beads/CrossBrowserFireListenerOverrideBead.as | 93 ++++++++++++++++++++++
> 3 files changed, 106 insertions(+), 11 deletions(-)
>
> diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> index a201ea1..dbff20e 100644
> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
> @@ -87,6 +87,7 @@
> <component id="ListView" class="org.apache.royale.html.beads.ListView"/>
> <component id="AccordionView" class="org.apache.royale.html.beads.AccordionView"/>
> <component id="CenterElement" class="org.apache.royale.html.beads.CenterElement"/>
> + <component id="CrossBrowserFireListenerOverrideBead" class="org.apache.royale.html.beads.CrossBrowserFireListenerOverrideBead" />
> <component id="AccessibilityAltBead" class="org.apache.royale.html.beads.AccessibilityAltBead" />
> <component id="DataGridColumnChangePropagator" class="org.apache.royale.html.beads.DataGridColumnChangePropagator" />
> <component id="DataGridColumnForceChangePropagator" class="org.apache.royale.html.beads.DataGridColumnForceChangePropagator" />
> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> index 7aa8a0b..7228fbc 100644
> --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
> @@ -71,17 +71,18 @@ package org.apache.royale.core
> {
> var e:IBrowserEvent;
> var nativeEvent:Object = eventObject.getBrowserEvent();
> - var constructorName:String = nativeEvent.constructor.toString();
> - if (constructorName.indexOf('KeyboardEvent') > -1)
> - {
> - e = KeyboardEventConverter.convert(nativeEvent);
> - } else if (constructorName.indexOf('MouseEvent') > -1)
> - {
> - e = MouseEventConverter.convert(nativeEvent);
> - } else
> - {
> - e = new org.apache.royale.events.BrowserEvent();
> - }
> + 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;
> + }
>
> e.wrapEvent(eventObject);
> return HTMLElementWrapper.googFireListener(listener, e);
> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> new file mode 100644
> index 0000000..06de46f
> --- /dev/null
> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CrossBrowserFireListenerOverrideBead.as
> @@ -0,0 +1,93 @@
> +////////////////////////////////////////////////////////////////////////////////
> +//
> +// Licensed to the Apache Software Foundation (ASF) under one or more
> +// contributor license agreements. See the NOTICE file distributed with
> +// this work for additional information regarding copyright ownership.
> +// The ASF licenses this file to You under the Apache License, Version 2.0
> +// (the "License"); you may not use this file except in compliance with
> +// the License. You may obtain a copy of the License at
> +//
> +// http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +//
> +////////////////////////////////////////////////////////////////////////////////
> +package org.apache.royale.html.beads
> +{
> + import org.apache.royale.core.IBead;
> + import org.apache.royale.core.IStrand;
> + import org.apache.royale.core.HTMLElementWrapper;
> + COMPILE::JS
> + {
> + import goog.events;
> + import goog.events.EventTarget;
> + import goog.events.BrowserEvent;
> + import org.apache.royale.events.IBrowserEvent;
> + import org.apache.royale.events.utils.KeyboardEventConverter;
> + import org.apache.royale.events.utils.MouseEventConverter;
> + }
> + /**
> + * Overrides default HTMLElementWrapper implementation to make sure events are converted on all browsers
> + * including IE.
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public class CrossBrowserFireListenerOverrideBead implements IBead
> + {
> + /**
> + * Constructor.
> + *
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public function CrossBrowserFireListenerOverrideBead()
> + {
> + super();
> + }
> +
> + /**
> + * @copy org.apache.royale.core.IBead#strand
> + *
> + * @langversion 3.0
> + * @playerversion Flash 10.2
> + * @playerversion AIR 2.6
> + * @productversion Royale 0.92
> + */
> + public function set strand(value:IStrand):void
> + {
> + COMPILE::JS
> + {
> + goog.events.fireListener = CrossBrowserFireListenerOverrideBead.fireListenerOverride;
> + }
> + }
> +
> + COMPILE::JS
> + static protected function fireListenerOverride(listener:Object, eventObject:goog.events.BrowserEvent):Boolean
> + {
> + var e:IBrowserEvent;
> + var nativeEvent:Object = eventObject.getBrowserEvent();
> + var constructorName:String = nativeEvent.constructor.toString();
> + if (constructorName.indexOf('KeyboardEvent') > -1)
> + {
> + e = KeyboardEventConverter.convert(nativeEvent);
> + } else if (constructorName.indexOf('MouseEvent') > -1)
> + {
> + e = MouseEventConverter.convert(nativeEvent);
> + } else
> + {
> + e = new org.apache.royale.events.BrowserEvent();
> + }
> +
> + e.wrapEvent(eventObject);
> + return HTMLElementWrapper.googFireListener(listener, e);
> + }
> + }
> +}
>
> --
> To stop receiving notification emails like this one, please contact
> yishayw@apache.org.