[Laszlo-dev] schema for <handler>

P T Withington ptw at pobox.com
Thu Jan 12 18:15:17 PST 2006


I agree, the schema is wrong.

On 12 Jan 2006, at 20:45, Jim Grandy wrote:

> I'm converting the base components to use <event> and <handler>,  
> and ran into something I don't think is quite right.
>
> The proposal (http://wiki.openlaszlo.org/Event_and_handler_tags)  
> suggests that <handler> should have two forms:
>
>> <handler name="eventName" [reference="..."] [args="..."]>
>>    ...
>>  </handler>
>
> and
>
>> <handler name="eventName" [reference="..."] method="methodName" />
>
> But the schema entry looks like this:
>
>> handler =
>>   element handler {
>>    ( nameAttribute |
>>    ( nameAttribute? &
>>      ## The name of the method that this handler will call
>>      attribute method {string} &
>>      ## If this attribute is present, it is a JavaScript expression
>>      ## that evaluates to an object.  The code in this method  
>> executes
>>      ## when this object sends the event named by the @a{event}
>>      ## attribute.  This attribute may be present only if
>>      ## the @a{event} attribute is present too.
>>      [a:defaultValue="this"]
>>      attribute reference {reference}?)) &
>>     ## The parameter names of this method.  The value of this  
>> attribute
>>     ## is a comma-separated list of JavaScript identifiers.
>>     [a:defaultValue=""
>>      lza:modifiers="final"]
>>     attribute args {string}? &
>>     text
>>   }
>>
>
> I read this as allowing
>
> <handler name="eventName" [args="..."]> ... </handler>
>
> or
>
> <handler [name="eventName"] method="methodName" [reference="..."]  
> [args="..."]> ... </handler>
>
> Whether text is allowed or not (it shouldn't if @method is given)  
> is one problem. Another is that I can't write
>
> <handler name="eventName" reference="..." args="..."> ... </handler>
>
> The workaround for the second is (I think) to split the handler  
> definition into a handler and a method, but I shouldn't have to do  
> this.
>
> Third, the comment says about @method that "this attribute may be  
> present only if the @a{event} attribute is present too," but  
> there's no @event attribute in handler. Does this mean to say @name  
> instead of @event?
>
> If everyone agrees, I'll propose a change to the schema to fix both  
> of these problems. I don't see a unit test file; Henry, did you  
> write one when you did the initial implementation?
>
> jim
>
> _______________________________________________
> Laszlo-dev mailing list
> Laszlo-dev at openlaszlo.org
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev



More information about the Laszlo-dev mailing list