- From: John Boyer <boyerj@ca.ibm.com>
- Date: Thu, 26 Oct 2006 10:54:05 -0700
- To: "Paul Hermans" <paul.hermans@amplexor.com>
- Cc: www-forms@w3.org, www-forms-request@w3.org
- Message-ID: <OFD3406052.CF384115-ON88257213.00617037-88257213.00625736@ca.ibm.com>
The proper feature appears in the next working draft of XForms 1.1 (due
out real soon now).
For existing XForms 1.0 implementations, you need to change to using
model-based switching based on the relevance of a set of groups.
For each case in your switch, use a group instead. Put all those groups
into a single outer group.
For each inner group, express a ref to a node. Make that node be relevant
if and only if the proper dimension selection is made.
Then you will see that as you make your selections, the proper group
becomes visible.
The outer group may be needed to help with focus management. When the
group containing the focus becomes non-relevant and some other group
becomes relevant, the focus should be transferred from the non-relevant
group to the outer group to the newly relevant group, which then pushes
the focus to its first focusable child.
John M. Boyer, Ph.D.
STSM: Workplace Forms Architect and Researcher
Co-Chair, W3C Forms Working Group
Workplace, Portal and Collaboration Software
IBM Victoria Software Lab
E-Mail: boyerj@ca.ibm.com http://www.ibm.com/software/
Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer
"Paul Hermans" <paul.hermans@amplexor.com>
Sent by: www-forms-request@w3.org
10/26/2006 03:34 AM
To
<www-forms@w3.org>
cc
Subject
How to set dynamically the value of attribute case on element toggle
within an itemset
Is there a mechanism to dynamically set the attribute case on the toggle
element within an itemset.
This is some sample code:
<!-- list to populate a select1 -->
<f:instance id="dimensionlist">
<dimensions>
<dimension class="afmeting">
<name>hoogte</name>
</dimension>
<dimension class="afmeting">
<name>lengte</name>
</dimension>
<dimension class="gewicht">
<name>gewicht</name>
</dimension>
</dimensions>
</f:instance>
<!-- list to be subsetted based on a selection in previous one -->
<f:instance id="unitlist">
<units>
<unit dimension="afmeting">
<name>millimeter</name>
<value>mm</value>
</unit>
<unit dimension="afmeting">
<name>centimeter</name>
<value>cm</value>
</unit>
<unit dimension="afmeting">
<name>meter</name>
<value>m</value>
</unit>
<unit dimension="gewicht">
<name>gram</name>
<value>g</value>
</unit>
<unit dimension="gewicht">
<name>kilogram</name>
<value>kg</value>
</unit>
</units>
</f:instance>
<f:select1 ref="dimension" appearance="single">
<f:itemset nodeset="instance('dimensionlist')/dimension">
<f:label ref="name"/>
<f:value ref="name"/>
<!--
--------------------------------------------------------------------------
-->
<f:toggle ev:event="xforms-select" case="HOW_TO_SET_DYNAMICALLY"/>
If selected dimension has @class='afmeting', case="afstand"
If selected dimension has @class='gewicht', case="gewicht"
<!--
--------------------------------------------------------------------------
-->
</f:itemset>
<f:select1>
<f:switch>
<f:case id="afstand">
<f:select1 ref="unit" appearance="single">
<f:itemset
nodeset="instance('unitlist')/unit[@dimension='afmeting']">
<f:label ref="name"/>
<f:value ref="value"/>
</f:itemset>
</f:select1>
</f:case>
<f:case id="gewicht">
<f:select1 ref="unit" appearance="single">
<f:itemset nodeset="instance('unitlist')/unit[@dimension='gewicht']">
<f:label ref="name"/>
<f:value ref="value"/>
</f:itemset>
</f:select1>
</f:case>
</f:switch>
Received on Thursday, 26 October 2006 17:54:28 UTC