[Laszlo-dev] API enhancement proposal for <handler>

P T Withington ptw at pobox.com
Wed Feb 17 09:45:49 PST 2010


Recent discussions motivate being able to dynamically specify the event that a handler is attached to and being able to dynamically enable/disable handlers[1].  Currently, handlers can only be declaratively attached to events by:

  <handler name="eventname" ...

We propose to add two new attributes to the <handler> tag:

1.  <attribute name="event" type="expression" />

If supplied, the handler will be registered to handle the event that is the value of `event`, or if `event` is null, the handler will not be registered to handle any events (it will have to be registered in script).  When `event` is supplied, `name` is optional, but if supplied, will be the name by which the handler can be referenced in script.  E.g.:

  <handler name="startCheck" event="null"> 
    ... startCheck body ... 
  </handler> 
  <handler name="hideTip" event="null"> 
    ... hideTip body ... 
  </handler> 
  <handler name="oninit"> 
    startCheck.register(parent, 'onmouseover'); 
    hideTip.register(parent, 'onmouseout'); 
    hideTip.register(parent, 'onclick'); 
  </handler>

2. <attribute name="enabled" type="boolean" />

If supplied, this attribute controls whether or not the handler is enabled (will react to the events it is registered on).  This can be more efficient than unregistering/reregistering events.  E.g.:

 <window>
   <handler reference="lz.keys" name="onkeydown" enabled="classroot.haswindowfocus">[*]
     ... will only execute on key down when this window has focus ...
   </handler>
   ...

Your comments are solicited.

---

[1] See http://jira.openlaszlo.org/jira/browse/LPP-7816


More information about the Laszlo-dev mailing list