- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Tue, 16 May 2017 10:32:09 -0700
- To: Steven Pemberton <steven.pemberton@cwi.nl>
- Cc: XForms <public-xformsusers@w3.org>
- Message-ID: <CAAc0PEVj6awbYkQi2QszDorZGeauCRE957Df+XGLyenzQRgyig@mail.gmail.com>
Here are a few other options:
1. Use a special marker. For handlers, we support, in our implementation,
the following extensions:
- [#all][1]
- [#observer][2]
- [#preceding-sibling][3]
We could imagine something like:
<action ev:event="my-timer">
<send/>
<dispatch name="my-timer" delay="20000" targetid="#observer"/>
</action>
The meaning would be "the observer of the current event handler".
2. Have more context information in events, in which case you can write:
<action ev:event="my-timer">
<send/>
<dispatch name="my-timer" delay="20000" targetid="{event('targetid')}"/>
</action>
This is what we have in our implementation, with an extension:
event('xxf:targetid')
These options only reduce the need for an explicit id, but do not reduce
markup on `<dispatch>`.
Speaking of events, allowing importing the `ev:` prefix/namespace makes
sense in XForms+XHTML I think. Our implementation supports that as well:
<action event="my-timer">
But that is a separate question.
-Erik
[1]
https://doc.orbeon.com/xforms/events-extensions-other.html#catching-all-events
[2]
https://doc.orbeon.com/xforms/events-extensions-other.html#specifying-the-current-observer-as-target-restriction
[3]
https://doc.orbeon.com/xforms/events-extensions-other.html#observing-the-preceding-sibling-element
On Wed, May 10, 2017 at 3:33 AM, Steven Pemberton <steven.pemberton@cwi.nl>
wrote:
> Just a thought about reducing the need for explicit id attributes.
>
> Is there an argument to be had for allowing the default target of dispatch
> to be the parent?
>
> The use-case I had in mind was this, current method:
>
> <model id="model">
> ...
> <dispatch ev:event="xforms-ready" name="my-timer"
> delay="20000" targetid="model"/>
>
> <action ev:event="my-timer">
> <send/>
> <dispatch name="my-timer" delay="20000"
> targetid="model"/>
> </action>
> </model>
>
> which could then be expressed
>
> <model>
> ...
> <dispatch ev:event="xforms-ready" name="my-timer" delay="20000"/>
>
> <action ev:event="my-timer">
> <send/>
> <dispatch name="my-timer" delay="20000"/>
> </action>
> </model>
>
> Since nearly all events bubble, this would have the same effect, and
> relieve the necessity of having to specify an id on the model. You still
> have the option of explicitly using an id.
>
> Steven
>
>
Received on Tuesday, 16 May 2017 17:33:03 UTC