[Checkins] SVN: z3c.form/trunk/ - Feature: All ``IFieldWidget`` instances that are also HTML element widgets

Stephan Richter srichter at cosmos.phy.tufts.edu
Tue Jul 3 04:57:24 EDT 2007


Log message for revision 77328:
  - Feature: All ``IFieldWidget`` instances that are also HTML element widgets
    now declare an additional CSS class of the form "<fieldtype.lower()>-field".
  
  - Feature: Added ``addClass()`` method to HTML element widgets, so that adding
    a new CSS class is simpler.
  
  - Feature: Renamed "css" attribute of the widget to "klass", because the class
    of an HTML element is a classification, not a CSS marker
  
  

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/checkbox.py
  U   z3c.form/trunk/src/z3c/form/browser/checkbox_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/file.py
  U   z3c.form/trunk/src/z3c/form/browser/file_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/interfaces.py
  U   z3c.form/trunk/src/z3c/form/browser/orderedselect.py
  U   z3c.form/trunk/src/z3c/form/browser/orderedselect_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/password.py
  U   z3c.form/trunk/src/z3c/form/browser/password_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/radio.py
  U   z3c.form/trunk/src/z3c/form/browser/radio_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/select.py
  U   z3c.form/trunk/src/z3c/form/browser/select_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/submit.py
  U   z3c.form/trunk/src/z3c/form/browser/submit_display.pt
  U   z3c.form/trunk/src/z3c/form/browser/submit_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/text.py
  U   z3c.form/trunk/src/z3c/form/browser/text_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/textarea.py
  U   z3c.form/trunk/src/z3c/form/browser/textarea_input.pt
  U   z3c.form/trunk/src/z3c/form/browser/widget.py
  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
  U   z3c.form/trunk/src/z3c/form/widget.py

-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/CHANGES.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -5,6 +5,15 @@
 Version 1.5.0 (??/??/2007)
 -------------------------
 
+- Feature: All ``IFieldWidget`` instances that are also HTML element widgets
+  now declare an additional CSS class of the form "<fieldtype.lower()>-field".
+
+- Feature: Added ``addClass()`` method to HTML element widgets, so that adding
+  a new CSS class is simpler.
+
+- Feature: Renamed "css" attribute of the widget to "klass", because the class
+  of an HTML element is a classification, not a CSS marker.
+
 - Feature: Reviewed all widget attributes. Added all available HTML attributes
   to the widgets.
 
@@ -168,4 +177,4 @@
 Version 1.0.0 (5/24/2007)
 -------------------------
 
-- Initial Releas
+- Initial Release

Modified: z3c.form/trunk/src/z3c/form/adding.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/adding.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/adding.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -80,8 +80,8 @@
       <form action=".">
         <div class="row">
           <label for="form-widgets-name">Name</label>
-          <input type="text" id="form-widgets-name"
-                 name="form.widgets.name" class="textWidget" value="" />
+          <input type="text" id="form-widgets-name" name="form.widgets.name"
+                 class="textWidget textline-field" value="" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add"

Modified: z3c.form/trunk/src/z3c/form/browser/README.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/README.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/README.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -40,7 +40,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <textarea id="foo" name="bar" class="textAreaWidget">This is
+  <textarea id="foo" name="bar" class="textAreaWidget ascii-field">This is
    ASCII.</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -56,7 +56,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget asciiline-field"
          value="An ASCII line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -73,13 +73,13 @@
   >>> print widget.render()
   <span class="option">
     <input type="radio" id="foo-0" name="bar:list"
-           class="radioWidget" value="yes" checked="checked" />
+           class="radioWidget bool-field" value="yes" 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" value="no" />
+           class="radioWidget bool-field" value="no" />
     <label for="foo-1">
       <span class="label">no</span>
     </label>
@@ -101,14 +101,14 @@
   >>> print widget.render()
   <span class="option">
     <input type="checkbox" id="foo-0" name="bar:list"
-           class="checkBoxWidget" value="yes"
+           class="checkBoxWidget bool-field" value="yes"
            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" value="no" />
+           class="checkBoxWidget bool-field" value="no" />
     <label for="foo-1">
       <span class="label">no</span>
     </label>
@@ -128,12 +128,13 @@
   >>> widget.update()
   >>> print widget.render()
   <input type="submit" id="foo" name="bar"
-         class="submitWidget" value="Press me!" />
+         class="submitWidget button-field" value="Press me!" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
   <input type="submit" id="foo" name="bar"
-         class="submitWidget" value="Press me!" disabled="" />
+         class="submitWidget button-field" value="Press me!"
+         disabled="disabled" />
 
 
 Bytes
@@ -143,7 +144,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="file" id="foo" name="bar" class="fileWidget" />
+  <input type="file" id="foo" name="bar" class="fileWidget bytes-field" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> widget.render()
@@ -157,7 +158,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget bytesline-field"
          value="A Bytes line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -176,7 +177,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget"
+  <select id="foo" name="bar:list" class="selectWidget choice-field"
           size="1">
     <option id="foo-0" value="yes" selected="selected">Yes</option>
     <option id="foo-1" value="no">No</option>
@@ -196,7 +197,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget date-field"
          value="07/04/01" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -211,7 +212,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget datetime-field"
          value="07/04/01 12:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -227,7 +228,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget decimal-field"
          value="1,265.87" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -249,7 +250,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget dottedname-field"
          value="z3c.form" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -264,7 +265,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget float-field"
          value="1,265.8" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -281,7 +282,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget"
+  <select id="foo" name="bar:list" class="selectWidget frozenset-field"
           multiple="multiple" size="5">
     <option id="foo-0" value="1" selected="selected">1</option>
     <option id="foo-1" value="2">2</option>
@@ -302,7 +303,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget id-field"
          value="z3c.form" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -317,7 +318,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget int-field"
          value="1,200" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -342,7 +343,7 @@
     <tr>
       <td>
         <select id="foo-from" name="bar.from" size="5"
-                multiple="multiple">
+                multiple="multiple" class="list-field">
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
@@ -359,7 +360,8 @@
                 onclick="javascript:to2from('foo')">&lt;-&nbsp;</button>
       </td>
       <td>
-        <select id="foo-to" name="bar.to" size="5" multiple="multiple">
+        <select id="foo-to" name="bar.to" size="5"
+                multiple="multiple" class="list-field">
           <option value="1">1</option>
           <option value="3">3</option>
         </select>
@@ -399,7 +401,7 @@
   >>> widget.update()
   >>> print widget.render()
   <input type="password" id="foo" name="bar"
-         class="passwordWidget" />
+         class="passwordWidget password-field" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
@@ -415,7 +417,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <select id="foo" name="bar:list" class="selectWidget"
+  <select id="foo" name="bar:list" class="selectWidget set-field"
           multiple="multiple"  size="5">
     <option id="foo-0" value="1" selected="selected">1</option>
     <option id="foo-1" value="2">2</option>
@@ -437,7 +439,7 @@
   >>> widget.update()
   >>> print widget.render()
   <textarea id="foo" name="bar"
-            class="textAreaWidget">&lt;source /&gt;</textarea>
+            class="textAreaWidget sourcetext-field">&lt;source /&gt;</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
   >>> print widget.render()
@@ -451,7 +453,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <textarea id="foo" name="bar" class="textAreaWidget">Some
+  <textarea id="foo" name="bar" class="textAreaWidget text-field">Some
    Text.</textarea>
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -467,7 +469,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget textline-field"
          value="Some Text line." />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -482,7 +484,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget time-field"
          value="12:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -497,7 +499,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget timedelta-field"
          value="3 days, 0:00:00" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE
@@ -522,7 +524,7 @@
     <tr>
       <td>
         <select id="foo-from" name="bar.from" size="5"
-                multiple="multiple">
+                multiple="multiple" class="tuple-field">
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
@@ -539,7 +541,8 @@
                 onclick="javascript:to2from('foo')">&lt;-&nbsp;</button>
       </td>
       <td>
-        <select id="foo-to" name="bar.to" size="5" multiple="multiple">
+        <select id="foo-to" name="bar.to" size="5"
+                multiple="multiple" class="tuple-field">
           <option value="1">1</option>
           <option value="3">3</option>
         </select>
@@ -571,7 +574,7 @@
   >>> widget = setupWidget(field)
   >>> widget.update()
   >>> print widget.render()
-  <input type="text" id="foo" name="bar" class="textWidget"
+  <input type="text" id="foo" name="bar" class="textWidget uri-field"
          value="http://zope.org" />
 
   >>> widget.mode = interfaces.DISPLAY_MODE

Modified: z3c.form/trunk/src/z3c/form/browser/checkbox.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -23,15 +23,16 @@
 import zope.schema.interfaces
 from zope.i18n import translate
 
-from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLInputWidget
+from z3c.form import interfaces
+from z3c.form.widget import SequenceWidget, FieldWidget
+from z3c.form.browser import widget
 
 
-class CheckBoxWidget(HTMLInputWidget, widget.SequenceWidget):
+class CheckBoxWidget(widget.HTMLInputWidget, SequenceWidget):
     """Input type checkbox widget implementation."""
     zope.interface.implementsOnly(interfaces.ICheckBoxWidget)
 
-    css = u'checkBoxWidget'
+    klass = u'checkBoxWidget'
     items = ()
 
     def isChecked(self, term):
@@ -40,6 +41,7 @@
     def update(self):
         """See z3c.form.interfaces.IWidget."""
         super(CheckBoxWidget, self).update()
+        widget.addFieldClass(self)
         self.items = []
         for count, term in enumerate(self.terms):
             checked = self.isChecked(term)
@@ -57,4 +59,4 @@
 @zope.interface.implementer(interfaces.IFieldWidget)
 def CheckBoxFieldWidget(field, request):
     """IFieldWidget factory for CheckBoxWidget."""
-    return widget.FieldWidget(field, CheckBoxWidget(request))
+    return FieldWidget(field, CheckBoxWidget(request))

Modified: z3c.form/trunk/src/z3c/form/browser/checkbox_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/checkbox_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/checkbox_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -7,7 +7,7 @@
          tal:attributes="id item/id;
                          name item/name;
                          value item/value;
-                         class view/css;
+                         class view/klass;
                          title view/title;
                          lang view/lang;
                          onclick view/onclick;
@@ -35,7 +35,7 @@
          tal:attributes="id item/id;
                          name item/name;
                          value item/value;
-                         class view/css;
+                         class view/klass;
                          title view/title;
                          lang view/lang;
                          onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/file.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/file.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/file.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -28,12 +28,14 @@
     """Input type text widget implementation."""
     zope.interface.implementsOnly(interfaces.IFileWidget)
 
+    klass = u'fileWidget'
+
     # Filename and headers attribute get set by ``IDataConverter`` to the widget
     # provided by the FileUpload object of the form.
     headers = None
     filename = None
-    css = u'fileWidget'
 
+
 @zope.component.adapter(zope.schema.interfaces.IBytes, interfaces.IFormLayer)
 @zope.interface.implementer(interfaces.IFieldWidget)
 def FileFieldWidget(field, request):

Modified: z3c.form/trunk/src/z3c/form/browser/file_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/file_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/file_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -2,7 +2,7 @@
        readonly="" alt="" tabindex="" accesskey="" size="" maxlength=""
        tal:attributes="id view/id;
                        name view/name;
-                       class view/css;
+                       class view/klass;
                        title view/title;
                        lang view/lang;
                        onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/interfaces.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/interfaces.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/interfaces.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -30,7 +30,7 @@
         required=False)
 
     # HTML "class" attribute; "class" is a keyword in Python.
-    css = zope.schema.TextLine(
+    klass = zope.schema.TextLine(
         title=u'Class',
         description=(u'This attribute assigns a class name or set of '
                      u'class names to an element. Any number of elements '
@@ -165,7 +165,13 @@
                      u'gaining focus.'),
         required=False)
 
+    def addClass(klass):
+        """Add a class to the HTML element.
 
+        The class must be added to the ``klass`` attribute.
+        """
+
+
 class IHTMLInputWidget(IHTMLFormElement):
     """A widget using the HTML INPUT element."""
 

Modified: z3c.form/trunk/src/z3c/form/browser/orderedselect.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/orderedselect.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/orderedselect.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -22,11 +22,12 @@
 import zope.schema.interfaces
 from zope.i18n import translate
 
-from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLSelectWidget
+from z3c.form import interfaces
+from z3c.form.widget import SequenceWidget, FieldWidget
+from z3c.form.browser import widget
 
 
-class OrderedSelectWidget(HTMLSelectWidget, widget.SequenceWidget):
+class OrderedSelectWidget(widget.HTMLSelectWidget, SequenceWidget):
     """Ordered-Select widget implementation."""
     zope.interface.implementsOnly(interfaces.IOrderedSelectWidget)
 
@@ -46,6 +47,7 @@
     def update(self):
         """See z3c.form.interfaces.IWidget."""
         super(OrderedSelectWidget, self).update()
+        widget.addFieldClass(self)
         self.items = [
             self.getItem(term, count)
             for count, term in enumerate(self.terms)]
@@ -58,7 +60,7 @@
 @zope.interface.implementer(interfaces.IFieldWidget)
 def OrderedSelectFieldWidget(field, request):
     """IFieldWidget factory for SelectWidget."""
-    return widget.FieldWidget(field, OrderedSelectWidget(request))
+    return FieldWidget(field, OrderedSelectWidget(request))
 
 @zope.component.adapter(
     zope.schema.interfaces.ISequence, interfaces.IFormLayer)

Modified: z3c.form/trunk/src/z3c/form/browser/orderedselect_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/orderedselect_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/orderedselect_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -143,7 +143,7 @@
       <select id="from" name="from" size="5" multiple=""
           tal:attributes="name string:${view/name}.from;
                           id string:${view/id}-from;
-                          class view/css;
+                          class view/klass;
                           title view/title;
                           lang view/lang;
                           onclick view/onclick;
@@ -183,7 +183,7 @@
       <select id="to" name="to" size="5" multiple=""
           tal:attributes="name string:${view/name}.to;
                           id string:${view/id}-to;
-                          class view/css;
+                          class view/klass;
                           title view/title;
                           lang view/lang;
                           onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/password.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/password.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/password.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -27,7 +27,7 @@
     """Input type password widget implementation."""
     zope.interface.implementsOnly(interfaces.IPasswordWidget)
 
-    css = u'passwordWidget'
+    klass = u'passwordWidget'
 
 
 @zope.component.adapter(zope.schema.interfaces.IPassword, interfaces.IFormLayer)

Modified: z3c.form/trunk/src/z3c/form/browser/password_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/password_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/password_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -2,7 +2,7 @@
        readonly="" alt="" tabindex="" accesskey="" size="" maxlength=""
        tal:attributes="id view/id;
                        name view/name;
-                       class view/css;
+                       class view/klass;
                        title view/title;
                        lang view/lang;
                        onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/radio.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/radio.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/radio.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -23,15 +23,16 @@
 import zope.schema.interfaces
 from zope.i18n import translate
 
-from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLInputWidget
+from z3c.form import interfaces
+from z3c.form.widget import SequenceWidget, FieldWidget
+from z3c.form.browser import widget
 
 
-class RadioWidget(HTMLInputWidget, widget.SequenceWidget):
+class RadioWidget(widget.HTMLInputWidget, SequenceWidget):
     """Input type radio widget implementation."""
     zope.interface.implementsOnly(interfaces.IRadioWidget)
 
-    css = u'radioWidget'
+    klass = u'radioWidget'
     items = ()
 
     def isChecked(self, term):
@@ -40,6 +41,7 @@
     def update(self):
         """See z3c.form.interfaces.IWidget."""
         super(RadioWidget, self).update()
+        widget.addFieldClass(self)
         self.items = []
         for count, term in enumerate(self.terms):
             checked = self.isChecked(term)
@@ -57,4 +59,4 @@
 @zope.interface.implementer(interfaces.IFieldWidget)
 def RadioFieldWidget(field, request):
     """IFieldWidget factory for RadioWidget."""
-    return widget.FieldWidget(field, RadioWidget(request))
+    return FieldWidget(field, RadioWidget(request))

Modified: z3c.form/trunk/src/z3c/form/browser/radio_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/radio_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/radio_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -7,7 +7,7 @@
          tal:attributes="id item/id;
                          name item/name;
                          value item/value;
-                         class view/css;
+                         class view/klass;
                          title view/title;
                          lang view/lang;
                          onclick view/onclick;
@@ -35,7 +35,7 @@
          tal:attributes="id item/id;
                          name item/name;
                          value item/value;
-                         class view/css;
+                         class view/klass;
                          title view/title;
                          lang view/lang;
                          onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/select.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/select.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -22,16 +22,17 @@
 import zope.schema.interfaces
 from zope.i18n import translate
 
-from z3c.form import interfaces, widget
+from z3c.form import interfaces
 from z3c.form.i18n import MessageFactory as _
-from z3c.form.browser.widget import HTMLSelectWidget
+from z3c.form.widget import SequenceWidget, FieldWidget
+from z3c.form.browser import widget
 
 
-class SelectWidget(HTMLSelectWidget, widget.SequenceWidget):
+class SelectWidget(widget.HTMLSelectWidget, SequenceWidget):
     """Select widget implementation."""
     zope.interface.implementsOnly(interfaces.ISelectWidget)
 
-    css = u'selectWidget'
+    klass = u'selectWidget'
     items = ()
     prompt = False
 
@@ -39,7 +40,7 @@
     promptMessage = _('select a value ...')
 
     # Internal attributes
-    _adapterValueAttributes = widget.SequenceWidget._adapterValueAttributes + \
+    _adapterValueAttributes = SequenceWidget._adapterValueAttributes + \
         ('noValueMessage', 'promptMessage')
 
     def isSelected(self, term):
@@ -48,6 +49,7 @@
     def update(self):
         """See z3c.form.interfaces.IWidget."""
         super(SelectWidget, self).update()
+        widget.addFieldClass(self)
         self.items = []
         if (not self.required or self.prompt) and self.multiple is None:
             message = self.noValueMessage
@@ -75,7 +77,7 @@
 @zope.interface.implementer(interfaces.IFieldWidget)
 def SelectFieldWidget(field, request):
     """IFieldWidget factory for SelectWidget."""
-    return widget.FieldWidget(field, SelectWidget(request))
+    return FieldWidget(field, SelectWidget(request))
 
 
 @zope.component.adapter(

Modified: z3c.form/trunk/src/z3c/form/browser/select_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/select_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -1,7 +1,7 @@
 <select id="" name="" class="" tabindex="" disabled="" multiple="" size=""
         tal:attributes="id view/id;
                         name string:${view/name}:list;
-                        class view/css;
+                        class view/klass;
                         title view/title;
                         lang view/lang;
                         onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/submit.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/submit.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/submit.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -20,20 +20,24 @@
 import zope.interface
 
 from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLInputWidget
+from z3c.form.widget import Widget, FieldWidget
+from z3c.form.browser import widget
 
 
-class SubmitWidget(HTMLInputWidget, widget.Widget):
+class SubmitWidget(widget.HTMLInputWidget, Widget):
     """A submit button of a form."""
     zope.interface.implementsOnly(interfaces.ISubmitWidget)
 
-    css = u'submitWidget'
+    klass = u'submitWidget'
 
+    def update(self):
+        super(SubmitWidget, self).update()
+        widget.addFieldClass(self)
 
 
 @zope.component.adapter(interfaces.IButton, interfaces.IFormLayer)
 @zope.interface.implementer(interfaces.IFieldWidget)
 def SubmitFieldWidget(field, request):
-    submit = widget.FieldWidget(field, SubmitWidget(request))
+    submit = FieldWidget(field, SubmitWidget(request))
     submit.value = field.title
     return submit

Modified: z3c.form/trunk/src/z3c/form/browser/submit_display.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/submit_display.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/submit_display.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -1,5 +1,5 @@
-<input type="submit" id="" name="" class="" value="" disabled=""
+<input type="submit" id="" name="" class="" value="" disabled="disabled"
        tal:attributes="id view/id;
                        name view/name;
-                       class view/css;
+                       class view/klass;
                        value view/value" />

Modified: z3c.form/trunk/src/z3c/form/browser/submit_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/submit_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/submit_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -2,7 +2,7 @@
        accesskey=""
        tal:attributes="id view/id;
                        name view/name;
-                       class view/css;
+                       class view/klass;
                        lang view/lang;
                        onclick view/onclick;
                        ondblclick view/ondblclick;

Modified: z3c.form/trunk/src/z3c/form/browser/text.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/text.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -20,20 +20,24 @@
 import zope.interface
 import zope.schema.interfaces
 
-from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLTextInputWidget
+from z3c.form import interfaces
+from z3c.form.widget import Widget, FieldWidget
+from z3c.form.browser import widget
 
-class TextWidget(HTMLTextInputWidget, widget.Widget):
+class TextWidget(widget.HTMLTextInputWidget, Widget):
     """Input type text widget implementation."""
-
     zope.interface.implementsOnly(interfaces.ITextWidget)
 
-    css = u'textWidget'
+    klass = u'textWidget'
     value = u''
 
+    def update(self):
+        super(TextWidget, self).update()
+        widget.addFieldClass(self)
 
+
 @zope.component.adapter(zope.schema.interfaces.IField, interfaces.IFormLayer)
 @zope.interface.implementer(interfaces.IFieldWidget)
 def TextFieldWidget(field, request):
     """IFieldWidget factory for TextWidget."""
-    return widget.FieldWidget(field, TextWidget(request))
+    return FieldWidget(field, TextWidget(request))

Modified: z3c.form/trunk/src/z3c/form/browser/text_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/text_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/text_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -2,7 +2,7 @@
        readonly="" alt="" tabindex="" accesskey="" size="" maxlength=""
        tal:attributes="id view/id;
                        name view/name;
-                       class view/css;
+                       class view/klass;
                        title view/title;
                        lang view/lang;
                        onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/textarea.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/textarea.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/textarea.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -20,20 +20,25 @@
 import zope.interface
 import zope.schema.interfaces
 
-from z3c.form import interfaces, widget
-from z3c.form.browser.widget import HTMLTextAreaWidget
+from z3c.form import interfaces
+from z3c.form.widget import Widget, FieldWidget
+from z3c.form.browser import widget
 
 
-class TextAreaWidget(HTMLTextAreaWidget, widget.Widget):
+class TextAreaWidget(widget.HTMLTextAreaWidget, Widget):
     """Textarea widget implementation."""
     zope.interface.implementsOnly(interfaces.ITextAreaWidget)
 
-    css = u'textAreaWidget'
+    klass = u'textAreaWidget'
     value = u''
 
+    def update(self):
+        super(TextAreaWidget, self).update()
+        widget.addFieldClass(self)
 
+
 @zope.component.adapter(zope.schema.interfaces.IField, interfaces.IFormLayer)
 @zope.interface.implementer(interfaces.IFieldWidget)
 def TextAreaFieldWidget(field, request):
     """IFieldWidget factory for TextWidget."""
-    return widget.FieldWidget(field, TextAreaWidget(request))
+    return FieldWidget(field, TextAreaWidget(request))

Modified: z3c.form/trunk/src/z3c/form/browser/textarea_input.pt
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/textarea_input.pt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/textarea_input.pt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -3,7 +3,7 @@
     tabindex="" disabled="" readonly="" accesskey=""
     tal:attributes="id view/id;
                     name view/name;
-                    class view/css;
+                    class view/klass;
                     title view/title;
                     lang view/lang;
                     onclick view/onclick;

Modified: z3c.form/trunk/src/z3c/form/browser/widget.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/widget.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/browser/widget.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -19,13 +19,14 @@
 import zope.interface
 from zope.schema.fieldproperty import FieldProperty
 
+from z3c.form.interfaces import IFieldWidget
 from z3c.form.browser import interfaces
 
 class HTMLFormElement(object):
     zope.interface.implements(interfaces.IHTMLFormElement)
 
     id = FieldProperty(interfaces.IHTMLFormElement['id'])
-    css = FieldProperty(interfaces.IHTMLFormElement['css'])
+    klass = FieldProperty(interfaces.IHTMLFormElement['klass'])
     style = FieldProperty(interfaces.IHTMLFormElement['style'])
     title = FieldProperty(interfaces.IHTMLFormElement['title'])
 
@@ -48,7 +49,14 @@
     onblur = FieldProperty(interfaces.IHTMLFormElement['onblur'])
     onchange = FieldProperty(interfaces.IHTMLFormElement['onchange'])
 
+    def addClass(self, klass):
+        """See interfaces.IHTMLFormElement"""
+        if not self.klass:
+            self.klass = klass
+        else:
+            self.klass += ' ' + klass
 
+
 class HTMLInputWidget(HTMLFormElement):
     zope.interface.implements(interfaces.IHTMLInputWidget)
 
@@ -80,3 +88,13 @@
 
     multiple = FieldProperty(interfaces.IHTMLSelectWidget['multiple'])
     size = FieldProperty(interfaces.IHTMLSelectWidget['size'])
+
+
+def addFieldClass(widget):
+    """Add a class to the widget that is based on the field type name.
+
+    If the widget does not have field, then nothing is done.
+    """
+    if IFieldWidget.providedBy(widget):
+        klass = unicode(widget.field.__class__.__name__.lower() + '-field')
+        widget.addClass(klass)

Modified: z3c.form/trunk/src/z3c/form/form.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/form.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/form.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -294,17 +294,18 @@
         <div class="row">
           <label for="form-widgets-id">ID</label>
           <input type="text" id="form-widgets-id"
-                 name="form.widgets.id" class="textWidget" value="" />
+                 name="form.widgets.id" class="textWidget 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" value="" />
+                 class="textWidget 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" size="1">
+                  class="selectWidget 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>
@@ -316,7 +317,7 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget" value="20" />
+                 class="textWidget int-field" value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add" name="form.buttons.add"
@@ -399,18 +400,19 @@
         <div class="row">
           <label for="form-widgets-id">ID</label>
           <input type="text" id="form-widgets-id"
-                 name="form.widgets.id" class="textWidget" value="srichter" />
+                 name="form.widgets.id" class="textWidget 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" value="" />
+                 class="textWidget 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" size="1">
+                  class="selectWidget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male"
@@ -423,7 +425,7 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget" value="23" />
+                 class="textWidget int-field" value="23" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-add" name="form.buttons.add"
@@ -569,7 +571,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" value="" />
+           class="textWidget textline-field" value="" />
   </div>
   ...
 
@@ -693,12 +695,12 @@
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget" value="Stephan Richter" />
+                 class="textWidget 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" size="1">
+                  class="selectWidget choice-field" size="1">
             <option id="form-widgets-gender-novalue"
                     value="--NOVALUE--">no value</option>
             <option id="form-widgets-gender-0" value="male"
@@ -711,7 +713,7 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age" name="form.widgets.age"
-                 class="textWidget" value="20" />
+                 class="textWidget int-field" value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply" name="form.buttons.apply"
@@ -757,12 +759,12 @@
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name" name="form.widgets.name"
-                 class="textWidget" value="Claudia Richter" />
+                 class="textWidget 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" size="1">
+                  class="selectWidget 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>
@@ -776,7 +778,7 @@
           <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" value="-1" />
+                 class="textWidget int-field" value="-1" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply" name="form.buttons.apply"
@@ -907,13 +909,13 @@
         <div class="row">
           <label for="form-widgets-name">Full Name</label>
           <input type="text" id="form-widgets-name"
-         name="form.widgets.name" class="textWidget"
+                 name="form.widgets.name" class="textWidget 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" size="1">
+                  class="selectWidget 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>
@@ -925,7 +927,8 @@
         <div class="row">
           <label for="form-widgets-age">Age</label>
           <input type="text" id="form-widgets-age"
-                 name="form.widgets.age" class="textWidget" value="20" />
+                 name="form.widgets.age" class="textWidget int-field"
+                 value="20" />
         </div>
         <div class="action">
           <input type="submit" id="form-buttons-apply"
@@ -1103,7 +1106,7 @@
   >>> from z3c.form.browser import text
   >>> class MyWidget(text.TextWidget):
   ...     """My new widget."""
-  ...     css = u'MyCSS'
+  ...     klass = u'MyCSS'
 
 Now we can define a field widget factory:
 
@@ -1127,7 +1130,7 @@
   ...
   <html...
   <input type="text" id="form-widgets-name"
-         name="form.widgets.name" class="MyCSS"
+         name="form.widgets.name" class="MyCSS textline-field"
          value="Claudia Richter" />
   ...
 
@@ -1135,7 +1138,7 @@
 Hidden fields
 -------------
 
-Another important part of a form is that we can generate hidden widgets. We can 
+Another important part of a form is that we can generate hidden widgets. We can
 do this in a form by defining a widget mode. We can do this by override the
 setUpWidgets method.
 
@@ -1143,7 +1146,7 @@
   ...
   ...     fields = field.Fields(IPerson)
   ...     fields['name'].widgetFactory = MyFieldWidget
-  ...     
+  ...
   ...     def updateWidgets(self):
   ...         super(HiddenFieldEditForm, self).updateWidgets()
   ...         self.widgets['age'].mode = interfaces.HIDDEN_MODE
@@ -1156,7 +1159,7 @@
   >>> print hiddenEdit.render()
   <html>...
   <input type="text" id="form-widgets-name"
-         name="form.widgets.name" class="MyCSS"
+         name="form.widgets.name" class="MyCSS textline-field"
          value="Claudia Richter" />
   ...
   <input type="hidden" id="form-widgets-age"

Modified: z3c.form/trunk/src/z3c/form/group.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/group.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/group.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -105,28 +105,28 @@
         <div class="row">
           <label for="form-widgets-firstName">First Name</label>
           <input type="text" id="form-widgets-firstName"
-         name="form.widgets.firstName" class="textWidget"
-         value="" />
+                 name="form.widgets.firstName" class="textWidget 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"
-         value="" />
+                 name="form.widgets.lastName" class="textWidget textline-field"
+                 value="" />
         </div>
         <fieldgroup>
           <legend>License</legend>
           <div class="row">
             <label for="form-widgets-license">License</label>
             <input type="text" id="form-widgets-license"
-           name="form.widgets.license" class="textWidget"
-           value="" />
+                   name="form.widgets.license" class="textWidget 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"
-           value="" />
+                   name="form.widgets.address" class="textWidget textline-field"
+                   value="" />
           </div>
         </fieldgroup>
         <fieldgroup>
@@ -134,17 +134,20 @@
           <div class="row">
             <label for="form-widgets-model">Model</label>
             <input type="text" id="form-widgets-model"
-           name="form.widgets.model" class="textWidget" value="" />
+                   name="form.widgets.model" class="textWidget 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" value="" />
+                   name="form.widgets.make" class="textWidget 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" value="" />
+                   name="form.widgets.year" class="textWidget int-field"
+                   value="" />
           </div>
         </fieldgroup>
         <div class="action">
@@ -291,13 +294,13 @@
         <div class="row">
           <label for="form-widgets-firstName">First Name</label>
           <input type="text" id="form-widgets-firstName"
-                 name="form.widgets.firstName" class="textWidget"
+                 name="form.widgets.firstName" class="textWidget 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"
+                 name="form.widgets.lastName" class="textWidget textline-field"
                  value="Richter" />
          </div>
         <fieldgroup>
@@ -305,13 +308,13 @@
           <div class="row">
             <label for="form-widgets-license">License</label>
             <input type="text" id="form-widgets-license"
-                   name="form.widgets.license" class="textWidget"
+                   name="form.widgets.license" class="textWidget 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"
+                   name="form.widgets.address" class="textWidget textline-field"
                    value="10 Main St, Maynard, MA" />
           </div>
         </fieldgroup>
@@ -320,19 +323,19 @@
           <div class="row">
             <label for="form-widgets-model">Model</label>
             <input type="text" id="form-widgets-model"
-                   name="form.widgets.model" class="textWidget"
+                   name="form.widgets.model" class="textWidget 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"
+                   name="form.widgets.make" class="textWidget 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"
+                   name="form.widgets.year" class="textWidget int-field"
                    value="2005" />
           </div>
         </fieldgroup>
@@ -422,4 +425,4 @@
   >>> reg.year
   2006
 
-And that's 
+And that's it!

Modified: z3c.form/trunk/src/z3c/form/subform.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/subform.txt	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/subform.txt	2007-07-03 08:57:23 UTC (rev 77328)
@@ -108,27 +108,26 @@
       <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" value="Nissan" />
+          <input type="text" id="car-widgets-model" name="car.widgets.model"
+                 class="textWidget 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" value="Sentra" />
+          <input type="text" id="car-widgets-make" name="car.widgets.make"
+                 class="textWidget 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"
-                   value="Stephan Richter" />
+            <input type="text" id="owner-widgets-name" name="owner.widgets.name"
+                   class="textWidget 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"
-                   value="MA-1231FW97" />
+                   name="owner.widgets.license"
+                   class="textWidget textline-field" value="MA-1231FW97" />
           </div>
           <div class="action">
             <input type="submit" id="owner-buttons-apply"
@@ -178,13 +177,13 @@
         <div class="row">
           <label for="car-widgets-model">Model</label>
           <input type="text" id="car-widgets-model"
-                 name="car.widgets.model" class="textWidget"
+                 name="car.widgets.model" class="textWidget 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"
+                 name="car.widgets.make" class="textWidget textline-field"
                  value="325" />
         </div>
         <fieldset>
@@ -193,14 +192,14 @@
           <div class="row">
             <label for="owner-widgets-name">Name</label>
             <input type="text" id="owner-widgets-name"
-                   name="owner.widgets.name" class="textWidget"
+                   name="owner.widgets.name" class="textWidget 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"
-                   value="MA-97097A87" />
+                   name="owner.widgets.license"
+                   class="textWidget textline-field" value="MA-97097A87" />
           </div>
           <div class="action">
             <input type="submit" id="owner-buttons-apply"
@@ -289,25 +288,25 @@
         <div class="row">
           <label for="car-widgets-model">Model</label>
           <input type="text" id="car-widgets-model" name="car.widgets.model"
-                 class="textWidget" value="BMW" />
+                 class="textWidget 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" value="325" />
+                 class="textWidget 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" value="Stephan Richter" />
+                   class="textWidget 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"
-                   value="MA-97097A87" />
+                   name="owner.widgets.license"
+                   class="textWidget textline-field" value="MA-97097A87" />
           </div>
         </fieldset>
         <div class="action">
@@ -381,12 +380,14 @@
           <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" value="Volvo " />
+                 name="car.widgets.model" class="textWidget 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" value="450" />
+                 name="car.widgets.make" class="textWidget textline-field"
+                 value="450" />
         </div>
         <fieldset>
           <legend>Owner</legend>
@@ -394,14 +395,14 @@
           <div class="row">
             <label for="owner-widgets-name">Name</label>
             <input type="text" id="owner-widgets-name"
-                 name="owner.widgets.name" class="textWidget"
-                 value="Stephan Richter" />
+                   name="owner.widgets.name" class="textWidget 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"
-                 value="MA-991723FDG" />
+                   name="owner.widgets.license"
+                   class="textWidget textline-field" value="MA-991723FDG" />
           </div>
         </fieldset>
         <div class="action">
@@ -552,24 +553,27 @@
     <div class="row">
       <label for="car-widgets-model">Model</label>
       <input type="text" id="car-widgets-model"
-           name="car.widgets.model" class="textWidget" value="" />
+             name="car.widgets.model" class="textWidget 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" value="" />
+             name="car.widgets.make" class="textWidget textline-field"
+             value="" />
     </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" value="" />
+             name="owner.widgets.name" class="textWidget 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"
+           name="owner.widgets.license" class="textWidget textline-field"
            value="" />
     </div>
     <div class="action">

Modified: z3c.form/trunk/src/z3c/form/widget.py
===================================================================
--- z3c.form/trunk/src/z3c/form/widget.py	2007-07-03 08:52:12 UTC (rev 77327)
+++ z3c.form/trunk/src/z3c/form/widget.py	2007-07-03 08:57:23 UTC (rev 77328)
@@ -62,7 +62,7 @@
     ignoreContext = False
     # See ``interfaces.IFormAware``
     form = None
-    # See ``interfaces.IFieldAware``
+    # See ``interfaces.IFieldWidget``
     field = None
 
     # Internal attributes



More information about the Checkins mailing list