- From: Klotz, Leigh <Leigh.Klotz@xerox.com>
- Date: Fri, 1 Feb 2008 16:08:39 -0800
- To: "T.V Raman" <raman@google.com>
- Cc: <public-forms@w3.org>
Raman,
John Boyer has an action to write up the morning's discussion in
spec-ready text, but I'm writing an explanation here.
There's about a dozen bullet points followed by a markup example.
- a new first optional child element of switch called (for now) "using,"
which takes single-node binding attributes and has a content model same
as group (optionally empty).
- a new pair of label and value child elements for switch/case that let
it use values other than ID for case control; these are copied from
select.
- optionally using explicit values reduces model/ui mixing by keeping UI
element IDs out of the instance data.
- the new element "using" specifies location path of the current state
of the switch; you can toggle the switch by changing that node, and vice
versa.
- you can put a select1 or input inside "using" and it can directly
control and reflect the switch's current case
- if we decide that @ref='.' is the default on controls (can't remember)
then it makes that a little simpler.
- I think we decided to allow ref on case same as ref on switch to set
context but I'm not sure.
- toggle still works; the model reflects the current value at the node
specified by using/@ref
- someday we may make a switchMany that has the same content model but
its using/@ref binds to a list and allows multiple cases to be active at
the same time
- a author would mark it up as switchMany/using/select instead of
switch/using/select1.
- perhaps we should have named switch "switch1" instead ;-)
- the name "using" is up for grabs at the moment but it's in for XForms
1.2
- switchMany is likely a 2.0 rather than a 1.2 construct
Here's an example of a shopping cart wizard with three phases. CSS or
XBL governs how the switch and the select1 and their associated labels
and and control parts are presented. This could easily represent a
tabbed view page on a desktop visual browser and then provide voice as
well, as the whole thing is done with existing abstract XForms controls
and only one new element name, which itself is just a container. I
don't know that this 100% right but it gives the idea.
<switch ref="/path/to/cart">
<using ref="@phase">
<select1>
<label>Stage: </lavel>
<item>
<label>Order</label>
<value>order</value>
</item>
<item>
<label>Ship</label>
<value>ship</value>
</item>
<item>
<label>Pay</label>
<value>pay</value>
</select1>
</using>
<case ref="quantity">
<label>Place your order</label>
<value>order</value>
<range>
<label>How many of our fine widgets do you need?</label>
</range>
</case>
<case ref="shipping">
<label>Shipping choices</label>
<input ref="name"><label>Name</label></input>
<input ref="address"><label>Address</label></input>
<input ref="zone"><label>Zone</label></input>
<input ref="sector"><label>Sector</label></input>
</case>
<case ref="credit">
<label>Pay, Pay, Pay</label>
<input ref="card"><label>Card Number</label></input>
<input ref="date"><label>Expiration Date</label></input>
<input ref="cvv">
<label>CVV Code</label>
<hint>A three-digit number they put on the back of the card to
make 99.9% sure you really have the card
and didn't steal the data from someone whom was previously
told that number.</hint>
</input>
</case>
</switch>
That's it.
Leigh.
-----Original Message-----
From: public-forms-request@w3.org [mailto:public-forms-request@w3.org]
On Behalf Of T.V Raman
Sent: Friday, February 01, 2008 2:52 PM
To: ebruchez@orbeon.com
Cc: public-forms@w3.org
Subject: Re: Pretty cool talk today; how about switch *inside*
select1/select
Did you see the <switch><caseset>...</caseset></switch>
design I sent out?
This would better reflect how we upgraded the original statically
oriented select1 that was inspired by HTML to one that was
capable of getting a dynamic list of choices from the model.
...
Received on Saturday, 2 February 2008 00:08:59 UTC