[Checkins] SVN: z3c.formjs/trunk/src/z3c/formjs/js Get rid of pointless code duplication.

Stephan Richter srichter at cosmos.phy.tufts.edu
Fri Jul 6 22:31:18 EDT 2007


Log message for revision 77549:
  Get rid of pointless code duplication.
  

Changed:
  U   z3c.formjs/trunk/src/z3c/formjs/jsevent.txt
  U   z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py

-=-
Modified: z3c.formjs/trunk/src/z3c/formjs/jsevent.txt
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/jsevent.txt	2007-07-07 00:51:55 UTC (rev 77548)
+++ z3c.formjs/trunk/src/z3c/formjs/jsevent.txt	2007-07-07 02:31:18 UTC (rev 77549)
@@ -67,29 +67,14 @@
 Renderers
 ---------
 
-So let's define some renderers for the various components. We start with the
-selector. Let's say that the javascript framework supports CSS selectors, then
-the renderer is simple:
+So let's define some renderers for the various components. We have already
+prepared renderers for testing purposes in the ``testing`` support module. The
+first one is for the id selector
 
   >>> import zope.component
-  >>> import zope.interface
-  >>> from zope.publisher.interfaces.browser import IBrowserRequest
+  >>> from z3c.formjs import testing
+  >>> zope.component.provideAdapter(testing.IdSelectorRenderer)
 
-  >>> class IdSelectorRenderer(object):
-  ...     zope.interface.implements(interfaces.IRenderer)
-  ...     zope.component.adapts(interfaces.IIdSelector, IBrowserRequest)
-  ...
-  ...     def __init__(self, selector, request):
-  ...         self.selector = selector
-  ...
-  ...     def update(self):
-  ...         pass
-  ...
-  ...     def render(self):
-  ...         return u'#' + self.selector.id
-
-  >>> zope.component.provideAdapter(IdSelectorRenderer)
-
 Of course, like all view components, the renderer supports the update/render
 pattern. We can now render the selector:
 
@@ -105,32 +90,10 @@
 Next we need a renderer for the subscription. Let's assume we can bind the
 subscription as follows: ``$(<selector>).bind("<event>", <script>)``
 
-  >>> class SubscriptionRenderer(object):
-  ...     zope.interface.implements(interfaces.IRenderer)
-  ...     zope.component.adapts(interfaces.IJSSubscription, IBrowserRequest)
-  ...
-  ...     def __init__(self, subscription, request):
-  ...         self.subscription = subscription
-  ...         self.request = request
-  ...
-  ...     def update(self):
-  ...         self.selectorRenderer = zope.component.getMultiAdapter(
-  ...             (self.subscription.selector, request), interfaces.IRenderer)
-  ...         self.selectorRenderer.update()
-  ...
-  ...     def render(self):
-  ...         return u'$("%s").bind("%s", function(){%s});' %(
-  ...             self.selectorRenderer.render(),
-  ...             self.subscription.event.name,
-  ...             self.subscription.handler(
-  ...                 self.subscription.event,
-  ...                 self.subscription.selector,
-  ...                 self.request) )
+  >>> zope.component.provideAdapter(testing.SubscriptionRenderer)
 
-  >>> zope.component.provideAdapter(SubscriptionRenderer)
+Rendering the subscription then returns this:
 
-Rendering the subscription then return this:
-
   >>> renderer = zope.component.getMultiAdapter(
   ...     (list(manager)[0], request), interfaces.IRenderer)
   >>> renderer.update()
@@ -139,27 +102,8 @@
 
 And now to the grant finale. We create a renderer for the subscription manager.
 
-  >>> class ManagerRenderer(object):
-  ...     zope.interface.implements(interfaces.IRenderer)
-  ...     zope.component.adapts(interfaces.IJSSubscriptions, IBrowserRequest)
-  ...
-  ...     def __init__(self, manager, request):
-  ...         self.manager = manager
-  ...
-  ...     def update(self):
-  ...         self.renderers = []
-  ...         for subscription in self.manager:
-  ...             renderer = zope.component.getMultiAdapter(
-  ...                 (subscription, request), interfaces.IRenderer)
-  ...             renderer.update()
-  ...             self.renderers.append(renderer)
-  ...
-  ...     def render(self):
-  ...         return '$(document).ready(function(){\n  %s\n})' %(
-  ...             '\n  '.join([r.render() for r in self.renderers]) )
+  >>> zope.component.provideAdapter(testing.ManagerRenderer)
 
-  >>> zope.component.provideAdapter(ManagerRenderer)
-
 Let's now render the entire manager.
 
   >>> renderer = zope.component.getMultiAdapter(

Modified: z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py	2007-07-07 00:51:55 UTC (rev 77548)
+++ z3c.formjs/trunk/src/z3c/formjs/jsvalidator.py	2007-07-07 02:31:18 UTC (rev 77549)
@@ -11,7 +11,7 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Javascript Form Framework Interfaces.
+"""Javascript-based Value Validator
 
 $Id: $
 """



More information about the Checkins mailing list