I’m not sure why/how, but I checked and the change event on the DateChooser 
change event is BrowserEvent. Maybe that’s a bug.

Here’s what I get if I listen for both events and trace them to the console:

org.apache.royale.events.Event {type: "selectedDateChanged", target: 
org.a…e.r…e.h…l.DateChooser, currentTarget: org.a…e.r…e.h…l.DateChooser, 
propagationStopped_: false, defaultPrevented: false, …}
org.apache.royale.events.BrowserEvent {wrappedEvent: g…g.e…s.BrowserEvent}

The type, target and currentTarget properties are correct in the BrowserEvent 
and the rest of the properties are undefined. So, I’m not sure that it really 
matters that it is a BrowserEvent, although the construction of it has to be 
less efficient.

Either way, do you agree that there should be only one of these two events 
dispatched?

> On Nov 1, 2017, at 5:38 AM, Alex Harui <[email protected]> wrote:
> 
> I think the most common event should have a simple name like "change".  It
> makes it easier to remember.
> 
> In JS, the actual type of most events is BrowserEvent if it was initiated
> by an HTMLElement event.  We are sort of taking advantage of the fact that
> JS isn't strongly typed and hopefully nobody really needs to type-check
> the event class.
> 
> My 2 cents,
> -Alex
> 
> On 10/31/17, 4:30 PM, "Harbs" <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> Nope.
>> 
>> Copying my response from Github:
>> 
>> The only place change is referenced in the Framework is in the metadata
>> of DateChooser:
>> [Event(name="change", type="org.apache.royale.events.Event")]
>> 
>> That could easily be changed to:
>> [Event(name="selectedDateChanged", type="org.apache.royale.events.Event")]
>> 
>> The current metadata is actually incorrect, because the event type is
>> org.apache.royale.events.BrowserEvent
>> 
>> Harbs
>> 
>>> On Nov 1, 2017, at 1:29 AM, Piotr Zarzycki <[email protected]>
>>> wrote:
>>> 
>>> You can remove it if it is not fired it up for some other cases in
>>> DateChooser.
>>> 
>>> Piotr
>>> 
>>> 2017-11-01 0:23 GMT+01:00 Harbs <[email protected]>:
>>> 
>>>> My comment in the commit message needs discussion.
>>>> 
>>>> I think the change event should be removed. What do others think?
>>>> 
>>>> Harbs
>>>> 
>>>>> On Nov 1, 2017, at 1:14 AM, [email protected] wrote:
>>>>> 
>>>>> This is an automated email from the ASF dual-hosted git repository.
>>>>> 
>>>>> harbs pushed a commit to branch develop
>>>>> in repository 
>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox>
>>>>> .apache.org 
>>>>> <http://apache.org/>%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7C%7C0ff258657
>>>>> 48242cefbda08d520b77849%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
>>>>> 6450894728223920&sdata=p24zgDJLDKLtwvp1n8FWLd5kjtBxlwryG5q3GB9DSTg%3D&r
>>>>> eserved=0
>>>>> 
>>>>> 
>>>>> The following commit(s) were added to refs/heads/develop by this push:
>>>>>   new 2072541  Fixes #24
>>>>> 2072541 is described below
>>>>> 
>>>>> commit 2072541f1f9da5ed1780d497a6ec5fab52674b91
>>>>> Author: Harbs <[email protected] <mailto:[email protected]>>
>>>>> AuthorDate: Wed Nov 1 01:14:29 2017 +0200
>>>>> 
>>>>>  Fixes #24
>>>>> 
>>>>>  I’m not sure why we’re dispatching both a “selctedDateChanged” event
>>>> and a “changed” event for the same action. It seems like we should
>>>> dispatch
>>>> one or the other.
>>>>>  On the one hand, “change” is a standard name, so it’s easily
>>>> discoverable. On the other hand, “change” is one of the special events
>>>> which become BrowserEvents when dispatched.
>>>>>  I think the change event should be removed.
>>>>> ---
>>>>> .../org/apache/royale/html/beads/DateChooserView.as      | 16
>>>> ++++++++++++----
>>>>> .../html/beads/controllers/DateChooserMouseController.as |  1 -
>>>>> 2 files changed, 12 insertions(+), 5 deletions(-)
>>>>> 
>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/DateChooserView.as b/frameworks/projects/Basic/
>>>> src/main/royale/org/apache/royale/html/beads/DateChooserView.as
>>>>> index 2316f4a..17a5ef0 100644
>>>>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/DateChooserView.as
>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/DateChooserView.as
>>>>> @@ -86,6 +86,13 @@ package org.apache.royale.html.beads
>>>>>             private var daysContainer:DateChooserList;
>>>>> 
>>>>>             /**
>>>>> +              * @royaleignorecoercion org.apache.royale.core.UIBase
>>>>> +              */
>>>>> +             private function getHost():UIBase
>>>>> +             {
>>>>> +                     return _strand as UIBase;
>>>>> +             }
>>>>> +             /**
>>>>>              *  The button that causes the previous month to be
>>>> displayed by the DateChooser.
>>>>>              *
>>>>>              *  @langversion 3.0
>>>>> @@ -171,7 +178,7 @@ package org.apache.royale.html.beads
>>>>>                     _nextMonthButton.style.flexGrow = 0;
>>>>>                     monthButtonsContainer.
>>>> addElement(_nextMonthButton);
>>>>> 
>>>>> -             
>>>>> UIBase(_strand).addElement(monthButtonsContainer,
>>>> false);
>>>>> +                     getHost().addElement(monthButtonsContainer,
>>>> false);
>>>>> 
>>>>>                     // DAY NAMES
>>>>> 
>>>>> @@ -188,7 +195,7 @@ package org.apache.royale.html.beads
>>>>>                     COMPILE::SWF {
>>>>>                             dayNamesContainer.percentWidth = 100;
>>>>>                     }
>>>>> -                     UIBase(_strand).addElement(dayNamesContainer,
>>>> false);
>>>>> +                     getHost().addElement(dayNamesContainer, false);
>>>>> 
>>>>>                     // DAYS
>>>>> 
>>>>> @@ -203,7 +210,7 @@ package org.apache.royale.html.beads
>>>>>                     COMPILE::SWF {
>>>>>                             daysContainer.percentWidth = 100;
>>>>>                     }
>>>>> -                     UIBase(_strand).addElement(daysContainer,
>>>>> false);
>>>>> +                     getHost().addElement(daysContainer, false);
>>>>> 
>>>>> 
>>>>>                     IEventDispatcher(daysContainer).dispatchEvent(
>>>> new Event("itemsCreated") );
>>>>> @@ -233,7 +240,8 @@ package org.apache.royale.html.beads
>>>>>                     var index:Number = model.getIndexForSelectedDate(
>>>> );
>>>>>                     daysContainer.selectedIndex = index;
>>>>> 
>>>>> -                     IEventDispatcher(_strand).dispatchEvent(new
>>>> Event("selectedDateChanged"));
>>>>> +                     getHost().dispatchEvent(new
>>>> Event("selectedDateChanged"));
>>>>> +                     getHost().dispatchEvent( new Event("change") );
>>>>>             }
>>>>> 
>>>>>             /**
>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/controllers/DateChooserMouseController.as
>>>> b/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/controllers/DateChooserMouseController.as
>>>>> index d3ef05c..ccf3cbc 100644
>>>>> --- a/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/controllers/DateChooserMouseController.as
>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/
>>>> royale/html/beads/controllers/DateChooserMouseController.as
>>>>> @@ -81,7 +81,6 @@ package org.apache.royale.html.beads.controllers
>>>>>           var list:DateChooserList = event.target as DateChooserList;
>>>>>           var model:DateChooserModel =
>>>>> _strand.getBeadByType(IBeadModel)
>>>> as DateChooserModel;
>>>>>           model.selectedDate = list.selectedItem as Date;
>>>>> -            IEventDispatcher(_strand).dispatchEvent( new
>>>> Event("change") );
>>>>>       }
>>>>> 
>>>>>             /**
>>>>> 
>>>>> --
>>>>> To stop receiving notification emails like this one, please contact
>>>>> ['"[email protected] <mailto:[email protected]>" 
>>>>> <[email protected] <mailto:[email protected]>>'].
>>>> 
>>>> 
>>> 
>>> 
>>> -- 
>>> 
>>> Piotr Zarzycki
>>> 
>>> mobile: +48 880 859 557
>>> skype: zarzycki10
>>> 
>>> LinkedIn: 
>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linke 
>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linke>
>>> din.com 
>>> <http://din.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7C0ff25865748242cefbda08d520b7784
>>> 9%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450894728223920&sdata=i
>>> yKjF6QyvtOVxAZM%2FgiPbBT7jgVPIqjLvaCw9%2BTJbrY%3D&reserved=0
>>> 
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.link 
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.link>
>>> edin.com 
>>> <http://edin.com/>%2Fin%2Fpiotr-zarzycki-92a53552&data=02%7C01%7C%7C0ff25865748242c
>>> efbda08d520b77849%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364508947
>>> 28223920&sdata=4Y%2BsJt5LmIUcCfs31OWhHaJTbP5FtqewhVcqGqnbotM%3D&reserved=
>>> 0>
>>> 
>>> GitHub: 
>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c 
>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c>
>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7C0ff25865748242cefbda08d520b77849%7
>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450894728223920&sdata=WZtw
>>> vlQJnZK4rHRMSEnTG5iTKvR7rZZHa8qHn4fdgk0%3D&reserved=0

Reply via email to