- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Tue, 31 Mar 2020 23:08:50 -0700
- To: Steven Pemberton <steven.pemberton@cwi.nl>
- Cc: XForms <public-xformsusers@w3.org>, XForms Users Community Group Issue Tracker <sysbot+tracker@w3.org>
- Message-ID: <CAAc0PEWyqTJBOOX-1PiZvB9LwWondCqgxvCJMEb-nzj75EdK-w@mail.gmail.com>
LGTM. On Tue, Mar 17, 2020 at 3:13 AM Steven Pemberton <steven.pemberton@cwi.nl> wrote: > Second draft, following the call last week. Only changes in the topmost > section. > > Example with attributes still to be added. > > Steven > > =========================================== > 9.9 Selection Controls (Some changes here) > > There are two selection controls: > * select which allows the selection of zero or more values from a > collection, which are combined into a single value and stored in the > bound > value; > * select1 which allows for the selection of zero or one from the > collection, which is then stored in the bound value. > > The collection of values to be selected from are provided either by a > number of item elements, each of which supplies one value, or a single > itemset element, which provides a sequence of values. > > A selection control can be "simple" or "complex": > * a simple selection only selects simpleContent values (typically > strings), in which case the item or itemset elements use a value child or > attribute; > * a complex selection selects more general values (typically with > children > nodes), and the item or itemset elements use a copy child or attribute. > If > one item element has a copy attribute or child, then all of them must > have, and the bound target of the containing selection control must be an > element node, otherwise an xforms-binding-error event is dispatched to > the > containing selection control. > > A simple selection can be either "open" or "closed", as indicated by the > selection attribute: an open selection allows inclusion of values outside > the collection given. A complex selection is always closed. > > The items from the child or children of the selection control are > evaluated, each being a pair of a label and a value. > > The label for each pair must be made available to the user, with an > indication of whether the item is selected or not. > > Interaction with a label toggles the selected state. On selection, items > receive the xforms-select event; on deselection, the xforms-deselect event. > > A selection control is out-of-range if it is bound to data whose value > for > any reason is not in the collection of possible values. > > Typically, a style sheet is used to control the appearance of controls, > though a means is provided to suggest an appearance through the > appearance > attribute. The value of the attribute consists of one of the following > values: > * "full": all labels should be rendered at all times; > * "compact": a fixed number of labels should be rendered, with scrolling > facilities as needed; > * "minimal": a minimum number of labels should be rendered, with a > facility to temporarily render additional choices. > > 9.9.1 The select Element (No change) > > [...] > > All items whose values match a value in the bound instance data are > initially selected; if a particular value in the bound data matches more > than one item, at least one is selected, but it is not further defined > which, nor how many. If there is no match, no items are initially > selected. Items with an empty storage data subtree or a storage value > that > is either empty or contains only white space characters are never selected. > > If the bound instance data contains values that do not match any item's > value: > * for open selections, all such non-matching values are retained and made > available to the user; since there are no associated labels, the value > itself is used as the label; > * for closed selections, the control is out-of-range. > > Any number of the items may be selected, including none. > > For open selections, the control must also allow free data entry, as > described in The input Element. The control must permit multiple values > to > be entered through free entry. The label of such an entered value is > considered identical to the value itself. > > Selected values are represented in the bound instance location: > * for simple selections as a space-separated list, > * for complex selections as copies of the subtrees of the selected values. > > The content of the bound instance node must only be changed by the > addition or deletion of storage data associated with items that have been > selected or deselected; content not associated with selection items must > be preserved. > > For a simple selection, the net effect of newly selected and deselected > items is computed into a string, preserving content not associated with > selection items. For complex selections, the individual subtrees > associated with the newly selected and deselected items are added or > removed individually by using insert and delete; after which an update is > done, followed by a refresh. > > [...] > > 9.9.2 The select1 Element (No change) > > [...] > > Any item whose value matches the value of the bound instance data is > initially selected; if more than one matches, at least one is selected, > but it is not further defined which, nor how many of the matching items > is > selected. If there is no match, no item is initially selected. For both > closed and open selections, any item with an empty storage data subtree > or > a storage value that is either empty or contains only white space > characters is treated identically to any other value. > > If the bound instance data is non-empty and does not match any item's > value: > * for open selections, the non-matching value is retained and made > available to the user; the value is also used as the label; > * for closed selections, the control is out-of-range; > > Interaction with the label of an unselected item deselects any > already-selected item and then selects the new item; interaction with the > label of a selected item deselects that item. > > For open selections, the control must also allow free data entry, as > described in The input Element; entering a value selects that value after > deselecting any already-selected value. The label of such an entered > value > is considered identical to the value itself. > > The selected value is stored in the bound instance location, for complex > selections as a copy of the subtree of the selected value. > > 9.9.4 The item Element (add copy as a child element and attribute) > > [...] > > Special Attributes: > copy > Optional expression giving a value to be copied. Takes precedence over > any copy child element. > > Content: (value|copy), (UI Common)* > > [...] > > 9.9.5.1 The copy Element (for item and itemset) > > This element is similar to the value element, except that it works with > subtrees of instance data rather than simple values. > > Common Attributes: Common, Single Item Binding > > Content: EMPTY > > The storage value is obtained by evaluating the Single Item Binding. > =========================================== > >
Received on Wednesday, 1 April 2020 06:09:16 UTC