Re: Event questions.

Hi Roger,

My replies below.

Rogelio Pérez Cano wrote:
> Hi All,
> 
> I have three questions related to Events in XForms.
> 
> 1- The latest XForms 1.0 recommendation doesn´t forbid a handler attribute
> in an <action> element,so does it mean that an <action> can be defined with
> a handler attribute pointing to another <action>? 
> 
> (This can be usefull in order to reuse code).
> 
>   Something like that should it work? 
> 
> ....
>     
> <xforms:trigger id="trigger1"> 
>   <xforms:label>Button1</xforms:label> 
>   <xforms:action ev:event="DOMActivate" ev:target="trigger1"
> ev:observer="trigger1" ev:handler="action2"/>
> </xforms:trigger>
> <xforms:trigger>
>   <xforms:label>Button2</xforms:label> 
>   <xforms:message id="action2" level="modal" ev:event="DOMActivate"> Hi
> again!!</xforms:message>
>    
> </xforms:trigger>
> ......
> 
> I mean, when the "Button1" is pressed should the message be shown?
> 
> 

In this particular scenario the message won't show because you have an 
error in your form.  You should have ev:handler="#action2" since the 
attribute value for ev:handler is a URI, not an id.  But yes, according 
to the XML Event spec this should be able to work and indeed it does 
work in Mozilla XForms.  The only issue you might have in reusability is 
the context for any xpath evaluations that might need to happen inside 
the xf:action.  The context will still be where the action lives, it 
won't be relative to the listener that causes the action handler to fire.

> 2- What is the interpretation of an <action> in terms of XML Events, is it a
> listener or can be always considered like a handler?

The way I look at it, the 'listener' is the element with the ev:handler 
attribute on it.  The 'handler' is either specified as the value of the 
ev:handler attribute or if the ev:event attribute is on an element and 
ev:handler is not, then that element that contains the ev:event is the 
handler.  So in your above scenario, the xf:action is the listener and 
the xf:message is the handler.

> 
> 3- What is the aim of having events in a <model> element, more specifically
> what does this sentence mean?
> 
> "Attributes from XML Events are allowed on this element to facilitate
> creating observers"
> 

You could have <xf:model ev:event="xforms-ready" 
ev:handler="#popupReadyMessage"> so that when the model gets the 
xforms-ready event, it will trigger the popupReadyMessage handler.

> Many thanks
> 
> Roger.
>     
> 
> 
> 
> 

I hope that this helps,
--Aaron

Received on Friday, 28 July 2006 16:58:45 UTC