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: itemswidgets.py: class ItemsWidgetBase(TranslationHook, SimpleInputWidget): """Convenience base class for widgets displaying items/choices.""" implements(IMultiWidgetMarker) metaconfigure.py: if IMultiWidgetMarker.implementedBy(class_): wrapped = CustomSequenceWidgetFactory(class_) #and so on with the different signatures else: 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_, **attrs) 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 Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com