[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