'Widget builder.
@param field: the Field
@param value: the current value
@param attributes: the HTML attributes for the widget'

def __call__(self, field, value, **attributes):

    self.inject_script(field, value, **attributes)
    default = dict(_type='text', _class=self._class, value=value)
    attr = StringWidget._attributes(field, default, **attributes)
    if ('_id' not in attr):
        attr['_id'] = str(field).replace('.', '_')
    widget = INPUT(**attr)
    widget.add_class(self._class)
    if self.opts.get('hide_time', False):
        widget.add_class('hide-time')
    return TAG[''](widget, requires=field.requires)
