W3C home > Mailing lists > Public > www-forms@w3.org > January 2002

recalculating several models

From: Jérôme Nègre <jerome.negre@e-xmlmedia.fr>
Date: Mon, 7 Jan 2002 11:48:21 +0100
Message-ID: <00c201c19768$d38646b0$630aa8c0@fischer>
To: <www-forms@w3.org>
Hi,

In the current working draft, events xforms:recalculate and xform:revalidate
are dispatched to element model. This implies that recalculation and
revalidation are done a model after another (as described in chapter
11.3.6).

But, for some kind of dependencies, such as in the following example, this
is not possible:

<html xml:...="...">
 <head>

  <xform:model id="m1">
   <xform:instance id="i1">
    <i:dad>
     <i:son1>value</i:son1>
     <i:son2>value</i:son2>
    </i:dad>
   </xform:instance>
   <xform:bind ref="i:dad/i:son2" calculate="id('i2')/i:mom/i:daughter"/>
  </xform:model>

  <xform:model id="m2">
   <xform:instance id="i2">
    <i:mom>
     <i:daughter>value</i:daughter>
    </i:mom>
   </xform:instance>
   <xform:bind ref="i:mom/i:daughter" calculate="id('i1')/i:dad/i:son1"/>
  </xform:model>

 </head>
 <body>
  <xform:input model="m1" ref="i:dad/i:son1">
   <xform:caption>Change me</xform:caption>
  </xform:input>
 </body>
</html>

The recalculation must happen in the following order :
1/ The user changes the value of id('i1')/i:dad/i:soon1 via the input
control.
2/ id('i2')/i:mom/i:daughter is recalculated.
3/ id('i1')/i:dad/i:son2 is recalculated.

In order to have this behaviour, I think recalculation/revalidation should
be made global, and their corresponding events should be dispatched to
either the root element of the document, or to a new element containing all
the models.

Am I missing something ?

Regards,
Jérôme Nègre
Received on Monday, 7 January 2002 05:48:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 10 March 2012 06:21:50 GMT