Hello Dominik,

Your solution looks good.

I would propose, that we still mark the widgets with different
__init__ signatures with something to be able to wrap them into
different factories in metaconfigure.py to make like a bit easier.

What I have in mind:
class ItemsWidgetBase(TranslationHook, SimpleInputWidget):
    """Convenience base class for widgets displaying items/choices."""

if IMultiWidgetMarker.implementedBy(class_):
   wrapped = CustomSequenceWidgetFactory(class_)
   #and so on with the different signatures
   wrapped = CustomWidgetFactory(class_)
self._widgets[field+'_widget'] = wrapped

DH> Are you fixing issue 451? Otherwise, I could do it this weekend.
Anyway I can't do it directly, because I don't have SVN access.
I think I'll sit here, so if you need any help...

One additional small thing is:

Index: Y:/zope/svn_zope3/src/zope/app/form/browser/metaconfigure.py
--- Y:/zope/svn_zope3/src/zope/app/form/browser/metaconfigure.py        
(revision 40192)
+++ Y:/zope/svn_zope3/src/zope/app/form/browser/metaconfigure.py        
(working copy)

@@ -84,7 +87,11 @@
             # attribute.  This can be used to override some of the
             # presentational attributes of the widget implementation.
             class_ = self._default_widget_factory
-        self._widgets[field+'_widget'] = CustomWidgetFactory(class_, **attrs)
+        if IViewFactory.providedBy(class_):
+            #don't wrap a factory into a factory
+            self._widgets[field+'_widget'] = class_
+        else:
+            self._widgets[field+'_widget'] = CustomWidgetFactory(class_, 
     def _processWidgets(self):
         if self._widgets:

Best regards,
 Adam                            mailto:[EMAIL PROTECTED]
Quote of the day:
Death is life's way of telling you you've been fired.

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to