FWIW, I fixed MouseEvents and KeyboardEvents to be the Royale types and not BrowserEvents as they are in the goog libraries.
OK. Let’s get rid of selectedDateChanged. > On Nov 1, 2017, at 5:41 PM, Alex Harui <[email protected]> wrote: > > AIUI, events generated by an HTMLElement are caught by Google Closure > Library's event subsystem and dispatched as a BrowserEvent. I think even > things we think are MouseEvents are actually dispatched as BrowserEvents. > So the actual type for lots of events on the JS side are not what the > metadata says. I think only the events we dispatch directly don't get > converted. So yes, that means that we are frequently lying about the > event type, but since JS doesn't do runtime checking, as long as your code > doesn't need to check the type (via "is" or "as") everything should "just > work". > > I'm always interested in running less code, so dispatching two events > seems unnecessary, and one should go away. I was only trying to say that > I don't care about consistency that every property change event should be > named "somePropertyChanged". IMO, it is ok for the most popular event to > be just plain "change". > > My 2 cents, > -Alex > > On 11/1/17, 12:37 AM, "Harbs" <[email protected] > <mailto:[email protected]>> wrote: > >> 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] <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] >>>>> <mailto:[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] >>>>> <mailto:[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] <mailto:[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%2Fgitb >>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitb> >>>>>>> ox >>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit >>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit> >>>>>>> box> >>>>>>> .apache.org <http://apache.org/> >>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapac >>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapac> >>>>>>> he.org >>>>>>> <http://he.org/>%2F&data=02%7C01%7C%7C817a277357384d327b7208d520fb6902%7Cfa7b1b >>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636451186536265548&sdata=pG0prOt >>>>>>> yP38hDAZWo9shrc%2F%2FIIveXWBR5LJkOS4NfH4%3D&reserved=0>%2Frepos%2Fasf >>>>>>> %2Froyale-asjs.git&data=02%7C01%7C%7C0ff258657 >>>>>>> >>>>>>> 48242cefbda08d520b77849%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C >>>>>>> 63 >>>>>>> >>>>>>> 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]> >>>>>>> <mailto:[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]> >>>>>>> <mailto:[email protected] <mailto:[email protected]>>" >>>>>>> <[email protected] <mailto:[email protected]> >>>>>>> <mailto:[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.lin >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.lin> >>>>> ke >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.li >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.li> >>>>> nke> >>>>> din.com <http://din.com/> >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin.co >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin.co> >>>>> m%2F&data=02%7C01%7C%7C817a277357384d327b7208d520fb6902%7Cfa7b1b5a7b344 >>>>> 38794aed2c178decee1%7C0%7C0%7C636451186536265548&sdata=8Vthp0Wrfb%2BeVT >>>>> yudUKEmQx2gD0ojbKiMDeh0omHxOw%3D&reserved=0>%2Fpiotrzarzycki&data=02%7C >>>>> 01%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.li >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li> >>>>> nk >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li> >>>>> nk> >>>>> edin.com <http://edin.com/> >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedin.c >>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedin.c> >>>>> om%2F&data=02%7C01%7C%7C817a277357384d327b7208d520fb6902%7Cfa7b1b5a7b34 >>>>> 438794aed2c178decee1%7C0%7C0%7C636451186536265548&sdata=xs3%2Biiq2xAXFa >>>>> jZear3dLmRjmEwQ8H2WBLfFh08AFKU%3D&reserved=0>%2Fin%2Fpiotr-zarzycki-92a >>>>> 53552&data=02%7C01%7C%7C0ff25865748242c >>>>> >>>>> efbda08d520b77849%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645089 >>>>> 47 >>>>> >>>>> 28223920&sdata=4Y%2BsJt5LmIUcCfs31OWhHaJTbP5FtqewhVcqGqnbotM%3D&reserve >>>>> d= >>>>> 0> >>>>> >>>>> GitHub: >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub> >>>>> .c >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu >>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu> >>>>> b.c> >>>>> >>>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7C0ff25865748242cefbda08d520b77849 >>>>> %7 >>>>> >>>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450894728223920&sdata=WZ >>>>> tw >>>>> vlQJnZK4rHRMSEnTG5iTKvR7rZZHa8qHn4fdgk0%3D&reserved=0
