.. _glossary:

Glossary
========

.. glossary::
   :sorted:

   renderer
     A callable with the signature ``(template_name, **kw)`` which is
     capable of rendering a template for use in a deform widget.

   cstruct
     Data serialized by :term:`Colander` to a representation suitable
     for consumption by the ``serialize`` method of a :mod:`deform`
     widget, usually while a form is being rendered.

   pstruct
     Data deserialized by :term:`Peppercorn` from one or more form
     controls to a representation suitable for consumption by the
     ``deserialize`` method of a :mod:`deform` widget, usually while a
     form is being submitted.

   appstruct
     A raw application data structure (complex Python objects).

   Colander
     A `schema package
     <http://docs.pylonsproject.org/projects/colander/dev/>`_ used by Deform
     to provide serialization and validation facilities.

   Peppercorn
     A `package <http://docs.pylonsproject.org/projects/peppercorn/dev/>`_
     used by Deform for strutured form submission value deserialization.

   schema
     A nested collection of :term:`schema node` objects representing
     an arrangement of data.

   schema node
     A schema node can serialize an :term:`appstruct` to a
     :term:`cstruct` and deserialize a :term:`cstruct` to an
     :term:`appstruct` (object derived from
     :class:`colander.SchemaNode` or one of the colander Schema
     classes).  Schemas are a concept used by Deform, but actually
     implemented and offered by the :term:`Colander` package.

   widget
     Serializes a :term:`cstruct` into a form rendering and
     deserializes a :term:`pstruct` into a :term:`cstruct`.

   form controls
     A sequence of browser renderings of user interface elements.
     These are also known as "fields" as per the the `RFC 2388
     <http://www.servlets.com/rfcs/rfc2388.txt>`_ definition of
     "field", however Deform uses the term :term:`field` for another
     concept, so we call them controls within the Deform
     documentation.

   Chameleon
     `chameleon <http://chameleon.repoze.org>`_ is an attribute
     language template compiler which supports the ZPT (Zope Page
     Templates) templating specification.  It is written and
     maintained by Malthe Borch.

   field
     An object in the graph generated by :mod:`deform` that has access
     to a :term:`schema` node object and a :term:`widget` object.  The
     scope of a field object is generally limited to the scope of a
     single HTTP request, so field objects are often used to maintain
     state information during the request.

   renderer
     A function which accepts a logical template name and a set of
     keywords, and which returns the rendering of a widget template.

   default renderer
     The template :term:`renderer` used when no other renderer is
     specified.  It uses the :term:`Chameleon` templating engine.

   WebOb
     `WebOb <http://pythonpaste.org/webob/>`_ is a WSGI request/response
     library created by Ian Bicking.

   Gettext
     The GNU `gettext <http://www.gnu.org/software/gettext/>`_
     library, used by the :mod:`deform` translation machinery.

   jquery.maskedinput
     A JQuery plugin library that allows for input masks in text
     inputs.  For example, a mask for a US telephone number might be
     ``(999)-999-9999``.  See also
     `http://digitalbush.com/projects/masked-input-plugin/
     <http://digitalbush.com/projects/masked-input-plugin/>`_.  Deform
     supports input masks in its default
     :class:`deform.widget.TextInputWidget` widget.

   validator
     A :term:`Colander` validator callable.  Accepts a ``node`` object
     and a ``value`` and either raises an :exc:`colander.Invalid`
     exception or returns ``None``.  Used in deform as the
     ``validator=`` argument to a schema node, ensuring that the input
     meets the requirements of the schema.

   TinyMCE Editor
     `TinyMCE <http://tinymce.moxiecode.com/index.php>`_ is a platform
     independent web based Javascript HTML WYSIWYG editor control
     released as Open Source under `LGPL
     <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>`_ by
     `Moxiecode Systems AB <http://www.moxiecode.com/>`_. It
     has the ability to convert HTML TEXTAREA fields or other HTML
     elements to editor instances. TinyMCE is very easy to integrate
     into other Content Management Systems.

   jquery.autocomplete
     A  :term:`jQuery` plugin library that allows for autocompleting a
     value in a text input, making it easier to find and select a
     value from a possibly large list. The data may be local or
     remote. See also `http://docs.jquery.com/Plugins/Autocomplete
     <http://docs.jquery.com/Plugins/Autocomplete>`_ for more details.

   xhr
     ``xhr`` an XMLHTTPRequest. See also
     `http://www.w3.org/TR/XMLHttpRequest/ 
     <http://www.w3.org/TR/XMLHttpRequest/>`_.

   JSON
     ``JSON`` (JavaScript Object Notation) is a lightweight
     data-interchange format. It is easy for humans to read and write.
     See also `http://www.json.org/ <http://www.json.org/>`_.

   jQuery
     `jQuery <http://jquery.com/>`_ is a JavaScript library for making
     client side changes to HTML.

   Resource registry
      An attribute of a Deform form which maps :term:`widget
      requirement` declarations made by widgets to relative file
      paths.  Useful to obtain all the CSS and/or Javascript resources
      required by all the widgets in a concrete form rendering.  See
      also :ref:`get_widget_resources`.

   Widget requirement
      A sequence of tuples attached to a widget object representing
      the *logical* Javascript and/or CSS requirements of the widget.
      See also :ref:`specifying_widget_requirements`.

   Sequence
      A widget which allows you to add multiple subwidgets, each of
      the same type.  

   JQuery UI
      A library used by Deform for various widget theming, effects and
      functionality: See `http://jqueryui.com/
      <http://jqueryui.com/>`_.

   jquery.ui.autocomplete
      A :term:`JQuery UI` sublibrary for autocompletion of text
      fields.  See `http://docs.jquery.com/UI/Autocomplete
      <http://docs.jquery.com/UI/Autocomplete>`_.
