[Checkins] SVN: zc.sourcefactory/branches/aaron-flexible-contextual-source-binder/src/zc/sourcefactory/factories.py better support for the new flexibility for form libraries

Fred L. Drake, Jr. fdrake at gmail.com
Tue Jan 27 11:46:15 EST 2009


Log message for revision 95223:
  better support for the new flexibility for form libraries
  (aaron will update the docs)
  

Changed:
  U   zc.sourcefactory/branches/aaron-flexible-contextual-source-binder/src/zc/sourcefactory/factories.py

-=-
Modified: zc.sourcefactory/branches/aaron-flexible-contextual-source-binder/src/zc/sourcefactory/factories.py
===================================================================
--- zc.sourcefactory/branches/aaron-flexible-contextual-source-binder/src/zc/sourcefactory/factories.py	2009-01-27 16:23:59 UTC (rev 95222)
+++ zc.sourcefactory/branches/aaron-flexible-contextual-source-binder/src/zc/sourcefactory/factories.py	2009-01-27 16:46:15 UTC (rev 95223)
@@ -45,11 +45,13 @@
     Implementors must provide an implementation for `getValues`.
     """
 
+    source_class = zc.sourcefactory.source.FactoredContextualSource
+
     def __new__(cls, *args, **kw):
         """Create the factory object and return source."""
         factory = object.__new__(cls)
         factory.__init__(*args, **kw)
-        return FactoredContextualSourceBinder(factory)
+        return FactoredContextualSourceBinder(factory, self.source_class)
 
 
 class FactoredContextualSourceBinder(object):
@@ -57,10 +59,9 @@
 
     zope.interface.implements(zope.schema.interfaces.IContextSourceBinder)
 
-    def __init__(self, factory):
+    def __init__(self, factory, source_class):
         self.factory = factory
+        self.source_class = source_class
 
-    def __call__(self, context, source_class=None, *args, **kwargs):
-        source_class = (source_class or
-            zc.sourcefactory.source.FactoredContextualSource)
-        return source_class(self.factory, context, *args, **kwargs)
+    def __call__(self, context, *args, **kwargs):
+        return self.source_class(self.factory, context, *args, **kwargs)



More information about the Checkins mailing list