[Checkins] SVN: z3c.form/trunk/ - Feature: When a widget is required, HTML-based widgets now declare a

Stephan Richter srichter at cosmos.phy.tufts.edu
Tue Jul 31 19:03:47 EDT 2007


Log message for revision 78513:
  - Feature: When a widget is required, HTML-based widgets now declare a
    "required" class. Requested by Markus Leist.
  
  - Restructuring: The widget specific class name was in camel-case. A
    converntion that later developed uses always dash-based naming of HTML/CSS
    related variables. So for example, the class name "textWidget" is now
    "text-widget". This change will most likely require some changes to your CSS
    declarations.
  
  

Changed:
  U   z3c.form/trunk/CHANGES.txt
  U   z3c.form/trunk/src/z3c/form/adding.txt
  U   z3c.form/trunk/src/z3c/form/browser/README.txt
  U   z3c.form/trunk/src/z3c/form/browser/button.py
  U   z3c.form/trunk/src/z3c/form/browser/button.txt
  U   z3c.form/trunk/src/z3c/form/browser/checkbox.py
  U   z3c.form/trunk/src/z3c/form/browser/checkbox.txt
  U   z3c.form/trunk/src/z3c/form/browser/file.py
  U   z3c.form/trunk/src/z3c/form/browser/file.txt
  U   z3c.form/trunk/src/z3c/form/browser/password.py
  U   z3c.form/trunk/src/z3c/form/browser/password.txt
  U   z3c.form/trunk/src/z3c/form/browser/radio.py
  U   z3c.form/trunk/src/z3c/form/browser/radio.txt
  U   z3c.form/trunk/src/z3c/form/browser/select.py
  U   z3c.form/trunk/src/z3c/form/browser/select.txt
  U   z3c.form/trunk/src/z3c/form/browser/submit.py
  U   z3c.form/trunk/src/z3c/form/browser/submit.txt
  U   z3c.form/trunk/src/z3c/form/browser/text.py
  U   z3c.form/trunk/src/z3c/form/browser/text.txt
  U   z3c.form/trunk/src/z3c/form/browser/text_hidden.pt
  U   z3c.form/trunk/src/z3c/form/browser/textarea.py
  U   z3c.form/trunk/src/z3c/form/browser/textarea.txt
  U   z3c.form/trunk/src/z3c/form/browser/widget.py
  U   z3c.form/trunk/src/z3c/form/button.txt
  U   z3c.form/trunk/src/z3c/form/form.txt
  U   z3c.form/trunk/src/z3c/form/group.txt
  U   z3c.form/trunk/src/z3c/form/subform.txt

-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/CHANGES.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -5,6 +5,9 @@
 Version 1.6.0 (?/??/2007)
 -------------------------
 
+- Feature: When a widget is required, HTML-based widgets now declare a
+  "required" class.
+
 - Feature: The validation data wrapper now knows about the context of the
   validation, which provides a hook for invariants to access the environment.
 
@@ -24,6 +27,12 @@
 
 - Feature: Provide more user-friendly error messages for number formatting.
 
+- Restructuring: The widget specific class name was in camel-case. A
+  converntion that later developed uses always dash-based naming of HTML/CSS
+  related variables. So for example, the class name "textWidget" is now
+  "text-widget". This change will most likely require some changes to your CSS
+  declarations!
+
 - Documentation: The text of ``field.txt`` has been reviewed linguistically.
 
 - Documentation: While reviewing the ``form.txt`` with some people, several
@@ -130,7 +139,7 @@
 - Feature: Added named vocabulary lookup in ``ChoiceTerms`` and
   ``CollectionTerms``.
 
-- Implemented support for ``FileUpload`` in ``FileWidget``.
+- Feature: Implemented support for ``FileUpload`` in ``FileWidget``.
 
   * Added helper for handling ``FileUpload`` widgets:
 

Modified: z3c.form/trunk/src/z3c/form/adding.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/adding.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/adding.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -81,11 +81,11 @@
         <div class="row">
           <label for="form-widgets-name">Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget textline-field" value="" />
+                 class="text-widget required textline-field" value="" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add"
-                 name="form.buttons.add" class="submitWidget button-field"
+                 name="form.buttons.add" class="submit-widget button-field"
                  value="Add" />
         </div>
       </form>

Modified: z3c.form/trunk/src/z3c/form/browser/README.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/README.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/README.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -40,12 +40,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <textarea id="foo" name="bar" class="textAreaWidget ascii-field">This is
+  <textarea id="foo" name="bar" class="textarea-widget required ascii-field">This is
    ASCII.</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textAreaWidget ascii-field">
+  <span id="foo" class="textarea-widget required ascii-field">
     This is
    ASCII.
   </span>
@@ -58,12 +58,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget asciiline-field"
+  <input type="text" id="foo" name="bar" class="text-widget required asciiline-field"
          value="An ASCII line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget asciiline-field">
+  <span id="foo" class="text-widget required asciiline-field">
     An ASCII line.
   </span>
 
@@ -76,13 +76,13 @@
   >>> print widget.render()
   <span class="option">
     <input type="radio" id="foo-0" name="bar:list"
-           class="radioWidget bool-field" value="true" checked="checked" />
+           class="radio-widget required bool-field" value="true" checked="checked" />
     <label for="foo-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="radio" id="foo-1" name="bar:list"
-           class="radioWidget bool-field" value="false" />
+           class="radio-widget required bool-field" value="false" />
     <label for="foo-1">
       <span class="label">no</span>
     </label>
@@ -91,7 +91,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="radioWidget bool-field">
+  <span id="foo" class="radio-widget required bool-field">
     <span class="selected-option">yes</span>
   </span>
 
@@ -106,14 +106,14 @@
   >>> print widget.render()
   <span class="option">
     <input type="checkbox" id="foo-0" name="bar:list"
-           class="checkBoxWidget bool-field" value="true"
+           class="checkbox-widget required bool-field" value="true"
            checked="checked" />
     <label for="foo-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="checkbox" id="foo-1" name="bar:list"
-           class="checkBoxWidget bool-field" value="false" />
+           class="checkbox-widget required bool-field" value="false" />
     <label for="foo-1">
       <span class="label">no</span>
     </label>
@@ -122,7 +122,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="checkBoxWidget bool-field">
+  <span id="foo" class="checkbox-widget required bool-field">
     <span class="selected-option">yes</span>
   </span>
 
@@ -136,12 +136,12 @@
   >>> widget.update()
   >>> print widget.render()
   <input type="submit" id="foo" name="bar"
-         class="submitWidget button-field" value="Press me!" />
+         class="submit-widget button-field" value="Press me!" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
   <input type="submit" id="foo" name="bar"
-         class="submitWidget button-field" value="Press me!"
+         class="submit-widget button-field" value="Press me!"
          disabled="disabled" />
 
 There exists an alternative widget for the button field, the button widget. It
@@ -155,12 +155,12 @@
   >>> widget.update()
   >>> print widget.render()
   <input type="button" id="foo" name="bar"
-         class="buttonWidget button-field" value="Press me!" />
+         class="button-widget button-field" value="Press me!" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
   <input type="button" id="foo" name="bar"
-         class="buttonWidget button-field" value="Press me!"
+         class="button-widget button-field" value="Press me!"
          disabled="disabled" />
 
 
@@ -172,11 +172,11 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="file" id="foo" name="bar" class="fileWidget bytes-field" />
+  <input type="file" id="foo" name="bar" class="file-widget required bytes-field" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> widget.render()
-  u'<span id="foo" class="fileWidget bytes-field">\n  \x08%\n\x1a\n</span>\n'
+  u'<span id="foo" class="file-widget required bytes-field">\n  \x08%\n\x1a\n</span>\n'
 
 
 BytesLine
@@ -186,12 +186,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget bytesline-field"
+  <input type="text" id="foo" name="bar" class="text-widget required bytesline-field"
          value="A Bytes line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget bytesline-field">
+  <span id="foo" class="text-widget required bytesline-field">
     A Bytes line.
   </span>
 
@@ -207,7 +207,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget choice-field"
+  <select id="foo" name="bar:list" class="select-widget required choice-field"
           size="1">
     <option id="foo-0" value="yes" selected="selected">Yes</option>
     <option id="foo-1" value="no">No</option>
@@ -216,7 +216,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="selectWidget choice-field">
+  <span id="foo" class="select-widget required choice-field">
     <span class="selected-option">Yes</span>
   </span>
 
@@ -228,12 +228,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget date-field"
+  <input type="text" id="foo" name="bar" class="text-widget required date-field"
          value="07/04/01" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget date-field">
+  <span id="foo" class="text-widget required date-field">
     07/04/01
   </span>
 
@@ -245,12 +245,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget datetime-field"
+  <input type="text" id="foo" name="bar" class="text-widget required datetime-field"
          value="07/04/01 12:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget datetime-field">
+  <span id="foo" class="text-widget required datetime-field">
     07/04/01 12:00
   </span>
 
@@ -263,12 +263,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget decimal-field"
+  <input type="text" id="foo" name="bar" class="text-widget required decimal-field"
          value="1,265.87" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget decimal-field">
+  <span id="foo" class="text-widget required decimal-field">
     1,265.87
   </span>
 
@@ -287,12 +287,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget dottedname-field"
+  <input type="text" id="foo" name="bar" class="text-widget required dottedname-field"
          value="z3c.form" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget dottedname-field">
+  <span id="foo" class="text-widget required dottedname-field">
     z3c.form
   </span>
 
@@ -304,12 +304,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget float-field"
+  <input type="text" id="foo" name="bar" class="text-widget required float-field"
          value="1,265.8" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget float-field">
+  <span id="foo" class="text-widget required float-field">
     1,265.8
   </span>
 
@@ -323,7 +323,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget frozenset-field"
+  <select id="foo" name="bar:list" class="select-widget required frozenset-field"
           multiple="multiple" size="5">
     <option id="foo-0" value="1" selected="selected">1</option>
     <option id="foo-1" value="2">2</option>
@@ -334,7 +334,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="selectWidget frozenset-field">
+  <span id="foo" class="select-widget required frozenset-field">
     <span class="selected-option">1</span>,
     <span class="selected-option">3</span>
   </span>
@@ -347,12 +347,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget id-field"
+  <input type="text" id="foo" name="bar" class="text-widget required id-field"
          value="z3c.form" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget id-field">
+  <span id="foo" class="text-widget required id-field">
     z3c.form
   </span>
 
@@ -364,12 +364,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget int-field"
+  <input type="text" id="foo" name="bar" class="text-widget required int-field"
          value="1,200" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget int-field">
+  <span id="foo" class="text-widget required int-field">
     1,200
   </span>
 
@@ -391,7 +391,7 @@
     <tr>
       <td>
         <select id="foo-from" name="bar.from" size="5"
-                multiple="multiple" class="list-field">
+                multiple="multiple" class="required list-field">
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
@@ -409,7 +409,7 @@
       </td>
       <td>
         <select id="foo-to" name="bar.to" size="5"
-                multiple="multiple" class="list-field">
+                multiple="multiple" class="required list-field">
           <option value="1">1</option>
           <option value="3">3</option>
         </select>
@@ -431,7 +431,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="list-field">
+  <span id="foo" class="required list-field">
     <span class="selected-option">1</span>,
     <span class="selected-option">3</span>
   </span>
@@ -452,11 +452,11 @@
   >>> widget.update()
   >>> print widget.render()
   <input type="password" id="foo" name="bar"
-         class="passwordWidget password-field" />
+         class="password-widget required password-field" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="passwordWidget password-field">
+  <span id="foo" class="password-widget required password-field">
     mypwd
   </span>
 
@@ -470,7 +470,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget set-field"
+  <select id="foo" name="bar:list" class="select-widget required set-field"
           multiple="multiple"  size="5">
     <option id="foo-0" value="1" selected="selected">1</option>
     <option id="foo-1" value="2">2</option>
@@ -481,7 +481,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="selectWidget set-field">
+  <span id="foo" class="select-widget required set-field">
     <span class="selected-option">1</span>,
     <span class="selected-option">3</span>
   </span>
@@ -495,11 +495,11 @@
   >>> widget.update()
   >>> print widget.render()
   <textarea id="foo" name="bar"
-            class="textAreaWidget sourcetext-field">&lt;source /&gt;</textarea>
+            class="textarea-widget required sourcetext-field">&lt;source /&gt;</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textAreaWidget sourcetext-field">
+  <span id="foo" class="textarea-widget required sourcetext-field">
     &lt;source /&gt;
   </span>
 
@@ -511,12 +511,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <textarea id="foo" name="bar" class="textAreaWidget text-field">Some
+  <textarea id="foo" name="bar" class="textarea-widget required text-field">Some
    Text.</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textAreaWidget text-field">
+  <span id="foo" class="textarea-widget required text-field">
     Some
     Text.
   </span>
@@ -529,12 +529,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget textline-field"
+  <input type="text" id="foo" name="bar" class="text-widget required textline-field"
          value="Some Text line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget textline-field">
+  <span id="foo" class="text-widget required textline-field">
     Some Text line.
   </span>
 
@@ -546,12 +546,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget time-field"
+  <input type="text" id="foo" name="bar" class="text-widget required time-field"
          value="12:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget time-field">
+  <span id="foo" class="text-widget required time-field">
     12:00
   </span>
 
@@ -563,12 +563,12 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget timedelta-field"
+  <input type="text" id="foo" name="bar" class="text-widget required timedelta-field"
          value="3 days, 0:00:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget timedelta-field">
+  <span id="foo" class="text-widget required timedelta-field">
     3 days, 0:00:00
   </span>
 
@@ -590,7 +590,7 @@
     <tr>
       <td>
         <select id="foo-from" name="bar.from" size="5"
-                multiple="multiple" class="tuple-field">
+                multiple="multiple" class="required tuple-field">
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
@@ -608,7 +608,7 @@
       </td>
       <td>
         <select id="foo-to" name="bar.to" size="5"
-                multiple="multiple" class="tuple-field">
+                multiple="multiple" class="required tuple-field">
           <option value="1">1</option>
           <option value="3">3</option>
         </select>
@@ -630,7 +630,7 @@
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="tuple-field">
+  <span id="foo" class="required tuple-field">
     <span class="selected-option">1</span>,
     <span class="selected-option">3</span>
   </span>
@@ -643,11 +643,11 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget uri-field"
+  <input type="text" id="foo" name="bar" class="text-widget required uri-field"
          value="http://zope.org" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
-  <span id="foo" class="textWidget uri-field">
+  <span id="foo" class="text-widget required uri-field">
     http://zope.org
   </span>

Modified: z3c.form/trunk/src/z3c/form/browser/button.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/button.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/button.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -28,7 +28,7 @@
     """A simple button of a form."""
     zope.interface.implementsOnly(interfaces.IButtonWidget)
 
-    klass = u'buttonWidget'
+    klass = u'button-widget'
 
     def update(self):
         # We do not need to use the widget's update method, because it is

Modified: z3c.form/trunk/src/z3c/form/browser/button.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/button.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/button.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -46,14 +46,14 @@
 
   >>> print widget.render()
   <input type="button" id="widget.id" name="widget.name"
-         class="buttonWidget" />
+         class="button-widget" />
 
 Setting a value for the widget effectively changes the button label:
 
   >>> widget.value = 'Button'
   >>> print widget.render()
   <input type="button" id="widget.id" name="widget.name"
-         class="buttonWidget" value="Button" />
+         class="button-widget" value="Button" />
 
 
 Let's now make sure that we can extract user entered data from a widget:

Modified: z3c.form/trunk/src/z3c/form/browser/checkbox.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -32,7 +32,7 @@
     """Input type checkbox widget implementation."""
     zope.interface.implementsOnly(interfaces.ICheckBoxWidget)
 
-    klass = u'checkBoxWidget'
+    klass = u'checkbox-widget'
     items = ()
 
     def isChecked(self, term):

Modified: z3c.form/trunk/src/z3c/form/browser/checkbox.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -76,13 +76,13 @@
   >>> print widget.render()
   <span class="option">
     <input type="checkbox" id="widget-id-0" name="widget.name:list"
-           class="checkBoxWidget" value="true" />
+           class="checkbox-widget" value="true" />
     <label for="widget-id-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="checkbox" id="widget-id-1" name="widget.name:list"
-           class="checkBoxWidget" value="false" />
+           class="checkbox-widget" value="false" />
     <label for="widget-id-1">
       <span class="label">no</span>
     </label>
@@ -97,14 +97,14 @@
   >>> print widget.render()
   <span class="option">
     <input type="checkbox" id="widget-id-0" name="widget.name:list"
-           class="checkBoxWidget" value="true"
+           class="checkbox-widget" value="true"
            checked="checked" />
     <label for="widget-id-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="checkbox" id="widget-id-1" name="widget.name:list"
-           class="checkBoxWidget" value="false" />
+           class="checkbox-widget" value="false" />
     <label for="widget-id-1">
       <span class="label">no</span>
     </label>

Modified: z3c.form/trunk/src/z3c/form/browser/file.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/file.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/file.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -28,7 +28,7 @@
     """Input type text widget implementation."""
     zope.interface.implementsOnly(interfaces.IFileWidget)
 
-    klass = u'fileWidget'
+    klass = u'file-widget'
 
     # Filename and headers attribute get set by ``IDataConverter`` to the widget
     # provided by the FileUpload object of the form.

Modified: z3c.form/trunk/src/z3c/form/browser/file.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/file.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/file.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -45,7 +45,7 @@
 
   >>> print widget.render()
   <input type="file" id="widget.id" name="widget.name"
-         class="fileWidget" />
+         class="file-widget" />
 
 Let's now make sure that we can extract user entered data from a widget:
 
@@ -92,4 +92,4 @@
 
   >>> print widget.render()
   <input type="file" id="widget.id" name="widget.name"
-         class="fileWidget" />
+         class="file-widget" />

Modified: z3c.form/trunk/src/z3c/form/browser/password.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/password.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/password.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -27,7 +27,7 @@
     """Input type password widget implementation."""
     zope.interface.implementsOnly(interfaces.IPasswordWidget)
 
-    klass = u'passwordWidget'
+    klass = u'password-widget'
 
 
 @zope.component.adapter(zope.schema.interfaces.IPassword, interfaces.IFormLayer)

Modified: z3c.form/trunk/src/z3c/form/browser/password.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/password.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/password.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -45,7 +45,7 @@
 
   >>> print widget.render()
   <input type="password" id="widget.id" name="widget.name"
-         class="passwordWidget" />
+         class="password-widget" />
 
 Even when we set a value on the widget, it is not displayed for security
 reasons:
@@ -53,7 +53,7 @@
   >>> widget.value = 'password'
   >>> print widget.render()
   <input type="password" id="widget.id" name="widget.name"
-         class="passwordWidget" />
+         class="password-widget" />
 
 Let's now make sure that we can extract user entered data from a widget:
 

Modified: z3c.form/trunk/src/z3c/form/browser/radio.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/radio.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/radio.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -32,7 +32,7 @@
     """Input type radio widget implementation."""
     zope.interface.implementsOnly(interfaces.IRadioWidget)
 
-    klass = u'radioWidget'
+    klass = u'radio-widget'
     items = ()
 
     def isChecked(self, term):

Modified: z3c.form/trunk/src/z3c/form/browser/radio.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/radio.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/radio.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -70,13 +70,13 @@
   >>> print widget.render()
   <span class="option">
     <input type="radio" id="widget-id-0" name="widget.name:list"
-           class="radioWidget" value="true" />
+           class="radio-widget" value="true" />
     <label for="widget-id-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="radio" id="widget-id-1" name="widget.name:list"
-           class="radioWidget" value="false" />
+           class="radio-widget" value="false" />
     <label for="widget-id-1">
       <span class="label">no</span>
     </label>
@@ -91,13 +91,13 @@
   >>> print widget.render()
   <span class="option">
     <input type="radio" id="widget-id-0" name="widget.name:list"
-           class="radioWidget" value="true" checked="checked" />
+           class="radio-widget" value="true" checked="checked" />
     <label for="widget-id-0">
       <span class="label">yes</span>
     </label>
   </span><span class="option">
     <input type="radio" id="widget-id-1" name="widget.name:list"
-           class="radioWidget" value="false" />
+           class="radio-widget" value="false" />
     <label for="widget-id-1">
       <span class="label">no</span>
     </label>

Modified: z3c.form/trunk/src/z3c/form/browser/select.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/select.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -32,7 +32,7 @@
     """Select widget implementation."""
     zope.interface.implementsOnly(interfaces.ISelectWidget)
 
-    klass = u'selectWidget'
+    klass = u'select-widget'
     items = ()
     prompt = False
 

Modified: z3c.form/trunk/src/z3c/form/browser/select.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/select.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -45,7 +45,7 @@
 
   >>> print widget.render()
   <select id="widget-id" name="widget.name:list"
-          class="selectWidget" size="1">
+          class="select-widget" size="1">
   </select>
   <input name="widget.name-empty-marker" type="hidden"
          value="1" />
@@ -69,7 +69,7 @@
   >>> widget.update()
   >>> print widget.render()
   <select id="widget-id" name="widget.name:list"
-          class="selectWidget" size="1">
+          class="select-widget" size="1">
   <option id="widget-id-novalue" value="--NOVALUE--">no value</option>
   <option id="widget-id-0" value="a">a</option>
   <option id="widget-id-1" value="b">b</option>
@@ -83,7 +83,7 @@
   >>> widget.update()
   >>> print widget.render()
   <select id="widget-id" name="widget.name:list"
-          class="selectWidget" size="1">
+          class="select-widget" size="1">
   <option id="widget-id-novalue" value="--NOVALUE--">no value</option>
   <option id="widget-id-0" value="a">a</option>
   <option id="widget-id-1" value="b" selected="selected">b</option>
@@ -167,7 +167,7 @@
   >>> widget.update()
   >>> print widget.render()
   <select id="widget-id" name="widget.name:list"
-          class="selectWidget" size="1">
+          class="select-widget" size="1">
   <option id="widget-id-novalue" value="--NOVALUE--"
           selected="selected">select a value ...</option>
   <option id="widget-id-0" value="a">a</option>
@@ -185,7 +185,7 @@
   >>> widget.update()
   >>> print widget.render()
   <select id="widget-id" name="widget.name:list"
-          class="selectWidget" size="1">
+          class="select-widget required" size="1">
   <option id="widget-id-novalue" value="--NOVALUE--"
           selected="selected">select a value ...</option>
   <option id="widget-id-0" value="a">a</option>

Modified: z3c.form/trunk/src/z3c/form/browser/submit.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/submit.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/submit.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -27,7 +27,7 @@
 class SubmitWidget(button.ButtonWidget):
     """A submit button of a form."""
     zope.interface.implementsOnly(interfaces.ISubmitWidget)
-    klass = u'submitWidget'
+    klass = u'submit-widget'
 
 
 @zope.component.adapter(interfaces.IButton, interfaces.IFormLayer)

Modified: z3c.form/trunk/src/z3c/form/browser/submit.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/submit.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/submit.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -45,14 +45,14 @@
 
   >>> print widget.render()
   <input type="submit" id="widget.id" name="widget.name"
-         class="submitWidget" />
+         class="submit-widget" />
 
 Setting a value for the widget effectively changes the button label:
 
   >>> widget.value = 'Submit'
   >>> print widget.render()
   <input type="submit" id="widget.id" name="widget.name"
-         class="submitWidget" value="Submit" />
+         class="submit-widget" value="Submit" />
 
 
 Let's now make sure that we can extract user entered data from a widget:

Modified: z3c.form/trunk/src/z3c/form/browser/text.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/text.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -28,7 +28,7 @@
     """Input type text widget implementation."""
     zope.interface.implementsOnly(interfaces.ITextWidget)
 
-    klass = u'textWidget'
+    klass = u'text-widget'
     value = u''
 
     def update(self):

Modified: z3c.form/trunk/src/z3c/form/browser/text.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/text.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -43,7 +43,7 @@
 If we render the widget we get the HTML:
 
   >>> print widget.render()
-  <input type="text" class="textWidget" value="" />
+  <input type="text" class="text-widget" value="" />
 
 Adding some more attributes to the widget will make it display more:
 
@@ -52,5 +52,5 @@
   >>> widget.value = u'value'
 
   >>> print widget.render()
-  <input type="text" id="id" name="name" class="textWidget"
+  <input type="text" id="id" name="name" class="text-widget"
          value="value" />

Modified: z3c.form/trunk/src/z3c/form/browser/text_hidden.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text_hidden.pt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/text_hidden.pt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -1,4 +1,4 @@
-<input type="hidden" id="" name="" class="hiddenWidget" size="" alt="" title=""
+<input type="hidden" id="" name="" class="hidden-widget" size="" alt="" title=""
        tabindex="" disabled="" readonly="" accesskey="" maxlength="" value=""
        tal:attributes="id view/id;
                        name view/name;

Modified: z3c.form/trunk/src/z3c/form/browser/textarea.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/textarea.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/textarea.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -29,7 +29,7 @@
     """Textarea widget implementation."""
     zope.interface.implementsOnly(interfaces.ITextAreaWidget)
 
-    klass = u'textAreaWidget'
+    klass = u'textarea-widget'
     value = u''
 
     def update(self):

Modified: z3c.form/trunk/src/z3c/form/browser/textarea.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/textarea.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/textarea.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -43,7 +43,7 @@
 If we render the widget we get the HTML:
 
   >>> print widget.render()
-  <textarea class="textAreaWidget"></textarea>
+  <textarea class="textarea-widget"></textarea>
 
 Adding some more attributes to the widget will make it display more:
 
@@ -52,4 +52,4 @@
   >>> widget.value = u'value'
 
   >>> print widget.render()
-  <textarea id="id" name="name" class="textAreaWidget">value</textarea>
+  <textarea id="id" name="name" class="textarea-widget">value</textarea>

Modified: z3c.form/trunk/src/z3c/form/browser/widget.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/widget.py	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/browser/widget.py	2007-07-31 23:03:47 UTC (rev 78513)
@@ -52,11 +52,17 @@
     def addClass(self, klass):
         """See interfaces.IHTMLFormElement"""
         if not self.klass:
-            self.klass = klass
+            self.klass = unicode(klass)
         else:
-            self.klass += ' ' + klass
+            self.klass += u' ' + unicode(klass)
 
+    def update(self):
+        """See z3c.form.interfaces.IWidget"""
+        super(HTMLFormElement, self).update()
+        if self.required:
+            self.addClass('required')
 
+
 class HTMLInputWidget(HTMLFormElement):
     zope.interface.implements(interfaces.IHTMLInputWidget)
 

Modified: z3c.form/trunk/src/z3c/form/button.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/button.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/button.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -143,7 +143,7 @@
 
   >>> print actions['apply'].render()
   <input type="submit" id="form-buttons-apply"
-         name="form.buttons.apply" class="submitWidget button-field"
+         name="form.buttons.apply" class="submit-widget button-field"
          value="Apply" />
 
 So displaying is nice, but how do button handlers get executed? The action

Modified: z3c.form/trunk/src/z3c/form/form.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/form.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/form.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -294,18 +294,20 @@
         <div class="row">
           <label for="form-widgets-id">ID</label>
           <input type="text" id="form-widgets-id"
-                 name="form.widgets.id" class="textWidget textline-field"
+                 name="form.widgets.id"
+                 class="text-widget required textline-field"
                  value="" />
         </div>
         <div class="row">
           <label for="form-widgets-name">Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget textline-field" value="" />
+                 class="text-widget required textline-field"
+                 value="" />
         </div>
         <div class="row">
           <label for="form-widgets-gender">Gender</label>
           <select id="form-widgets-gender" name="form.widgets.gender:list"
-                  class="selectWidget choice-field" size="1">
+                  class="select-widget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male">male</option>
@@ -317,11 +319,11 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget int-field" value="20" />
+                 class="text-widget int-field" value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add" name="form.buttons.add"
-                 class="submitWidget button-field" value="Add" />
+                 class="submit-widget button-field" value="Add" />
         </div>
       </form>
     </body>
@@ -405,19 +407,20 @@
         <div class="row">
           <label for="form-widgets-id">ID</label>
           <input type="text" id="form-widgets-id"
-                 name="form.widgets.id" class="textWidget textline-field"
+                 name="form.widgets.id"
+                 class="text-widget required textline-field"
                  value="srichter" />
         </div>
         <div class="row">
           <b><div class="error">Required input is missing.</div>
           </b><label for="form-widgets-name">Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget textline-field" value="" />
+                 class="text-widget required textline-field" value="" />
         </div>
         <div class="row">
           <label for="form-widgets-gender">Gender</label>
           <select id="form-widgets-gender" name="form.widgets.gender:list"
-                  class="selectWidget choice-field" size="1">
+                  class="select-widget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male"
@@ -430,11 +433,11 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget int-field" value="23" />
+                 class="text-widget int-field" value="23" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add" name="form.buttons.add"
-                 class="submitWidget button-field" value="Add" />
+                 class="submit-widget button-field" value="Add" />
         </div>
       </form>
     </body>
@@ -517,9 +520,9 @@
   'form'
 
 The template can then use those attributes, if it likes to. Since we are
-talking about templates, in this example we set the template manually, but if no
-template is specified, the system tries to find an adapter. Initially, there
-is no adapter, so rendering the form fails:
+talking about templates, in this example we set the template manually, but if
+no template is specified, the system tries to find an adapter. Initially,
+there is no adapter, so rendering the form fails:
 
   >>> addForm.template = None
   >>> addForm.render()
@@ -577,7 +580,7 @@
   <div class="row">
     <label for="form-widgets-name">Full Name</label>
     <input type="text" id="form-widgets-name" name="form.widgets.name"
-           class="textWidget textline-field" value="" />
+           class="text-widget required textline-field" value="" />
   </div>
   ...
 
@@ -623,11 +626,11 @@
   ...
   <div class="action">
     <input type="submit" id="form-buttons-add" name="form.buttons.add"
-           class="submitWidget button-field" value="Add" />
+           class="submit-widget button-field" value="Add" />
   </div>
   <div class="action">
     <input type="submit" id="form-buttons-cancel" name="form.buttons.cancel"
-           class="submitWidget button-field" value="Cancel" />
+           class="submit-widget button-field" value="Cancel" />
   </div>
   ...
 
@@ -696,19 +699,21 @@
       <form action=".">
         <div class="row">
             <label for="form-widgets-id">ID</label>
-            <span id="form-widgets-id" class="textWidget textline-field">
+            <span id="form-widgets-id"
+                  class="text-widget required textline-field">
               srichter
             </span>
         </div>
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget textline-field" value="Stephan Richter" />
+                 class="text-widget required textline-field"
+                 value="Stephan Richter" />
         </div>
         <div class="row">
           <label for="form-widgets-gender">Gender</label>
           <select id="form-widgets-gender" name="form.widgets.gender:list"
-                  class="selectWidget choice-field" size="1">
+                  class="select-widget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male"
@@ -721,11 +726,11 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget int-field" value="20" />
+                 class="text-widget int-field" value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply" name="form.buttons.apply"
-                 class="submitWidget button-field" value="Apply" />
+                 class="submit-widget button-field" value="Apply" />
         </div>
       </form>
     </body>
@@ -762,19 +767,21 @@
       <form action=".">
         <div class="row">
             <label for="form-widgets-id">ID</label>
-            <span id="form-widgets-id" class="textWidget textline-field">
+            <span id="form-widgets-id"
+                  class="text-widget required textline-field">
               srichter
             </span>
         </div>
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget textline-field" value="Claudia Richter" />
+                 class="text-widget required textline-field"
+                 value="Claudia Richter" />
         </div>
         <div class="row">
           <label for="form-widgets-gender">Gender</label>
           <select id="form-widgets-gender" name="form.widgets.gender:list"
-                  class="selectWidget choice-field" size="1">
+                  class="select-widget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male">male</option>
@@ -788,11 +795,11 @@
           <b><div class="error">The value cannot be a negative number.</div>
           </b><label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget int-field" value="-1" />
+                 class="text-widget int-field" value="-1" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply" name="form.buttons.apply"
-                 class="submitWidget button-field" value="Apply" />
+                 class="submit-widget button-field" value="Apply" />
         </div>
       </form>
     </body>
@@ -914,20 +921,22 @@
       <form action=".">
         <div class="row">
           <label for="form-widgets-id">ID</label>
-          <span id="form-widgets-id" class="textWidget textline-field">
+          <span id="form-widgets-id"
+                class="text-widget required textline-field">
             rineichen
           </span>
         </div>
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name"
-                 name="form.widgets.name" class="textWidget textline-field"
+                 name="form.widgets.name"
+                 class="text-widget required textline-field"
          value="Roger Ineichen" />
         </div>
         <div class="row">
           <label for="form-widgets-gender">Gender</label>
           <select id="form-widgets-gender" name="form.widgets.gender:list"
-                  class="selectWidget choice-field" size="1">
+                  class="select-widget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--" selected="selected">no value</option>
             <option id="form-widgets-gender-0" value="male">male</option>
@@ -939,12 +948,12 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age"
-                 name="form.widgets.age" class="textWidget int-field"
+                 name="form.widgets.age" class="text-widget int-field"
                  value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply"
-                 name="form.buttons.apply" class="submitWidget button-field"
+                 name="form.buttons.apply" class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>
@@ -988,23 +997,24 @@
   <html>
     <body>
       <div class="row">
-        <span id="form-widgets-id" class="textWidget textline-field">
+        <span id="form-widgets-id" class="text-widget required textline-field">
           srichter
         </span>
       </div>
       <div class="row">
-        <span id="form-widgets-name" class="textWidget textline-field">
+        <span id="form-widgets-name"
+              class="text-widget required textline-field">
           Claudia Richter
         </span>
       </div>
       <div class="row">
         <span id="form-widgets-gender"
-              class="selectWidget choice-field">
+              class="select-widget choice-field">
           <span class="selected-option">female</span>
         </span>
       </div>
       <div class="row">
-        <span id="form-widgets-age" class="textWidget int-field">
+        <span id="form-widgets-age" class="text-widget int-field">
           27
         </span>
       </div>
@@ -1201,7 +1211,7 @@
   ...
   <html...
   <input type="text" id="form-widgets-name"
-         name="form.widgets.name" class="MyCSS textline-field"
+         name="form.widgets.name" class="MyCSS required textline-field"
          value="Claudia Richter" />
   ...
 
@@ -1230,10 +1240,10 @@
   >>> print hiddenEdit.render()
   <html>...
   <input type="text" id="form-widgets-name"
-         name="form.widgets.name" class="MyCSS textline-field"
+         name="form.widgets.name" class="MyCSS required textline-field"
          value="Claudia Richter" />
   ...
   <input type="hidden" id="form-widgets-age"
-         name="form.widgets.age" class="hiddenWidget"
+         name="form.widgets.age" class="hidden-widget"
          value="27" />
   ...

Modified: z3c.form/trunk/src/z3c/form/group.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/group.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/group.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -105,13 +105,15 @@
         <div class="row">
           <label for="form-widgets-firstName">First Name</label>
           <input type="text" id="form-widgets-firstName"
-                 name="form.widgets.firstName" class="textWidget textline-field"
+                 name="form.widgets.firstName"
+                 class="text-widget required textline-field"
                  value="" />
         </div>
         <div class="row">
           <label for="form-widgets-lastName">Last Name</label>
           <input type="text" id="form-widgets-lastName"
-                 name="form.widgets.lastName" class="textWidget textline-field"
+                 name="form.widgets.lastName"
+                 class="text-widget required textline-field"
                  value="" />
         </div>
         <fieldgroup>
@@ -119,13 +121,15 @@
           <div class="row">
             <label for="form-widgets-license">License</label>
             <input type="text" id="form-widgets-license"
-                   name="form.widgets.license" class="textWidget textline-field"
+                   name="form.widgets.license"
+                   class="text-widget required textline-field"
                    value="" />
           </div>
           <div class="row">
             <label for="form-widgets-address">Address</label>
             <input type="text" id="form-widgets-address"
-                   name="form.widgets.address" class="textWidget textline-field"
+                   name="form.widgets.address"
+                   class="text-widget required textline-field"
                    value="" />
           </div>
         </fieldgroup>
@@ -134,25 +138,28 @@
           <div class="row">
             <label for="form-widgets-model">Model</label>
             <input type="text" id="form-widgets-model"
-                   name="form.widgets.model" class="textWidget textline-field"
+                   name="form.widgets.model"
+                   class="text-widget required textline-field"
                    value="" />
           </div>
           <div class="row">
             <label for="form-widgets-make">Make</label>
             <input type="text" id="form-widgets-make"
-                   name="form.widgets.make" class="textWidget textline-field"
+                   name="form.widgets.make"
+                   class="text-widget required textline-field"
                    value="" />
           </div>
           <div class="row">
             <label for="form-widgets-year">Year</label>
             <input type="text" id="form-widgets-year"
-                   name="form.widgets.year" class="textWidget int-field"
+                   name="form.widgets.year"
+                   class="text-widget required int-field"
                    value="" />
           </div>
         </fieldgroup>
         <div class="action">
           <input type="submit" id="form-buttons-add"
-                 name="form.buttons.add" class="submitWidget button-field"
+                 name="form.buttons.add" class="submit-widget button-field"
                  value="Add" />
         </div>
       </form>
@@ -294,13 +301,15 @@
         <div class="row">
           <label for="form-widgets-firstName">First Name</label>
           <input type="text" id="form-widgets-firstName"
-                 name="form.widgets.firstName" class="textWidget textline-field"
+                 name="form.widgets.firstName"
+                 class="text-widget required textline-field"
                  value="Stephan" />
         </div>
         <div class="row">
           <label for="form-widgets-lastName">Last Name</label>
           <input type="text" id="form-widgets-lastName"
-                 name="form.widgets.lastName" class="textWidget textline-field"
+                 name="form.widgets.lastName"
+                 class="text-widget required textline-field"
                  value="Richter" />
          </div>
         <fieldgroup>
@@ -308,13 +317,15 @@
           <div class="row">
             <label for="form-widgets-license">License</label>
             <input type="text" id="form-widgets-license"
-                   name="form.widgets.license" class="textWidget textline-field"
+                   name="form.widgets.license"
+                   class="text-widget required textline-field"
                    value="MA 40387" />
           </div>
           <div class="row">
             <label for="form-widgets-address">Address</label>
             <input type="text" id="form-widgets-address"
-                   name="form.widgets.address" class="textWidget textline-field"
+                   name="form.widgets.address"
+                   class="text-widget required textline-field"
                    value="10 Main St, Maynard, MA" />
           </div>
         </fieldgroup>
@@ -323,25 +334,28 @@
           <div class="row">
             <label for="form-widgets-model">Model</label>
             <input type="text" id="form-widgets-model"
-                   name="form.widgets.model" class="textWidget textline-field"
+                   name="form.widgets.model"
+                   class="text-widget required textline-field"
                    value="BMW" />
           </div>
           <div class="row">
             <label for="form-widgets-make">Make</label>
             <input type="text" id="form-widgets-make"
-                   name="form.widgets.make" class="textWidget textline-field"
+                   name="form.widgets.make"
+                   class="text-widget required textline-field"
                    value="325" />
           </div>
           <div class="row">
             <label for="form-widgets-year">Year</label>
             <input type="text" id="form-widgets-year"
-                   name="form.widgets.year" class="textWidget int-field"
+                   name="form.widgets.year"
+                   class="text-widget required int-field"
                    value="2005" />
           </div>
         </fieldgroup>
         <div class="action">
           <input type="submit" id="form-buttons-apply"
-                 name="form.buttons.apply" class="submitWidget button-field"
+                 name="form.buttons.apply" class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>

Modified: z3c.form/trunk/src/z3c/form/subform.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/subform.txt	2007-07-31 22:55:50 UTC (rev 78512)
+++ z3c.form/trunk/src/z3c/form/subform.txt	2007-07-31 23:03:47 UTC (rev 78513)
@@ -109,35 +109,39 @@
         <div class="row">
           <label for="car-widgets-model">Model</label>
           <input type="text" id="car-widgets-model" name="car.widgets.model"
-                 class="textWidget textline-field" value="Nissan" />
+                 class="text-widget required textline-field" value="Nissan" />
         </div>
         <div class="row">
           <label for="car-widgets-make">Make</label>
           <input type="text" id="car-widgets-make" name="car.widgets.make"
-                 class="textWidget textline-field" value="Sentra" />
+                 class="text-widget required textline-field" value="Sentra" />
         </div>
         <fieldset>
           <legend>Owner</legend>
           <div class="row">
             <label for="owner-widgets-name">Name</label>
             <input type="text" id="owner-widgets-name" name="owner.widgets.name"
-                   class="textWidget textline-field" value="Stephan Richter" />
+                   class="text-widget required textline-field"
+                   value="Stephan Richter" />
           </div>
           <div class="row">
             <label for="owner-widgets-license">License</label>
             <input type="text" id="owner-widgets-license"
                    name="owner.widgets.license"
-                   class="textWidget textline-field" value="MA-1231FW97" />
+                   class="text-widget required textline-field"
+                   value="MA-1231FW97" />
           </div>
           <div class="action">
             <input type="submit" id="owner-buttons-apply"
-                   name="owner.buttons.apply" class="submitWidget button-field"
+                   name="owner.buttons.apply"
+                   class="submit-widget button-field"
                    value="Apply" />
           </div>
         </fieldset>
         <div class="action">
           <input type="submit" id="car-buttons-apply"
-                 name="car.buttons.apply" class="submitWidget button-field"
+                 name="car.buttons.apply"
+                 class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>
@@ -177,13 +181,15 @@
         <div class="row">
           <label for="car-widgets-model">Model</label>
           <input type="text" id="car-widgets-model"
-                 name="car.widgets.model" class="textWidget textline-field"
+                 name="car.widgets.model"
+                 class="text-widget required textline-field"
                  value="BMW" />
         </div>
         <div class="row">
           <label for="car-widgets-make">Make</label>
           <input type="text" id="car-widgets-make"
-                 name="car.widgets.make" class="textWidget textline-field"
+                 name="car.widgets.make"
+                 class="text-widget required textline-field"
                  value="325" />
         </div>
         <fieldset>
@@ -192,24 +198,28 @@
           <div class="row">
             <label for="owner-widgets-name">Name</label>
             <input type="text" id="owner-widgets-name"
-                   name="owner.widgets.name" class="textWidget textline-field"
+                   name="owner.widgets.name"
+                   class="text-widget required textline-field"
                    value="Stephan Richter" />
           </div>
           <div class="row">
             <label for="owner-widgets-license">License</label>
             <input type="text" id="owner-widgets-license"
                    name="owner.widgets.license"
-                   class="textWidget textline-field" value="MA-97097A87" />
+                   class="text-widget required textline-field"
+                   value="MA-97097A87" />
           </div>
           <div class="action">
             <input type="submit" id="owner-buttons-apply"
-                   name="owner.buttons.apply" class="submitWidget button-field"
+                   name="owner.buttons.apply"
+                   class="submit-widget button-field"
                    value="Apply" />
           </div>
         </fieldset>
         <div class="action">
           <input type="submit" id="car-buttons-apply"
-                 name="car.buttons.apply" class="submitWidget button-field"
+                 name="car.buttons.apply"
+                 class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>
@@ -287,31 +297,39 @@
       <form action=".">
         <div class="row">
           <label for="car-widgets-model">Model</label>
-          <input type="text" id="car-widgets-model" name="car.widgets.model"
-                 class="textWidget textline-field" value="BMW" />
+          <input type="text" id="car-widgets-model"
+                 name="car.widgets.model"
+                 class="text-widget required textline-field"
+                 value="BMW" />
         </div>
         <div class="row">
           <label for="car-widgets-make">Make</label>
-          <input type="text" id="car-widgets-make" name="car.widgets.make"
-                 class="textWidget textline-field" value="325" />
+          <input type="text" id="car-widgets-make"
+                 name="car.widgets.make"
+                 class="text-widget required textline-field"
+                 value="325" />
         </div>
         <fieldset>
           <legend>Owner</legend>
           <div class="row">
             <label for="owner-widgets-name">Name</label>
-            <input type="text" id="owner-widgets-name" name="owner.widgets.name"
-                   class="textWidget textline-field" value="Stephan Richter" />
+            <input type="text" id="owner-widgets-name"
+                   name="owner.widgets.name"
+                   class="text-widget required textline-field"
+                   value="Stephan Richter" />
           </div>
           <div class="row">
             <label for="owner-widgets-license">License</label>
             <input type="text" id="owner-widgets-license"
                    name="owner.widgets.license"
-                   class="textWidget textline-field" value="MA-97097A87" />
+                   class="text-widget required textline-field"
+                   value="MA-97097A87" />
           </div>
         </fieldset>
         <div class="action">
           <input type="submit" id="car-buttons-apply"
-                 name="car.buttons.apply" class="submitWidget button-field"
+                 name="car.buttons.apply"
+                 class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>
@@ -380,13 +398,15 @@
           <b><div class="error">Constraint not satisfied</div>
           </b><label for="car-widgets-model">Model</label>
           <input type="text" id="car-widgets-model"
-                 name="car.widgets.model" class="textWidget textline-field"
+                 name="car.widgets.model"
+                 class="text-widget required textline-field"
                  value="Volvo " />
         </div>
         <div class="row">
           <label for="car-widgets-make">Make</label>
           <input type="text" id="car-widgets-make"
-                 name="car.widgets.make" class="textWidget textline-field"
+                 name="car.widgets.make"
+                 class="text-widget required textline-field"
                  value="450" />
         </div>
         <fieldset>
@@ -395,19 +415,21 @@
           <div class="row">
             <label for="owner-widgets-name">Name</label>
             <input type="text" id="owner-widgets-name"
-                   name="owner.widgets.name" class="textWidget textline-field"
+                   name="owner.widgets.name"
+                   class="text-widget required textline-field"
                    value="Stephan Richter" />
           </div>
           <div class="row">
             <label for="owner-widgets-license">License</label>
             <input type="text" id="owner-widgets-license"
                    name="owner.widgets.license"
-                   class="textWidget textline-field" value="MA-991723FDG" />
+                   class="text-widget required textline-field"
+                   value="MA-991723FDG" />
           </div>
         </fieldset>
         <div class="action">
           <input type="submit" id="car-buttons-apply"
-                 name="car.buttons.apply" class="submitWidget button-field"
+                 name="car.buttons.apply" class="submit-widget button-field"
                  value="Apply" />
         </div>
       </form>
@@ -553,13 +575,15 @@
     <div class="row">
       <label for="car-widgets-model">Model</label>
       <input type="text" id="car-widgets-model"
-             name="car.widgets.model" class="textWidget textline-field"
+             name="car.widgets.model"
+             class="text-widget required textline-field"
              value="" />
     </div>
     <div class="row">
       <label for="car-widgets-make">Make</label>
       <input type="text" id="car-widgets-make"
-             name="car.widgets.make" class="textWidget textline-field"
+             name="car.widgets.make"
+             class="text-widget required textline-field"
              value="" />
     </div>
     <fieldset>
@@ -567,24 +591,26 @@
     <div class="row">
       <label for="owner-widgets-name">Name</label>
       <input type="text" id="owner-widgets-name"
-             name="owner.widgets.name" class="textWidget textline-field"
+             name="owner.widgets.name"
+             class="text-widget required textline-field"
              value="" />
     </div>
     <div class="row">
       <label for="owner-widgets-license">License</label>
       <input type="text" id="owner-widgets-license"
-           name="owner.widgets.license" class="textWidget textline-field"
+           name="owner.widgets.license"
+           class="text-widget required textline-field"
            value="" />
     </div>
     <div class="action">
       <input type="submit" id="owner-buttons-apply"
-           name="owner.buttons.apply" class="submitWidget button-field"
+           name="owner.buttons.apply" class="submit-widget button-field"
            value="Apply" />
     </div>
     </fieldset>
     <div class="action">
       <input type="submit" id="car-buttons-apply"
-           name="car.buttons.apply" class="submitWidget button-field"
+           name="car.buttons.apply" class="submit-widget button-field"
            value="Apply" />
     </div>
   </form>



More information about the Checkins mailing list