; Cc@s%dkZdkZdklZdklZdklZdklZdfdYZ de fdYZ e Z d e fd YZ e Z d e fd YZeZd e fdYZeZdefdYZeZde fdYZeZde fdYZdefdYZdefdYZdefdYZeZdefdYZeZdefdYZeZdefd YZeZ d!e fd"YZ!e!Z"d#e fd$YZ#e#Z$d%Z%d&Z&dS('N(sfields(s html_quote(sDateTime(s is_sequencesWidgetcBs1tZdZddddddgZeiddddddd d d Zeiddd dd dd ddddd dZeiddddddd d dZ eiddddddd d dZ ei dddddddZ eiddddddd d dZ dZdZdZRS(s=A field widget that knows how to display itself as HTML. stitles descriptionsdefaults css_classsalternate_nameshiddensTitlestThe title of this field. This is the title of the field that will appear in the form when it is displayed. Required.ssrequiredis DescriptionsDescription of this field. The description property can be used to add a short description of what a field does; such as this one.swidths20sheights3is CSS classsxThe CSS class of the field. This can be used to style your formulator fields using cascading style sheets. Not required.sAlternate namesAn alternative name for this field. This name will show up in the result dictionary when doing validation, and in the REQUEST if validation goes to request. This can be used to support names that cannot be used as Zope ids.sHiddensThis field will be on the form, but as a hidden field. The contents of the hidden field will be the default value. Hidden fields are not visible but will be validated.sextrasExtrasA string containing extra HTML code for attributes. This string will be literally included in the rendered field.This property can be useful if you want to add an onClick attribute to use with JavaScript, for instance.cCsdSdS(sDRenders this widget as HTML using property values in field. s[widget]N((sselfsfieldskeysvaluesREQUEST((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenderHsc CsUy|id}Wntj o d}nXtdddd|d|d|SdS( s/Renders this widget as a hidden field. sextrassinputstypeshiddensnamesvalueN(sfields get_valuesextrasKeyErrorsrender_elementskeysvalue(sselfsfieldskeysvaluesREQUESTsextra((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_hiddenMs cCs|tjodSn|SdS(s0Renders this widget for public viewing. sN(svaluesNone(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_view[s (s__name__s __module__s__doc__sproperty_namessfieldss StringFieldstitles TextAreaFields descriptions css_classsalternate_names CheckBoxFieldshiddensextrasrenders render_hiddens render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysWidgetsF                s TextWidgetc BstZdZeidddgZeiddddddd d d Zeiddd dd ddd dZ eiddddddd d d Z dZ dZ RS(sText widget s display_widthsdisplay_maxwidthsextrasdefaultstitlesDefaults descriptionsYou can place text here that will be used as the default value of the field, unless the programmer supplies an override when the form is being generated.ssrequiredis Display widths"The width in characters. Required.iis Maximum inputsThe maximum input in characters that the widget will allow. Required. If set to 0 or is left empty, there is no maximum. Note that is client side behavior only.cCs|idpd}|djoStdddd|d|idd|d |id d |d |id SnJtdddd|d|idd|d |id d |id Sd S(s!Render text input field. sdisplay_maxwidthisinputstypestextsnames css_classsvaluessizes display_widths maxlengthsextraN(sfields get_valuesdisplay_maxwidthsrender_elementskeysvalue(sselfsfieldskeysvaluesREQUESTsdisplay_maxwidth((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenders$ cCs|tjodSn|SdS(Ns(svaluesNone(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views ( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss StringFieldsdefaults IntegerFields display_widthsdisplay_maxwidthsrenders render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys TextWidgetds&        sPasswordWidgetcBstZdZdZRS(NcCs|idpd}|djoStdddd|d|idd|d |id d |d |id SnJtdddd|d|idd|d |id d |id Sd S(s%Render password input field. sdisplay_maxwidthisinputstypespasswordsnames css_classsvaluessizes display_widths maxlengthsextraN(sfields get_valuesdisplay_maxwidthsrender_elementskeysvalue(sselfsfieldskeysvaluesREQUESTsdisplay_maxwidth((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenders$ cCsdSdS(Ns [password]((sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views(s__name__s __module__srenders render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysPasswordWidgets sCheckBoxWidgetcBsKtZeidgZeidddddddZdZd ZRS( NsextrasdefaultstitlesDefaults descriptionsKDefault setting of the widget; either checked or unchecked. (true or false)ic Cs}|o>tdddd|d|iddtd|idSn5tdddd|d|idd|idSdS( sRender checkbox. sinputstypescheckboxsnames css_classscheckedsextraN(svaluesrender_elementskeysfields get_valuesNone(sselfsfieldskeysvaluesREQUEST((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenderscCs|odSndSdS(Nii(svalue(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views( s__name__s __module__sWidgetsproperty_namessfieldss CheckBoxFieldsdefaultsrenders render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysCheckBoxWidgets   sTextAreaWidgetcBstZdZeidddgZeiddddddd dd dd d d Zeidddddddd dZ eidddddddd dZ dZ dZ RS(sTextarea widget swidthsheightsextrasdefaultstitlesDefaults descriptions(Default value of the text in the widget.siisrequiredisWidths,The width (columns) in characters. Required.i(isHeights*The height (rows) in characters. Required.icCsh|id}|id}tdd|d|idd|d|dt|d |id SdS( Nswidthsheightstextareasnames css_classscolssrowsscontentssextra(sfields get_valueswidthsheightsrender_elementskeys html_quotesvalue(sselfsfieldskeysvaluesREQUESTswidthsheight((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenders cCs|tjodSn|SdS(Ns(svaluesNone(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views ( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss TextAreaFieldsdefaults IntegerFieldswidthsheightsrenders render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysTextAreaWidgets(         sLinesTextAreaWidgetcBstZeiddddgZeiddddd dgdd dd d d Zeiddddddd ddddd dZdZ dZ dZ RS(Nswidthsheightsview_separatorsextrasdefaultstitlesDefaults descriptions)Default value of the lines in the widget.iisrequiredisView separatorsUWhen called with render_view, this separator will be used to render individual items.s
swhitespace_preserveicCs@t|oti|d}nti|||||SdS(Ns ( s is_sequencesvaluesstringsjoinsTextAreaWidgetsrendersselfsfieldskeysREQUEST(sselfsfieldskeysvaluesREQUEST((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender%s cCs2|tjodSnti||idSdS(Nssview_separator(svaluesNonesstringsjoinsfields get_value(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_view*s cCsR|tjodSnt|odi|}nti|||||SdS(Nss ( svaluesNones is_sequencesjoinsWidgets render_hiddensselfsfieldskeysREQUEST(sselfsfieldskeysvaluesREQUEST((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_hidden/s   ( s__name__s __module__sWidgetsproperty_namessfieldss LinesFieldsdefaults StringFieldsview_separatorsrenders render_views render_hidden(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysLinesTextAreaWidgets"       s FileWidgetcBstZdZdZRS(NcCs|idpd}|djoStdddd|d|idd|d |id d |d |id SnJtdddd|d|idd|d |id d |id Sd S(s!Render text input field. sdisplay_maxwidthisinputstypesfilesnames css_classsvaluessizes display_widths maxlengthsextraN(sfields get_valuesdisplay_maxwidthsrender_elementskeysvalue(sselfsfieldskeysvaluesREQUESTsdisplay_maxwidth((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender<s$ cCsdSdS(Ns[File]((sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_viewRs(s__name__s __module__srenders render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys FileWidget:s s ItemsWidgetcBshtZdZeiddddddgddd d d d Zeid ddddddd d ZRS(s/A widget that has a number of items in it. sitemsstitlesItemss descriptionsItems in the field. Each row should contain an item. Use the | (pipe) character to separate what is shown to the user from the submitted value. If no | is supplied, the shown value for the item will be identical to the submitted value. Internally the items property returns a list. If a list item is a single value, that will be used for both the display and the submitted value. A list item can also be a tuple consisting of two elements. The first element of the tuple should be a string that is name of the item that should be displayed. The second element of the tuple should be the value that will be submitted. If you want to override this property you will therefore have to return such a list.sdefaultswidthisheightisrequiredis extra_itemsExtra per itemsA string containing extra HTML code for attributes. This string will be literally included each of the rendered items of the field. This property can be useful if you want to add a disabled attribute to disable all contained items, for instance.s(s__name__s __module__s__doc__sfieldssListTextAreaFieldsitemss StringFields extra_item(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys ItemsWidgetWs    sSingleItemsWidgetc BshtZdZeidddddddddZeid dd dd ddZd Zd Z RS(sPA widget with a number of items that has only a single selectable item. sdefaultstitlesDefaults descriptionsYThe default value of the widget; this should be one of the elements in the list of items.ssrequiredis first_itemsSelect First Items[If checked, the first item will always be selected if no initial default value is supplied.cCs;|id} | o |idot| djo3t| do| d\} }qm| d}n|id} |id}d}g} x| D]}t|o|\} }n |} |}||jo| o%|i| ||| |}d}n|i| ||| |}| i|qW| SdS(Nsitemss first_itemis css_classs extra_itemi(sfields get_valuesitemssvalueslens is_sequencestexts css_classs extra_itemsselected_foundsrendered_itemssitems item_texts item_valuesselfsrender_selected_itemskeys rendered_items render_itemsappend(sselfsfieldskeysvaluesREQUESTs item_valuesselected_founds rendered_itemsitemsitemsstexts item_texts css_classsrendered_itemss extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_itemss:+      cCs|tjp |djodSn|id}xL|D]D}t|o|\}}n |}|}||jo|Sq8q8Wt d|fdS(NssitemssWrong item value [[%s]]( svaluesNonesfields get_valuesitemssitems is_sequences item_texts item_valuesKeyError(sselfsfieldsvalues item_values item_textsitemsitems((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views   ( s__name__s __module__s__doc__sfieldss StringFieldsdefaults CheckBoxFields first_items render_itemss render_view(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysSingleItemsWidget~s      -sMultiItemsWidgetcBstZdZeiddddddddd dgd d Zeid dd ddddddddd dZdZdZ dZ dZ RS(sLA widget with a number of items that has multiple selectable items. sdefaultstitlesDefaults descriptionsThe initial selections of the widget. This is a list of zero or more values. If you override this property from Python your code should return a Python list.swidthisheightisrequiredisview_separatorsView separatorsUWhen called with render_view, this separator will be used to render individual items.s
swhitespace_preserveic Cst| o |g}n|id} |id} |id} g} x| D]}t|o|\}}n |}|}||jo|i |||| | }n|i|||| | }| i|qUW| SdS(Nsitemss css_classs extra_item(s is_sequencesvaluesfields get_valuesitemss css_classs extra_itemsrendered_itemssitems item_texts item_valuesselfsrender_selected_itemskeys rendered_items render_itemsappend( sselfsfieldskeysvaluesREQUESTs item_values item_texts rendered_itemsitemsitemss css_classsrendered_itemss extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_itemss2       c Cst| o |g}n|id}h}xA|D]9}t|o|\}}n |}|}||||tjodSnti|i|||idSdS(Nssview_separator(svaluesNonesstringsjoinsselfsrender_items_viewsfields get_value(sselfsfieldsvalue((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_views cCsx|tj o t| o |g}nti}g}x-|D]%}|i||||||q>Wdi |SdS(Ns(svaluesNones is_sequencesWidgets render_hiddensrender_item_hiddensresultsvsappendsselfsfieldskeysREQUESTsjoin(sselfsfieldskeysvaluesREQUESTsrender_item_hiddensvsresult((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_hiddens  #( s__name__s __module__s__doc__sfieldss LinesFieldsdefaults StringFieldsview_separators render_itemssrender_items_views render_views render_hidden(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysMultiItemsWidgets$       !  s ListWidgetc BsltZdZeidddddgZeiddddd d d d d ZdZdZ dZ RS(sList widget. s first_itemsitemsssizesextras extra_itemstitlesSizes descriptionsThe display size in rows of the field. If set to 1, the widget will be displayed as a drop down box by many browsers, if set to something higher, a list will be shown. Required.sdefaultisrequiredic Csk|i||||}tdd|d|idd|iddt i |dd|idSdS(Nsselectsnames css_classssizescontentss sextra( sselfs render_itemssfieldskeysvaluesREQUESTsrendered_itemssrender_elements get_valuesstringsjoin(sselfsfieldskeysvaluesREQUESTsrendered_items((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender8scCs tdd|d|d|SdS(Nsoptionscontentssvaluesextra(srender_elementstextsvalues extra_item(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_itemBsc Cs&tdd|d|dtd|SdS(Nsoptionscontentssvaluesselectedsextra(srender_elementstextsvaluesNones extra_item(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender_selected_itemFs( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss IntegerFieldssizesrenders render_itemsrender_selected_item(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys ListWidget)s    sMultiListWidgetc BsltZdZeidddddgZeiddddd d d d d ZdZdZ dZ RS(s&List widget with multiple select. sitemsssizesview_separatorsextras extra_itemstitlesSizes descriptionsThe display size in rows of the field. If set to 1, the widget will be displayed as a drop down box by many browsers, if set to something higher, a list will be shown. Required.sdefaultisrequiredicCsq|i||||}tdd|dtd|i dd|i ddt i |dd|i dSdS( Nsselectsnamesmultiples css_classssizescontentss sextra( sselfs render_itemssfieldskeysvaluesREQUESTsrendered_itemssrender_elementsNones get_valuesstringsjoin(sselfsfieldskeysvaluesREQUESTsrendered_items((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender[scCs tdd|d|d|SdS(Nsoptionscontentssvaluesextra(srender_elementstextsvalues extra_item(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_itemfsc Cs&tdd|d|dtd|SdS(Nsoptionscontentssvaluesselectedsextra(srender_elementstextsvaluesNones extra_item(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender_selected_itemjs( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss IntegerFieldssizesrenders render_itemsrender_selected_item(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysMultiListWidgetLs    s RadioWidgetcBstZdZeiddddgZeidddddd d d d d d ddd fddfgZdZdZ dZ RS(sradio buttons widget. s first_itemsitemss orientations extra_itemstitles Orientations descriptionsdOrientation of the radio buttons. The radio buttons will be drawn either vertically or horizontally.sdefaultsverticalsrequiredissizesVerticals Horizontals horizontalcCs\|i||||}|id}|djot i |dSnt i |dSdS(Ns orientations horizontals   s
( sselfs render_itemssfieldskeysvaluesREQUESTsrendered_itemss get_values orientationsstringsjoin(sselfsfieldskeysvaluesREQUESTs orientationsrendered_items((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenders  c CsBtdddd|d|d|d||}tdd |SdS( Nsinputstypesradios css_classsnamesvaluesextraslabelscontents(srender_elements css_classskeysvalues extra_itemstextscontents(sselfstextsvalueskeys css_classs extra_itemscontents((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_itemscCsHtdddd|d|d|dtd||}td d |SdS( Nsinputstypesradios css_classsnamesvaluescheckedsextraslabelscontents(srender_elements css_classskeysvaluesNones extra_itemstextscontents(sselfstextsvalueskeys css_classs extra_itemscontents((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender_selected_items( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss ListFields orientationsrenders render_itemsrender_selected_item(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys RadioWidgetps    sMultiCheckBoxWidgetcBstZdZeiddddgZeidddddd d d d d d ddd fddfgZdZdZ dZ RS(smultiple checkbox widget. sitemss orientationsview_separators extra_itemstitles Orientations descriptions`Orientation of the check boxes. The check boxes will be drawn either vertically or horizontally.sdefaultsverticalsrequiredissizesVerticals Horizontals horizontalcCs\|i||||}|id}|djot i |dSnt i |dSdS(Ns orientations horizontals   s
( sselfs render_itemssfieldskeysvaluesREQUESTsrendered_itemss get_values orientationsstringsjoin(sselfsfieldskeysvaluesREQUESTs orientationsrendered_items((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrenders  c Cs0tdddd|d|d|d||SdS(Nsinputstypescheckboxs css_classsnamesvaluesextra(srender_elements css_classskeysvalues extra_itemstext(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys render_items cCs6tdddd|d|d|dtd||SdS( Nsinputstypescheckboxs css_classsnamesvaluescheckedsextra(srender_elements css_classskeysvaluesNones extra_itemstext(sselfstextsvalueskeys css_classs extra_item((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender_selected_items( s__name__s __module__s__doc__sWidgetsproperty_namessfieldss ListFields orientationsrenders render_itemsrender_selected_item(((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysMultiCheckBoxWidgets    sDateTimeWidgetcBstZeiddddddddgZeid d d d d d eddddddddZeidd dd dd dZ ei dd dd dd dddddddddZ ei dd dd dd dddddddddZ ei dd d d d!d dd"ddfd#d#fgd$d%Zei dd d&d d'd dd"d(dfd)d*fd+d,fgdd%d$d%Zeidd d-d d.d dZeidd d/d d0d dZeidd d1d d2d dZd3Zd4Zd5ZRS(6Ns default_nowsdate_separatorstime_separators input_styles input_orders date_onlyshide_daysampm_time_stylesdefaultstitlesDefaults descriptionsThe default datetime.s display_stylestexts display_ordersymdsrequiredisDefault to nowsfDefault date and time will be the date and time at showing of the form (if the default is left empty).sDate separators-Separator to appear between year, month, day.s/s display_widthisdisplay_maxwiths max_lengthsTime separators-Separator to appear between hour and minutes.s:s Input stylesmThe type of input used. 'text' will show the date part as text, while 'list' will use dropdown lists instead.sitemsslistssizeis Input ordersiThe order in which date input should take place. Either year/month/day, day/month/year or month/day/year.syear/month/daysday/month/yearsdmysmonth/day/yearsmdysDisplay date onlys$Display the date only, not the time.sHide day fieldsHide the day field.sAM/PM time stylesDisplay time in am/pm format.cCs`|id} |id}t|d odkl}||_n|t jo |ido t }n|t j o|i i |ido t }n|t jo(t }t }t }t }t }t }nxd|i}d|i}d|i}| od|i}nd|i}d|i}|i}|id } | d jo%d|fd |fd |fg}ne| d jo%d |fd |fd|fg}n3| djo%d |fd |fd|fg}ng}d}x|D]\} }|o | d jo]|}|t jo d}n|i| } |ii| }|i i!|| ||}q |i"|i#| ||q Wt$i%||id} |o| |7} n|id om|i#d|||id|i#d||}| o!|d|i#d||7}n| d|Sn| SdS(Nsampm_time_styleshide_dayssub_form(screate_datetime_text_sub_forms default_nowsyears%04ds%02ds input_ordersymdsmonthsdaysdmysmdyss01sdate_separators date_onlyshourstime_separatorsminutes sampms   ((sfields get_valuesuse_ampmshide_dayshasattrsStandardFieldsscreate_datetime_text_sub_formssub_formsvaluesNonesDateTimesREQUESTsformshas_keysgenerate_subfield_keysyearsmonthsdayshoursminutesampmsh_12s input_ordersordersresultshidden_day_partssub_field_namessub_field_valuesdayvaluessub_keys get_fields sub_fieldswidgets render_hiddensappendsrender_sub_fieldsstringsjoins date_results time_result(sselfsfieldskeysvaluesREQUESTssub_field_valuesmonthsyearsdayvaluessub_field_namessub_keysuse_ampms input_orders date_resultshide_daysdaysminuteshoursampmscreate_datetime_text_sub_formshidden_day_parts time_results sub_fieldsordersresult((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrendersn  )     % % %   5c Csg}|tjo |ido t}nh}dddg} |tj od|i|d%ss />(skwshas_keyscontentssapplys render_tagstag(stagskwscontents((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pysrender_elements  $('sstringstypess DummyFieldsfieldssDocumentTemplate.DT_Utils html_quotesDateTimeshelperss is_sequencesWidgets TextWidgetsTextWidgetInstancesPasswordWidgetsPasswordWidgetInstancesCheckBoxWidgetsCheckBoxWidgetInstancesTextAreaWidgetsTextAreaWidgetInstancesLinesTextAreaWidgetsLinesTextAreaWidgetInstances FileWidgetsFileWidgetInstances ItemsWidgetsSingleItemsWidgetsMultiItemsWidgets ListWidgetsListWidgetInstancesMultiListWidgetsMultiListWidgetInstances RadioWidgetsRadioWidgetInstancesMultiCheckBoxWidgetsMultiCheckBoxWidgetInstancesDateTimeWidgetsDateTimeWidgetInstances LabelWidgetsLabelWidgetInstances render_tagsrender_element($sListWidgetInstancesTextAreaWidgetsTextAreaWidgetInstancesRadioWidgetInstancesCheckBoxWidgetInstancesMultiListWidgetInstances RadioWidgets LabelWidgetsFileWidgetInstancesWidgetsSingleItemsWidgetsDateTimeWidgetsMultiListWidgetsMultiItemsWidgets TextWidgetsLabelWidgetInstances ItemsWidgetsLinesTextAreaWidgetInstancesstringsTextWidgetInstancesDateTimeWidgetInstances is_sequences ListWidgetsDateTimesPasswordWidgetInstancestypess render_tags FileWidgetsfieldssrender_elementsMultiCheckBoxWidgetInstancesMultiCheckBoxWidgetsPasswordWidgetsCheckBoxWidgetsLinesTextAreaWidgets html_quote((s@/mnt/gmirror/ports/www/zope-formulator/work/Formulator/Widget.pys?sD    ]:  ! - )  'P[! " , *