[Checkins] SVN: z3c.formjs/trunk/src/z3c/formjs/ Make AJAXHandlers
class a real selection manager, since I needed this
Stephan Richter
srichter at cosmos.phy.tufts.edu
Thu Jun 12 13:25:44 EDT 2008
Log message for revision 87347:
Make AJAXHandlers class a real selection manager, since I needed this
for projetc.
Changed:
U z3c.formjs/trunk/src/z3c/formjs/ajax.py
U z3c.formjs/trunk/src/z3c/formjs/interfaces.py
-=-
Modified: z3c.formjs/trunk/src/z3c/formjs/ajax.py
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/ajax.py 2008-06-12 16:31:37 UTC (rev 87346)
+++ z3c.formjs/trunk/src/z3c/formjs/ajax.py 2008-06-12 17:25:43 UTC (rev 87347)
@@ -42,7 +42,30 @@
class AJAXHandlers(SelectionManager):
"""A selection manager for handling AJAX request handlers."""
+ zope.interface.implements(interfaces.IAJAXHandlers)
+ managerInterface = interfaces.IAJAXHandlers
+ def __init__(self, *args):
+ handlers = []
+ for arg in args:
+ if self.managerInterface.providedBy(arg):
+ handlers += arg.items()
+ elif interfaces.IAJAXHandler.providedBy(arg):
+ handlers.append((arg.func.__name__, arg))
+ else:
+ raise TypeError("Unrecognized argument type", arg)
+ keys = []
+ seq = []
+ byname = {}
+ for name, handler in handlers:
+ keys.append(name)
+ seq.append(handler)
+ byname[name] = handler
+
+ self._data_keys = keys
+ self._data_values = seq
+ self._data = byname
+
def addHandler(self, name, handler):
self._data_keys.append(name)
self._data_values.append(handler)
Modified: z3c.formjs/trunk/src/z3c/formjs/interfaces.py
===================================================================
--- z3c.formjs/trunk/src/z3c/formjs/interfaces.py 2008-06-12 16:31:37 UTC (rev 87346)
+++ z3c.formjs/trunk/src/z3c/formjs/interfaces.py 2008-06-12 17:25:43 UTC (rev 87347)
@@ -343,14 +343,10 @@
# -----[ AJAX ]--------------------------------------------------------
-class IAJAXRequestHandler(zope.interface.Interface):
- """An object that has methods for handling ajax requests."""
+class IAJAXHandlers(ISelectionManager):
+ """Container of AJAX handlers."""
- ajaxRequestHandlers = zope.schema.Object(
- title=u"AJAX Request Handlers Manager",
- schema=ISelectionManager)
-
class IAJAXHandler(zope.interface.Interface):
def __call__(context, request):
@@ -360,7 +356,14 @@
without context and request being passed as arguments.
"""
+class IAJAXRequestHandler(zope.interface.Interface):
+ """An object that has methods for handling ajax requests."""
+ ajaxRequestHandlers = zope.schema.Object(
+ title=u"AJAX Request Handlers Manager",
+ schema=IAJAXHandlers)
+
+
# -----[ Form Traverser ]-------------------------------------------------
class IFormTraverser(zope.interface.Interface):
More information about the Checkins
mailing list