Question about E31in relation to 'Non-selected Cases'

Hi,

We have the following use case, and I was wondering if my conclusion is 
correct (that we no longer support this use case after issuing E31 
http://www.w3.org/2006/03/REC-xforms-20060314-errata.html#E31)

Use Case: The user wants to use a switch styled as a Tab pane and wants to 
indicate on the 'tab selection button' if there are 'problems' on that tab 
(req1). He also wants to show a list of problems when the user hits a 
validate trigger(req2).


How we implemented req2: Add an extra instance with messages, and an 
attribute on the message element to indicate if the message is applicable. 
Attach listeners to the controls for xforms-valid and xforms-invalid 
events that change the attribute to indicate if the message is applicable. 
Use an xforms:repeat to show all applicable messages when the user hits 
the validate button.

How we implemented req1: We can use the applicable attributes of the 
messages we needed for req2 and use those on a ref of group that 
shows/hide a problem icon on the 'tab selection button'.


At first this solution seems to work, but because :
1) due to 'When a form control becomes non-relevant, it must receive event 
xforms-disabled and then the XForms action handlers that are listening for 
events on the non-relevant form control must be disabled.' the event 
listeners that update the applicable attribute are disabled for all not 
selected cases, even if they are placed outside the non-selected case.

2) When there is an input on case 'b' which has a cosntraint that uses a 
value specified in another case let say 'a'

3) Fill in case 'a', then fill in case 'b' so that both cases are valid. 
Go back to case 'a' and change the value of the control so that the 
constraint of one of the inputs on case 'b' will fail
--> The listener that changes the applicabilty won't be triggered until 
the user goes to case 'b'

This may seem as a border case, and a badly designed form, but if you are 
trying to fill in big real life forms, this 'border case' can not be 
circumvented.

Does anyone has a solution that satisfies the two requierements of this 
use case and works in standard XForms?

Thanks in advance,

Nick Van den Bleeken  -  Research & Development
Inventive Designers
Phone: +32 - 3 - 8210170
Fax: +32 - 3 - 8210171
Email: Nick_Van_den_Bleeken@inventivedesigners.com


--------------------------------------------------

Inventive Designers' Email Disclaimer:

http://www.inventivedesigners.com/email-disclaimer

Received on Wednesday, 14 February 2007 08:31:05 UTC