I was hoping to get some advice on how to handle the following in Tapestry.  We have a user signup form in which the user is presented with a list of "interests" to select.  It might look something like this :
---------------------------------------------------------------
First Name :
Last Name :
E-Mail :
etc...
SELECT INTERESTS :
[ ] Books    [X] Music   [ ] Movies
[ ] Finance  [ ] Computers [X] Cooking
[X] Games
---------------------------------------------------------------
Each interest has a code that would get sent if it's selected.  Some of the interests are displayed in a different style (bold).   I'm fairly new to Tapestry and have been going through the docs and examples and can't quite figure out the best way to do this. 
 
I was thinking of creating a list of Interest objects with {code, label, selected, bolded} properties but I'm not sure how to handle fireObservedChange(). 
 
On a side note, how DO you deal with list/map properties in a form?  I think OGNL allows the expression "interests[5]" or "interests[Books].selected" but how do you make sure that change is observed by the PageRecorder?
 
Other issues I've encountered in my first project using Tapestry, just FYI :
 
    The field validation framework seems very limited.  It (or FieldLabel, at least) doesn't seem to apply to anything but TextFields (i.e. it doesn't work with DatePicker, CheckBox, PropertySelection, etc?).  There aren't many Validators to work with, even for very common uses (e.g. Email, RegularExpressions).
 
    The DatePicker has display problems when it attempts to display over a list box.  The listbox renders on top of the DatePicker.
 
    The DatePicker has no options for the begin date range and defaults to starting at 1990.  This makes it unusable for birth dates. 
 
    Is there documentation available for the Table component yet?
 
 
Any help greatly appreciated,
Brien Voorhees   
 
 
 
   

Reply via email to