- 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