[OpenLayers-Dev] Map event confusion

Tim Schaub tschaub at opengeo.org
Fri Mar 26 18:05:04 EDT 2010


Tim Schaub wrote:
> Stephen Woodbridge wrote:
>> Tim, et al,
>>
>> This may a question based on my ignorance, but why isn't the 
>> EVENTS_TYPES array dynamically appended to when someone adds an event 
>> listener vi map.events.on() or registerListener() or whatever registeres 
>> event listeners.
>>
>> Then the predefined list of events would only need to include those 
>> events the OL depends on being there.
>>
> 
> We could rewrite Events.js to allow listeners to be registered for any 
> named event.  And I think this could be done without negative 
> side-effect (dispensing entirely with EVENT_TYPES arrays).
> 

See patch for http://trac.openlayers.org/ticket/2555

> Tim
> 
>> -Steve W
>>
>> Tim Schaub wrote:
>>> I'm in favor of removing this cruft as well.
>>>
>>> To be clear, here are things that "work" currently:
>>>
>>>      // myapp.js
>>>
>>>      map.events.on({
>>>          popupopen: myPopupOpenListener,
>>>          // and the rest
>>>      });
>>>
>>>      var openPopup = function() {
>>>          var pop = createPopup();  // defined elsewhere
>>>          pop.show();
>>>          map.events.triggerEvent("popupopen", {popup: pop});
>>>      }
>>>
>>> Currently, if application code makes use of the events listed below, 
>>> the corresponding event listeners get called appropriately.
>>>
>>> After removing these entries from the EVENT_TYPES array, these 
>>> listeners will not get called.
>>>
>>> Again, I'm fine with this.  Just wanted to be clear that we are 
>>> changing the behavior of any applications that might be using these 
>>> named events (perhaps none).
>>>
>>> Tim
>>>
>>>
>>> Marc Jansen wrote:
>>>> Hi all,
>>>>
>>>> so do you all think I should open up a ticket with milestone 2.10 
>>>> including a patch that does
>>>>
>>>>     * leave the events in the EVENT_TYPES array as they currently are
>>>>     * but changes the documentation to not reference the events
>>>>           o addmarker,
>>>>           o removemarker,
>>>>           o clearmarkers,
>>>>           o dragstart,
>>>>           o dragend,
>>>>           o drag,
>>>>           o popupopen,
>>>>           o popupclose anymore?
>>>>     * should I add yet another ticket to remove the unneeded events 
>>>> in 3.0?
>>>>
>>>> What do you think? I am willing to provide a patch for the above ticket.
>>>>
>>>> Regards and thanks for your opinions,
>>>> Marc
>>>>
>>>>
>>>> Stephen Woodbridge schrieb:
>>>>> Christopher Schmidt wrote:
>>>>>  
>>>>>> On Thu, Mar 25, 2010 at 03:32:36PM -0600, Tim Schaub wrote:
>>>>>>    
>>>>>>> Marc Jansen wrote:
>>>>>>>      
>>>>>>>> Hi devs,
>>>>>>>>
>>>>>>>> I am rather confused about the documentation about map-events. Is 
>>>>>>>> it right that
>>>>>>>>
>>>>>>>>     * addmarker,
>>>>>>>>     * removemarker,
>>>>>>>>     * clearmarkers,
>>>>>>>>     * dragstart,
>>>>>>>>     * dragend,
>>>>>>>>     * drag
>>>>>>>>
>>>>>>>> are defined but never get triggered?
>>>>>>>>
>>>>>>>> If so, they should IMHO be removed from the EVENT_TYPES-array and 
>>>>>>>> the documentation for that.
>>>>>>>>
>>>>>>>>         
>>>>>>> The problem with removing things from the EVENT_TYPES array is 
>>>>>>> that there could be applications that have subscribers for them 
>>>>>>> and use map.events to publish.
>>>>>>>
>>>>>>> If we remove those entries, those applications break.
>>>>>>>
>>>>>>> I know this is silly.  You are right to point out that there is 
>>>>>>> little sense and lots of confusion in having them.
>>>>>>>
>>>>>>> Our safest bet is to mark them as unused and remove them in 3.0.  
>>>>>>> If others think the caution is not needed, I wouldn't be opposed 
>>>>>>> to removing them.
>>>>>>>       
>>>>>> In general, I'm supportive of any changes that make things simpler 
>>>>>> which
>>>>>> means that applications that did not throw errorrs in earlier 
>>>>>> releases will
>>>>>> continue to not throw errors in future releases.
>>>>>> In this particular case, it's hard to imagine that someone has written
>>>>>> code that specifically registers for an event that doesn't do 
>>>>>> anything.
>>>>>>
>>>>>> With sufficient documentation, I'd be willing to change the code to 
>>>>>> not
>>>>>> have those events. However,  since events (unlike methods) are not 
>>>>>> actually
>>>>>> in existence in the Natural Docs except if they're documented, I think
>>>>>> it would be equally successful -- for anyone who isn't actually 
>>>>>> digging
>>>>>> into the code itself, a fact that describes more and more of our 
>>>>>> users --
>>>>>> to just not document those events. At that point, the events simply
>>>>>> 'disappear' from the docs completely without any other work on our
>>>>>> part.
>>>>>>
>>>>>> -- Chris
>>>>>>     
>>>>> Chris, et al,
>>>>>
>>>>> I can appreciate this sentiment, I think there are a lot of "casual" 
>>>>> users that will not dig into the code and in those cases, if it is 
>>>>> not in the docs then the problem does indeed go away. But there are 
>>>>> a small but healthy number of "coders" who are trying to do more 
>>>>> with OpenLayers like Marc, myself and others I'm sure that do dig 
>>>>> into the code and spend a lot of time chasing our tails, aka: 
>>>>> learning? :) because we try something like an event that never gets 
>>>>> triggered and then scratch our heads for a while trying to figure 
>>>>> out why. We eventually do figure it out or ask and get help. I would 
>>>>> like to see doc that better explains what events exist and what gets 
>>>>> passed to them. I have also noticed that there is a trend to move 
>>>>> away from callbacks, which were somewhat better documented, in favor 
>>>>> of using events (or maybe I'm mistaken) and some objects say 
>>>>> register for such and such event to get notified when something 
>>>>> happens, but there is no additional information as to what is passed 
>>>>> to the event, etc.
>>>>>
>>>>> Regardless, I'm loving OL and continued to be impressed by how much 
>>>>> is built into OL and how easy OL is to extend once I can get my head 
>>>>> to think about the problem in in the right way.
>>>>>
>>>>> Thanks all and best regards,
>>>>>    -Steve
>>>>>
>>>>>  
>>>>>>> Tim
>>>>>>>
>>>>>>>      
>>>>>>>> Please ignore the mail if I missed something fundamental (but 
>>>>>>>> please enlighten me where these events are triggered)
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Marc
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Dev mailing list
>>>>>>>> Dev at openlayers.org
>>>>>>>> http://openlayers.org/mailman/listinfo/dev
>>>>>>>>         
>>>>>>> -- 
>>>>>>> Tim Schaub
>>>>>>> OpenGeo - http://opengeo.org
>>>>>>> Expert service straight from the developers.
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> Dev at openlayers.org
>>>>>>> http://openlayers.org/mailman/listinfo/dev
>>>>>>>       
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> Dev at openlayers.org
>>>>> http://openlayers.org/mailman/listinfo/dev
>>>>>
>>>>>   
>>>> _______________________________________________
>>>> Dev mailing list
>>>> Dev at openlayers.org
>>>> http://openlayers.org/mailman/listinfo/dev
>>>
> 
> 


-- 
Tim Schaub
OpenGeo - http://opengeo.org
Expert service straight from the developers.



More information about the Dev mailing list