[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/demo/widget/ Added more widgets and find out the issuse:

Roger Ineichen roger at projekt01.ch
Sat Mar 19 13:03:23 EST 2005


Log message for revision 29574:
  Added more widgets and find out the issuse:
  * 296: missing display widgets
  reported in the doc/TODO.txt

Changed:
  A   Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
  A   Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
  A   Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
  U   Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml
  U   Zope3/trunk/src/zope/app/demo/widget/configure.zcml
  U   Zope3/trunk/src/zope/app/demo/widget/ftests.py
  A   Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
  U   Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml
  A   Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
  A   Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
  U   Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt
  U   Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py
  A   Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
  U   Zope3/trunk/src/zope/app/demo/widget/tests.py
  U   Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml

-=-
Added: Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/boolwidget.py	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/boolwidget.py	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,63 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Demo widget implementation
+
+$Id: intwidget.py 29331 2005-02-27 23:49:31Z rogerineichen $
+"""
+__docformat__ = 'restructuredtext'
+
+from persistent import Persistent
+from zope.interface import implements
+from zope.schema.fieldproperty import FieldProperty
+
+from zope.app.demo.widget.interfaces import IDemoBoolWidget
+from zope.app.demo.widget.app import DemoWidget
+
+
+class DemoBoolWidget(DemoWidget):
+    """Demo TextWidget implementation.
+    
+    >>> content = DemoBoolWidget()
+    >>> content.standard
+
+    >>> content.required = True
+    >>> content.required
+    True
+
+    >>> content.readonly = True
+    >>> content.readonly
+    True
+
+    >>> content.default
+    True
+
+    >>> content.standard
+
+    >>> content.required = True
+    >>> content.required
+    True
+
+    >>> content.constraint = True
+    >>> content.constraint
+    True
+    
+    """
+
+    implements(IDemoBoolWidget)
+    
+    standard = FieldProperty(IDemoBoolWidget['standard'])
+    required = FieldProperty(IDemoBoolWidget['required'])
+    readonly = FieldProperty(IDemoBoolWidget['readonly'])
+    constraint = FieldProperty(IDemoBoolWidget['constraint'])
+    default = FieldProperty(IDemoBoolWidget['default'])
\ No newline at end of file


Property changes on: Zope3/trunk/src/zope/app/demo/widget/boolwidget.py
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,17 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    i18n_domain="zope">
+
+  <content class=".boolwidget.DemoBoolWidget">
+
+    <require permission="zope.View" 
+        interface=".interfaces.IDemoBoolWidget"
+        />
+
+    <require permission="zope.ManageContent" 
+        set_schema=".interfaces.IDemoBoolWidget"
+        />
+
+  </content>
+
+</configure>


Property changes on: Zope3/trunk/src/zope/app/demo/widget/boolwidget.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,47 @@
+<configure
+    xmlns="http://namespaces.zope.org/browser"
+    i18n_domain="zope">
+
+  <addMenuItem
+      title="BoolWidget"
+      description="Add a Demo BoolWidget"
+      class="..boolwidget.DemoBoolWidget"
+      permission="zope.ManageContent"
+      view="addDemoBoolWidget.html"
+      />
+
+  <addform
+      name="addDemoBoolWidget.html"
+      label="Add a Demo BoolWidget"
+      schema="..interfaces.IWriteDemoBoolWidget"
+      content_factory="..boolwidget.DemoBoolWidget"
+      permission="zope.ManageContent"
+      />
+
+  <schemadisplay
+      name="index.html"
+      schema="..interfaces.IDemoBoolWidget"
+      label="BoolWidget Index"
+      permission="zope.ManageServices"
+      menu="zmi_views" title="View"
+      />
+
+  <editform
+      name="edit.html"
+      label="Edit"
+      for="..interfaces.IDemoBoolWidget"
+      schema="..interfaces.IWriteDemoBoolWidget"
+      menu="zmi_views" title="Edit"
+      permission="zope.ManageContent"
+      />
+
+  <editform
+      name="popupEdit.html"
+      label="Popup Edit"
+      for="..interfaces.IDemoBoolWidget"
+      schema="..interfaces.IDemoBoolWidget"
+      permission="zope.ManageContent"
+      template="popup.pt"
+      />
+
+</configure>


Property changes on: Zope3/trunk/src/zope/app/demo/widget/browser/boolwidget.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/browser/configure.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -29,6 +29,7 @@
       action="javascript:popup('./popupEdit.html', 'popup', 'height=460,width=500,resizable=1,scrollbars=yes,location=no,status=no,toolbar=no,menubar=no')"
       />
 
+  <include file="boolwidget.zcml" />
   <include file="intwidget.zcml" />
   <include file="textwidget.zcml" />
   <include file="textareawidget.zcml" />

Modified: Zope3/trunk/src/zope/app/demo/widget/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/configure.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/configure.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -18,6 +18,7 @@
   </content>
 
   <!-- demo widgets -->
+  <include file="boolwidget.zcml" />
   <include file="intwidget.zcml" />
   <include file="textwidget.zcml" />
   <include file="textareawidget.zcml" />

Modified: Zope3/trunk/src/zope/app/demo/widget/ftests.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/ftests.py	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/ftests.py	2005-03-19 18:03:23 UTC (rev 29574)
@@ -17,11 +17,15 @@
 """
 
 import unittest
-from zope.testing import doctest, doctestunit
 from zope.app.testing import functional
 
 def test_suite():
-    return functional.FunctionalDocFileSuite('./help/textwidget.txt')
+    return unittest.TestSuite((
+        functional.FunctionalDocFileSuite('./help/boolwidget.txt'),
+        functional.FunctionalDocFileSuite('./help/intwidget.txt'),
+        functional.FunctionalDocFileSuite('./help/textwidget.txt'),
+        functional.FunctionalDocFileSuite('./help/textareawidget.txt'),
+        ))
 
 if __name__ == '__main__':
     unittest.main(defaultTest='test_suite')

Added: Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,235 @@
+=================
+BoolWidget sample
+=================
+
+Interface
+---------
+
+Add a interfaces with Bool fields::
+
+class IReadDemoBoolWidget(Interface):
+    """Widget read interface."""
+
+    readonly = Bool(
+        title = _(u"readonly"),
+        description=_(u"zope.schema.Int field with readonly = True."),
+        required=False,
+        readonly=True,
+        default=42)
+
+
+class IWriteDemoBoolWidget(Interface):
+    """Widget write interface."""
+
+    standard = Bool(
+        title = _(u"standard"),
+        description=_(u"""zope.schema.Bool field with only title and description."""),
+        )
+
+    required = Bool(
+        title = _(u"required"),
+        description=_(u"zope.schema.Bool field with required = True."),
+        required=True)
+
+    constraint = Bool(
+        title = _(u"constraint"),
+        description=_(u"""zope.schema.Bool field with constraint """
+            """lambda x: x == True."""),
+        constraint=lambda x: x == True)
+
+    default = Bool(
+        title = _(u"default"),
+        description=_(u"""zope.schema.Bool field with """
+            """default = True."""),
+        default=True)
+
+
+class IDemoBoolWidget(IDemoWidget, IReadDemoBoolWidget, IWriteDemoBoolWidget):
+    """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoBoolWidget(DemoWidget):
+    """Demo TextWidget implementation."""
+
+    implements(IDemoBoolWidget)
+    
+    standard = FieldProperty(IDemoBoolWidget['standard'])
+    required = FieldProperty(IDemoBoolWidget['required'])
+    readonly = FieldProperty(IDemoBoolWidget['readonly'])
+    constraint = FieldProperty(IDemoBoolWidget['constraint'])
+    default = FieldProperty(IDemoBoolWidget['default'])
+
+Register the class::
+
+  <content class=".boolwidget.DemoBoolWidget">
+
+    <require permission="zope.View" 
+        interface=".interfaces.IDemoBoolWidget"
+        />
+
+    <require permission="zope.ManageContent" 
+        set_schema=".interfaces.IDemoBoolWidget"
+        />
+
+  </content>
+
+Register a addform::
+
+  <addMenuItem
+      title="BoolWidget"
+      description="Add a Demo BoolWidget"
+      class="..boolwidget.DemoBoolWidget"
+      permission="zope.ManageContent"
+      view="addDemoBoolWidget.html"
+      />
+
+  <addform
+      name="addDemoBoolWidget.html"
+      label="Add a Demo BoolWidget"
+      schema="..interfaces.IWriteDemoBoolWidget"
+      content_factory="..boolwidget.DemoBoolWidget"
+      permission="zope.ManageContent"
+      />
+
+Register a editform::
+
+  <editform
+      name="edit.html"
+      label="Edit"
+      for="..interfaces.IDemoBoolWidget"
+      schema="..interfaces.IWriteDemoBoolWidget"
+      menu="zmi_views" title="Edit"
+      permission="zope.ManageContent"
+      />
+
+Add a DemoWidgetContainer for test the widgets::
+
+  >>> print http(r"""
+  ... POST /@@contents.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: application/x-www-form-urlencoded
+  ... 
+  ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+  HTTP/1.1 303 See Other
+  ...
+
+Add a BoolWidget using the addform::
+
+  >>> print http(r"""
+  ... POST /widgets/+/addDemoBoolWidget.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: multipart/form-data; boundary=---------------------------7d538b36c0aea
+  ... Referer: http://localhost:8081/widgets/+/addDemoBoolWidget.html=
+  ... 
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.standard.used"
+  ... 
+  ... 
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.standard"
+  ... 
+  ... on
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.required.used"
+  ... 
+  ... 
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.required"
+  ... 
+  ... on
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.constraint.used"
+  ... 
+  ... 
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.constraint"
+  ... 
+  ... on
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.default.used"
+  ... 
+  ... 
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="field.default"
+  ... 
+  ... on
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+  ... 
+  ... Add
+  ... -----------------------------7d538b36c0aea
+  ... Content-Disposition: form-data; name="add_input_name"
+  ... 
+  ... demo
+  ... -----------------------------7d538b36c0aea--
+  ... """)
+  HTTP/1.1 303 See Other
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Bool field with only title and description.">standard</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.standard.used" name="field.standard.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.standard" name="field.standard" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Bool field with required = True.">required</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.required.used" name="field.required.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.required" name="field.required" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Bool field with constraint lambda x: x == True.">constraint</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.constraint.used" name="field.constraint.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.constraint" name="field.constraint" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Bool field with default = True.">default</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.default.used" name="field.default.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.default" name="field.default" type="checkbox" value="on"  /></div>
+        </div...
+
+
+Check the editform::
+
+  >>> print http(r"""
+  ... GET /widgets/demo/@@edit.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Referer: http://localhost:8081/widgets/demo/@@contents.html
+  ... """)
+  HTTP/1.1 200 Ok
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Bool field with only title and description.">standard</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.standard.used" name="field.standard.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.standard" name="field.standard" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Bool field with required = True.">required</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.required.used" name="field.required.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.required" name="field.required" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Bool field with constraint lambda x: x == True.">constraint</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.constraint.used" name="field.constraint.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.constraint" name="field.constraint" type="checkbox" value="on"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Bool field with default = True.">default</label>
+            </div>
+            <div class="field"><input class="hiddenType" id="field.default.used" name="field.default.used" type="hidden" value="" /> <input class="checkboxType" checked="checked" id="field.default" name="field.default" type="checkbox" value="on"  /></div>
+        </div...
\ No newline at end of file


Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/boolwidget.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/configure.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -12,6 +12,22 @@
       />
 
   <help:register
+      id="boolwidget"
+      parent="samples/widgets"
+      title="BoolWidget"
+      doc_path="boolwidget.txt"
+      class="zope.app.onlinehelp.onlinehelptopic.RESTOnlineHelpTopic"
+      />
+
+  <help:register
+      id="intwidget"
+      parent="samples/widgets"
+      title="IntWidget"
+      doc_path="intwidget.txt"
+      class="zope.app.onlinehelp.onlinehelptopic.RESTOnlineHelpTopic"
+      />
+
+  <help:register
       id="textwidget"
       parent="samples/widgets"
       title="TextWidget"

Added: Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,292 @@
+================
+IntWidget sample
+================
+
+Interface
+---------
+
+Add a interfaces with Int fields::
+
+class IReadDemoIntWidget(Interface):
+    """Widget read interface."""
+
+    readonly = Int(
+        title = _(u"readonly"),
+        description=_(u"zope.schema.Int field with readonly = True."),
+        required=False,
+        readonly=True,
+        default=42)
+
+
+class IWriteDemoIntWidget(Interface):
+    """Widget write interface."""
+
+    standard = Int(
+        title = _(u"standard"),
+        description=_(u"""zope.schema.Int field with only title and description."""),
+        )
+
+    required = Int(
+        title = _(u"required"),
+        description=_(u"zope.schema.Int field with required = True."),
+        required=True)
+
+    constraint = Int(
+        title = _(u"constraint"),
+        description=_(u"""zope.schema.Int field with constraint """
+            """lambda x: x == 42."""),
+        constraint=lambda x: x == 42)
+
+    default = Int(
+        title = _(u"default"),
+        description=_(u"""zope.schema.Int field with """
+            """default = u'default'."""),
+        default=42)
+
+    min = Int(
+        title = _(u"min"),
+        description=_(u"zope.schema.Int field with min = 5."),
+        min=5)
+
+    max = Int(
+        title = _(u"max"),
+        description=_(u"zope.schema.Int field with max = 10"),
+        max=10)
+
+    min_max = Int(
+        title = _(u"min_max"),
+        description=_(u"""zope.schema.Int field with min = 5 and max = 10"""),
+        min=5,
+        max=10)
+
+
+class IDemoIntWidget(IDemoWidget, IReadDemoIntWidget, IWriteDemoIntWidget):
+    """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoIntWidget(DemoWidget):
+    """Demo TextWidget implementation."""
+
+    implements(IDemoIntWidget)
+    
+    standard = FieldProperty(IDemoIntWidget['standard'])
+    required = FieldProperty(IDemoIntWidget['required'])
+    readonly = FieldProperty(IDemoIntWidget['readonly'])
+    constraint = FieldProperty(IDemoIntWidget['constraint'])
+    default = FieldProperty(IDemoIntWidget['default'])
+    min = FieldProperty(IDemoIntWidget['min'])
+    max = FieldProperty(IDemoIntWidget['max'])
+    min_max = FieldProperty(IDemoIntWidget['min_max'])
+
+Register the class::
+
+  <content class=".intwidget.DemoIntWidget">
+
+    <require permission="zope.View" 
+        interface=".interfaces.IDemoIntWidget"
+        />
+
+    <require permission="zope.ManageContent" 
+        set_schema=".interfaces.IDemoIntWidget"
+        />
+
+  </content>
+
+Register a addform::
+
+  <addMenuItem
+      title="IntWidget"
+      description="Add a Demo IntWidget"
+      class="..intwidget.DemoIntWidget"
+      permission="zope.ManageContent"
+      view="addDemoIntWidget.html"
+      />
+
+  <addform
+      name="addDemoIntWidget.html"
+      label="Add a Demo IntWidget"
+      schema="..interfaces.IWriteDemoIntWidget"
+      content_factory="..intwidget.DemoIntWidget"
+      permission="zope.ManageContent"
+      />
+
+Register a editform::
+
+  <editform
+      name="edit.html"
+      label="Edit"
+      for="..interfaces.IDemoIntWidget"
+      schema="..interfaces.IWriteDemoIntWidget"
+      menu="zmi_views" title="Edit"
+      permission="zope.ManageContent"
+      />
+
+Add a DemoWidgetContainer for test the widgets::
+
+  >>> print http(r"""
+  ... POST /@@contents.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: application/x-www-form-urlencoded
+  ... 
+  ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+  HTTP/1.1 303 See Other
+  ...
+
+Add a IntWidget using the addform::
+
+  >>> print http(r"""
+  ... POST /widgets/+/addDemoIntWidget.html%3D HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: multipart/form-data; boundary=---------------------------7d538ddc0aea
+  ... Referer: http://localhost:8081/widgets/+/addDemoIntWidget.html=
+  ... 
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.standard"
+  ... 
+  ... 42
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.required"
+  ... 
+  ... 42
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.constraint"
+  ... 
+  ... 42
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.default"
+  ... 
+  ... 42
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.min"
+  ... 
+  ... 6
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.max"
+  ... 
+  ... 6
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="field.min_max"
+  ... 
+  ... 6
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+  ... 
+  ... Add
+  ... -----------------------------7d538ddc0aea
+  ... Content-Disposition: form-data; name="add_input_name"
+  ... 
+  ... 42
+  ... -----------------------------7d538ddc0aea--
+  ... """)
+  HTTP/1.1 303 See Other
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Int field with only title and description.">standard</label>
+            </div>
+            <div class="field"><input class="textType" id="field.standard" name="field.standard" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Int field with required = True.">required</label>
+            </div>
+            <div class="field"><input class="textType" id="field.required" name="field.required" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Int field with constraint lambda x: x == 42.">constraint</label>
+            </div>
+            <div class="field"><input class="textType" id="field.constraint" name="field.constraint" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Int field with default = u'default'.">default</label>
+            </div>
+            <div class="field"><input class="textType" id="field.default" name="field.default" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min"
+                     title="zope.schema.Int field with min = 5.">min</label>
+            </div>
+            <div class="field"><input class="textType" id="field.min" name="field.min" size="10" type="text" value="6"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.max"
+                     title="zope.schema.Int field with max = 10">max</label>
+            </div>
+            <div class="field"><input class="textType" id="field.max" name="field.max" size="10" type="text" value="6"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_max"
+                     title="zope.schema.Int field with min = 5 and max = 10">min_max</label>
+            </div>
+            <div class="field"><input class="textType" id="field.min_max" name="field.min_max" size="10" type="text" value="6"  /></div>
+        </div...
+
+
+Check the editform::
+
+  >>> print http(r"""
+  ... GET /widgets/42/@@edit.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Referer: http://localhost:8081/widgets/42/@@index.html
+  ... """)
+  HTTP/1.1 200 Ok
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Int field with only title and description.">standard</label>
+            </div>
+            <div class="field"><input class="textType" id="field.standard" name="field.standard" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Int field with required = True.">required</label>
+            </div>
+            <div class="field"><input class="textType" id="field.required" name="field.required" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Int field with constraint lambda x: x == 42.">constraint</label>
+            </div>
+            <div class="field"><input class="textType" id="field.constraint" name="field.constraint" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Int field with default = u'default'.">default</label>
+            </div>
+            <div class="field"><input class="textType" id="field.default" name="field.default" size="10" type="text" value="42"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min"
+                     title="zope.schema.Int field with min = 5.">min</label>
+            </div>
+            <div class="field"><input class="textType" id="field.min" name="field.min" size="10" type="text" value="6"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.max"
+                     title="zope.schema.Int field with max = 10">max</label>
+            </div>
+            <div class="field"><input class="textType" id="field.max" name="field.max" size="10" type="text" value="6"  /></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_max"
+                     title="zope.schema.Int field with min = 5 and max = 10">min_max</label>
+            </div>
+            <div class="field"><input class="textType" id="field.min_max" name="field.min_max" size="10" type="text" value="6"  /></div>
+        </div...


Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/intwidget.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,292 @@
+=====================
+TextAreaWidget sample
+=====================
+
+Interface
+---------
+
+Add a interfaces with Text fields::
+
+class IReadDemoTextAreaWidget(Interface):
+    """Widget read interface."""
+
+    readonly = Text(
+        title = _(u"readonly"),
+        description=_(u"zope.schema.Text field with readonly = True."),
+        required=False,
+        readonly=True,
+        default=u'readonly')
+
+class IWriteDemoTextAreaWidget(Interface):
+    """Widget write interface."""
+
+    standard = Text(
+        title = _(u"standard"),
+        description=_(u"""zope.schema.Text field with only title and description."""),
+        )
+
+    required = Text(
+        title = _(u"required"),
+        description=_(u"zope.schema.Text field with required = True."),
+        required=True)
+
+    constraint = Text(
+        title = _(u"constraint"),
+        description=_(u"""zope.schema.Text field with """
+            """constraint = lambda x: x == u'constraint'."""),
+        constraint=lambda x: x == u'constraint')
+
+    default = Text(
+        title = _(u"default"),
+        description=_(u"""zope.schema.Text field with """
+            """default = u'default'."""),
+        default=u'default')
+
+    min_length = Text(
+        title = _(u"min_length"),
+        description=_(u"zope.schema.Text field with min_length = 5."),
+        min_length=5)
+
+    max_length = Text(
+        title = _(u"max_length"),
+        description=_(u"zope.schema.Text field with max_length = 10"),
+        max_length=10)
+
+    min_max = Text(
+        title = _(u"min_max"),
+        description=_(u"""zope.schema.Text field with min_lenght = 5 """
+            """and max_length = 10"""),
+        min_length=5,
+        max_length=10)
+
+
+class IDemoTextAreaWidget(IDemoWidget, IReadDemoTextAreaWidget, 
+    IWriteDemoTextAreaWidget):
+    """Widget interface inherites read and write interfaces."""
+
+Define a class::
+
+class DemoTextAreaWidget(DemoWidget):
+    """Demo TextAreaWidget implementation."""
+
+    implements(IDemoTextAreaWidget)
+    
+    standard = FieldProperty(IDemoTextAreaWidget['standard'])
+    required = FieldProperty(IDemoTextAreaWidget['required'])
+    readonly = FieldProperty(IDemoTextAreaWidget['readonly'])
+    constraint = FieldProperty(IDemoTextAreaWidget['constraint'])
+    default = FieldProperty(IDemoTextAreaWidget['default'])
+    min_length = FieldProperty(IDemoTextAreaWidget['min_length'])
+    max_length = FieldProperty(IDemoTextAreaWidget['max_length'])
+    min_max = FieldProperty(IDemoTextAreaWidget['min_max'])
+
+Register the class::
+
+  <content class=".textareawidget.DemoTextAreaWidget">
+
+    <require permission="zope.View" 
+        interface=".interfaces.IDemoTextAreaWidget"
+        />
+
+    <require permission="zope.ManageContent" 
+        set_schema=".interfaces.IDemoTextAreaWidget"
+        />
+
+  </content>
+
+Register a addform::
+
+  <addMenuItem
+      title="TextAreaWidget"
+      description="Add a Demo TextAreaWidget"
+      class="..textareawidget.DemoTextAreaWidget"
+      permission="zope.ManageContent"
+      view="addDemoTextAreaWidget.html"
+      />
+
+  <addform
+      name="addDemoTextAreaWidget.html"
+      label="Add a Demo TextWidget"
+      schema="..interfaces.IWriteDemoTextAreaWidget"
+      content_factory="..textareawidget.DemoTextAreaWidget"
+      permission="zope.ManageContent"
+      />
+
+Register a editform::
+
+  <editform
+      name="edit.html"
+      label="Edit"
+      for="..interfaces.IDemoTextAreaWidget"
+      schema="..interfaces.IWriteDemoTextAreaWidget"
+      menu="zmi_views" title="Edit"
+      permission="zope.ManageContent"
+      />
+
+Add a DemoWidgetContainer for test the widgets::
+
+  >>> print http(r"""
+  ... POST /@@contents.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: application/x-www-form-urlencoded
+  ... 
+  ... type_name=BrowserAdd__zope.app.demo.widget.app.DemoWidgetContainer&new_value=widgets""")
+  HTTP/1.1 303 See Other
+  ...
+
+Add a TextWidget using the addform::
+
+  >>> print http(r"""
+  ... POST /widgets/+/addDemoTextAreaWidget.html%3D HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Content-Type: multipart/form-data; boundary=---------------------------7d5ae0c0aea
+  ... Referer: http://localhost:8081/widgets/+/addDemoTextAreaWidget.html=
+  ... 
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.standard"
+  ... 
+  ... textarea
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.required"
+  ... 
+  ... textarea
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.constraint"
+  ... 
+  ... constraint
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.default"
+  ... 
+  ... default
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.min_length"
+  ... 
+  ... abcdef
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.max_length"
+  ... 
+  ... abcdef
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="field.min_max"
+  ... 
+  ... abcdef
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="UPDATE_SUBMIT"
+  ... 
+  ... Add
+  ... -----------------------------7d5ae0c0aea
+  ... Content-Disposition: form-data; name="add_input_name"
+  ... 
+  ... textarea
+  ... -----------------------------7d5ae0c0aea--
+  ... """)
+  HTTP/1.1 303 See Other
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Text field with only title and description.">standard</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.standard" name="field.standard" rows="15" >textarea</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Text field with required = True.">required</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.required" name="field.required" rows="15" >textarea</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Text field with constraint = lambda x: x == u'constraint'.">constraint</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.constraint" name="field.constraint" rows="15" >constraint</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Text field with default = u'default'.">default</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.default" name="field.default" rows="15" >default</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_length"
+                     title="zope.schema.Text field with min_length = 5.">min_length</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.min_length" name="field.min_length" rows="15" >abcdef</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.max_length"
+                     title="zope.schema.Text field with max_length = 10">max_length</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.max_length" name="field.max_length" rows="15" >abcdef</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_max"
+                     title="zope.schema.Text field with min_lenght = 5 and max_length = 10">min_max</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.min_max" name="field.min_max" rows="15" >abcdef</textarea></div>
+        </div...
+
+Check the editform::
+
+  >>> print http(r"""
+  ... GET /widgets/textarea/@@edit.html HTTP/1.1
+  ... Authorization: Basic mgr:mgrpw
+  ... Referer: http://localhost:8081/widgets/textarea/@@index.html
+  ... """)
+  HTTP/1.1 200 Ok
+  ...
+        <div class="row">
+            <div class="label">
+              <label for="field.standard"
+                     title="zope.schema.Text field with only title and description.">standard</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.standard" name="field.standard" rows="15" >textarea</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.required"
+                     title="zope.schema.Text field with required = True.">required</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.required" name="field.required" rows="15" >textarea</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.constraint"
+                     title="zope.schema.Text field with constraint = lambda x: x == u'constraint'.">constraint</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.constraint" name="field.constraint" rows="15" >constraint</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.default"
+                     title="zope.schema.Text field with default = u'default'.">default</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.default" name="field.default" rows="15" >default</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_length"
+                     title="zope.schema.Text field with min_length = 5.">min_length</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.min_length" name="field.min_length" rows="15" >abcdef</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.max_length"
+                     title="zope.schema.Text field with max_length = 10">max_length</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.max_length" name="field.max_length" rows="15" >abcdef</textarea></div>
+        </div>
+        <div class="row">
+            <div class="label">
+              <label for="field.min_max"
+                     title="zope.schema.Text field with min_lenght = 5 and max_length = 10">min_max</label>
+            </div>
+            <div class="field"><textarea cols="60" id="field.min_max" name="field.min_max" rows="15" >abcdef</textarea></div>
+        </div...
\ No newline at end of file


Property changes on: Zope3/trunk/src/zope/app/demo/widget/help/textareawidget.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/help/textwidget.txt	2005-03-19 18:03:23 UTC (rev 29574)
@@ -5,50 +5,65 @@
 Interface
 ---------
 
-Add a interface with TextLine fields::
+Add a interfaces with TextLine fields::
 
-  class IWriteDemoTextWidget(Interface):
-      """TextWidget demo write interface."""
-  
-      standard = TextLine(
-          title = _(u"standard"),
-          description=_(u"""zope.schema.TextLine field with only title and description."""),
-          )
-  
-      required = TextLine(
-          title = _(u"required"),
-          description=_(u"zope.schema.TextLine field with required = True."),
-          required=True)
-  
-      constraint = TextLine(
-          title = _(u"constraint"),
-          description=_(u"""zope.schema.TextLine field with """
-              """constraint = lambda x: x == u'constraint'."""),
-          constraint=lambda x: x == u'constraint')
-  
-      default = TextLine(
-          title = _(u"default"),
-          description=_(u"""zope.schema.TextLine field with """
-              """default = u'default'."""),
-          default=u'default')
-  
-      min_length = TextLine(
-          title = _(u"min_length"),
-          description=_(u"zope.schema.TextLine field with min_length = 5."),
-          min_length=5)
-  
-      max_length = TextLine(
-          title = _(u"max_length"),
-          description=_(u"zope.schema.TextLine field with max_length = 10"),
-          max_length=10)
-  
-      min_max = TextLine(
-          title = _(u"min_max"),
-          description=_(u"""zope.schema.TextLine field with min_lenght = 5 """
-              """and max_length = 10"""),
-          min_length=5,
-          max_length=10)
+class IReadDemoTextWidget(Interface):
+    """Widget read interface."""
 
+    readonly = TextLine(
+        title = _(u"readonly"),
+        description=_(u"zope.schema.TextLine field with readonly = True."),
+        required=False,
+        readonly=True,
+        default=u'readonly')
+
+
+class IWriteDemoTextWidget(Interface):
+    """Widget write interface."""
+
+    standard = TextLine(
+        title = _(u"standard"),
+        description=_(u"""zope.schema.TextLine field with only title and description."""),
+        )
+
+    required = TextLine(
+        title = _(u"required"),
+        description=_(u"zope.schema.TextLine field with required = True."),
+        required=True)
+
+    constraint = TextLine(
+        title = _(u"constraint"),
+        description=_(u"""zope.schema.TextLine field with """
+            """constraint = lambda x: x == u'constraint'."""),
+        constraint=lambda x: x == u'constraint')
+
+    default = TextLine(
+        title = _(u"default"),
+        description=_(u"""zope.schema.TextLine field with """
+            """default = u'default'."""),
+        default=u'default')
+
+    min_length = TextLine(
+        title = _(u"min_length"),
+        description=_(u"zope.schema.TextLine field with min_length = 5."),
+        min_length=5)
+
+    max_length = TextLine(
+        title = _(u"max_length"),
+        description=_(u"zope.schema.TextLine field with max_length = 10"),
+        max_length=10)
+
+    min_max = TextLine(
+        title = _(u"min_max"),
+        description=_(u"""zope.schema.TextLine field with min_lenght = 5 """
+            """and max_length = 10"""),
+        min_length=5,
+        max_length=10)
+
+
+class IDemoTextWidget(IDemoWidget, IReadDemoTextWidget, IWriteDemoTextWidget):
+    """Widget interface inherites read and write interfaces."""
+
 Define a class::
 
   class DemoTextWidget(DemoWidget):

Modified: Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/interfaces/__init__.py	2005-03-19 18:03:23 UTC (rev 29574)
@@ -49,6 +49,10 @@
              constraint = ContainerTypesConstraint(IDemoWidgetContainer))
 
 
+from zope.app.demo.widget.interfaces.boolwidget import IReadDemoBoolWidget
+from zope.app.demo.widget.interfaces.boolwidget import IWriteDemoBoolWidget
+from zope.app.demo.widget.interfaces.boolwidget import IDemoBoolWidget
+
 from zope.app.demo.widget.interfaces.intwidget import IReadDemoIntWidget
 from zope.app.demo.widget.interfaces.intwidget import IWriteDemoIntWidget
 from zope.app.demo.widget.interfaces.intwidget import IDemoIntWidget

Added: Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py	2005-03-19 18:03:23 UTC (rev 29574)
@@ -0,0 +1,65 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Demo widget implementation
+
+$Id: intwidget.py 29419 2005-03-09 01:45:19Z rogerineichen $
+"""
+__docformat__ = 'restructuredtext'
+
+from zope.interface import Interface
+from zope.schema import Bool
+
+from zope.app.i18n import ZopeMessageIDFactory as _
+from zope.app.demo.widget.interfaces import IDemoWidget
+
+
+class IReadDemoBoolWidget(Interface):
+    """Widget read interface."""
+
+    readonly = Bool(
+        title = _(u"readonly"),
+        description=_(u"zope.schema.Int field with readonly = True."),
+        required=False,
+        readonly=True,
+        default=42)
+
+
+class IWriteDemoBoolWidget(Interface):
+    """Widget write interface."""
+
+    standard = Bool(
+        title = _(u"standard"),
+        description=_(u"""zope.schema.Bool field with only title and description."""),
+        )
+
+    required = Bool(
+        title = _(u"required"),
+        description=_(u"zope.schema.Bool field with required = True."),
+        required=True)
+
+    constraint = Bool(
+        title = _(u"constraint"),
+        description=_(u"""zope.schema.Bool field with constraint """
+            """lambda x: x == True."""),
+        constraint=lambda x: x == True)
+
+    default = Bool(
+        title = _(u"default"),
+        description=_(u"""zope.schema.Bool field with """
+            """default = True."""),
+        default=True)
+
+
+class IDemoBoolWidget(IDemoWidget, IReadDemoBoolWidget, IWriteDemoBoolWidget):
+    """Widget interface inherites read and write interfaces."""


Property changes on: Zope3/trunk/src/zope/app/demo/widget/interfaces/boolwidget.py
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: Zope3/trunk/src/zope/app/demo/widget/tests.py
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/tests.py	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/tests.py	2005-03-19 18:03:23 UTC (rev 29574)
@@ -23,6 +23,7 @@
 
 def test_suite():
     return unittest.TestSuite((
+        DocTestSuite('zope.app.demo.widget.boolwidget'),
         DocTestSuite('zope.app.demo.widget.intwidget'),
         DocTestSuite('zope.app.demo.widget.textwidget'),
         DocTestSuite('zope.app.demo.widget.textareawidget'),

Modified: Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml
===================================================================
--- Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml	2005-03-19 17:23:01 UTC (rev 29573)
+++ Zope3/trunk/src/zope/app/demo/widget/textareawidget.zcml	2005-03-19 18:03:23 UTC (rev 29574)
@@ -4,8 +4,6 @@
 
   <content class=".textareawidget.DemoTextAreaWidget">
 
-    <factory />
-
     <require permission="zope.View" 
         interface=".interfaces.IDemoTextAreaWidget"
         />



More information about the Zope3-Checkins mailing list