twisted.web.woven.input.InputHandler.html   [plain text]


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>twisted.web.woven.input.InputHandler</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">

<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="center">
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar" align="right" width="100%">
      <table border="0" cellpadding="0" cellspacing="0">
      <tr><th class="navbar" align="center">
        <p class="nomargin">
          <a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted&nbsp;1.3.0rc1</a>
      </p></th></tr></table>
    </th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <font size="-1"><b class="breadcrumbs">
        <a href="twisted.html">Package&nbsp;twisted</a> ::
        <a href="twisted.web.html">Package&nbsp;web</a> ::
        <a href="twisted.web.woven.html">Package&nbsp;woven</a> ::
        <a href="twisted.web.woven.input.html">Module&nbsp;input</a> ::
        Class&nbsp;InputHandler
      </b></font></br>
    </td>
    <td><table cellpadding="0" cellspacing="0">
      <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="twisted.web.woven.input.InputHandler.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
    </table></td>
</tr></table>

<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class InputHandler</h2>

<pre class="base-tree">
<a href="twisted.web.resource.Resource.html"><code>Resource</code></a> --+    
           |    
  <a href="twisted.web.woven.controller.Controller.html"><code>Controller</code></a> --+
               |
              <b>InputHandler</b>
</pre><br />

<dl><dt><b>Known Subclasses:</b></dt>
<dd>
    <a href="twisted.web.woven.input.DefaultHandler.html"><code>DefaultHandler</code></a>,
    <a href="twisted.web.woven.input.List.html"><code>List</code></a>,
    <a href="twisted.web.woven.input.SingleValue.html"><code>SingleValue</code></a></dd></dl>

<hr/>

<p>An InputHandler is like a controller, but it operates on something 
contained inside of <code>self.model</code> instead of directly on 
<code>self.model</code>. For example, a Handler whose <code>model</code> 
has been set to <code>&quot;foo&quot;</code> will handle 
<code>self.model.foo</code>.</p>
The handler's job is to interpret the request and:
<ol start="1">
  <li>
    Check for valid input
  </li>
  <li>
    If the input is valid, update the model
  </li>
  <li>
    Use any special API of the view widget to change the view (other 
    than what the view updates automatically from the model) e.g. in the 
    case of an error, tell the view to report an error to the user
  </li>
  <li>
    Return a success value; by default these values are simply 
    recorded and the page is rendered, but these values could be used to 
    determine what page to display next, etc.
  </li>
</ol>
<hr/>


<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
  <th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>model</span>,
          <span class=summary-sig-arg>parent</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>check</span>,
          <span class=summary-sig-arg>commit</span>,
          <span class=summary-sig-arg>invalidErrorText</span>,
          <span class=summary-sig-arg>submodel</span>,
          <span class=summary-sig-arg>controllerStack</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#aggregateInvalid" class="summary-sig-name"><code>aggregateInvalid</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>inputhandler</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
By default we just pass this method call all the way up to the root 
Controller.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#aggregateValid" class="summary-sig-name"><code>aggregateValid</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>inputhandler</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
By default we just pass the method calls all the way up to the root 
Controller.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#check" class="summary-sig-name"><code>check</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
Check whether the input in the request is valid for this handler and 
return a boolean indicating validity.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#commit" class="summary-sig-name"><code>commit</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
It has been determined that the input for the entire form is 
completely valid; it is now safe for all handlers to commit changes to 
the model.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="dispatchCheckResult"></a><span class="summary-sig"><span class="summary-sig-name">dispatchCheckResult</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>success</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#getInput" class="summary-sig-name"><code>getInput</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Return the data associated with this handler from the request, if 
any.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#handle" class="summary-sig-name"><code>handle</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
By default, we don't do anything</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#handleInvalid" class="summary-sig-name"><code>handleInvalid</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
Once it has been determined that the input is invalid, we should tell 
our view to report this fact to the user.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.input.InputHandler.html#handleValid" class="summary-sig-name"><code>handleValid</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
It has been determined that the input for this handler is valid; 
however, that does not mean the entire form is valid.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="initialize"></a><span class="summary-sig"><span class="summary-sig-name">initialize</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="setNode"></a><span class="summary-sig"><span class="summary-sig-name">setNode</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Controller</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#domChanged" class="summary-sig-name"><code>domChanged</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>widget</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#exit" class="summary-sig-name"><code>exit</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
We are done handling the node to which this controller was 
attached.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#gatheredControllers" class="summary-sig-name"><code>gatheredControllers</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>v</span>,
          <span class=summary-sig-arg>d</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#getChild" class="summary-sig-name"><code>getChild</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Look for a factory method to create the object to handle the next 
segment of the URL.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#getDynamicChild" class="summary-sig-name"><code>getDynamicChild</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
This method is called when getChild cannot find a matching wchild_* 
method in the Controller.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#getSubcontroller" class="summary-sig-name"><code>getSubcontroller</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>,
          <span class=summary-sig-arg>model</span>,
          <span class=summary-sig-arg>controllerName</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#importControllerLibrary" class="summary-sig-name"><code>importControllerLibrary</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>namespace</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#makeView" class="summary-sig-name"><code>makeView</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>model</span>,
          <span class=summary-sig-arg>templateFile</span>,
          <span class=summary-sig-arg>parentCount</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#pageRenderComplete" class="summary-sig-name"><code>pageRenderComplete</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Override this to recieve notification when the view rendering process 
is complete.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#process" class="summary-sig-name"><code>process</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#render" class="summary-sig-name"><code>render</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Trigger any inputhandlers that were passed in to this Page, then 
delegate to the View for traversing the DOM.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#renderView" class="summary-sig-name"><code>renderView</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#setSubcontrollerFactory" class="summary-sig-name"><code>setSubcontrollerFactory</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>factory</span>,
          <span class=summary-sig-arg>setup</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#setSubmodel" class="summary-sig-name"><code>setSubmodel</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>submodel</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#setUp" class="summary-sig-name"><code>setUp</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#setupControllerStack" class="summary-sig-name"><code>setupControllerStack</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#setView" class="summary-sig-name"><code>setView</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>view</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.woven.controller.Controller.html#wchild_index" class="summary-sig-name"><code>wchild_index</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
By default, we return ourself as the index.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Resource</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#delEntity" class="summary-sig-name"><code>delEntity</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getChildForRequest" class="summary-sig-name"><code>getChildForRequest</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getChildWithDefault" class="summary-sig-name"><code>getChildWithDefault</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>path</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Retrieve a static or dynamically generated child resource from me.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getDynamicEntity" class="summary-sig-name"><code>getDynamicEntity</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getStaticEntity" class="summary-sig-name"><code>getStaticEntity</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listDynamicEntities" class="summary-sig-name"><code>listDynamicEntities</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listDynamicNames" class="summary-sig-name"><code>listDynamicNames</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listEntities" class="summary-sig-name"><code>listEntities</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listNames" class="summary-sig-name"><code>listNames</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listStaticEntities" class="summary-sig-name"><code>listStaticEntities</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#listStaticNames" class="summary-sig-name"><code>listStaticNames</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#putChild" class="summary-sig-name"><code>putChild</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>path</span>,
          <span class=summary-sig-arg>child</span>)</span></code>
<br />
Register a static child.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#reallyPutEntity" class="summary-sig-name"><code>reallyPutEntity</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>entity</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#render_HEAD" class="summary-sig-name"><code>render_HEAD</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Default handling of HEAD method.</td></tr>
</table><br />


<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
  <th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.web.woven.input.InputHandler.html#invalidErrorText"><code>invalidErrorText</code></a></b> = <span title="'Error!'"><code><span class="variable-quote">'</span>Error!<span class="variable-quote">'</span>                              </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.web.woven.input.InputHandler.html#setupStacks"><code>setupStacks</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Controller</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.web.woven.controller.Controller.html#__implements__"><code>__implements__</code></a></b> = <span title="(&lt;class twisted.web.woven.interfaces.IController at 0x858b4ec&gt;, &lt;class twisted.web.resource.IResource at 0x8450e44&gt;)"><code>(&lt;class&nbsp;twisted.web.woven.interfaces.IC<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.web.woven.controller.Controller.html#addSlash"><code>addSlash</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
<td><b><a href="twisted.web.woven.controller.Controller.html#controllerLibraries"><code>controllerLibraries</code></a></b> = <span title="[]"><code>[]                                 </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.web.woven.controller.Controller.html#templateDirectory"><code>templateDirectory</code></a></b> = <span title="''"><code><span class="variable-quote">'</span><span class="variable-quote">'</span>                                   </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.web.woven.controller.Controller.html#viewFactory"><code>viewFactory</code></a></b> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Resource</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.web.resource.Resource.html#isLeaf"><code>isLeaf</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.web.resource.Resource.html#server"><code>server</code></a></b> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
</table><br />


<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
  <th colspan="2">Method Details</th></tr>
</table>

<a name="aggregateInvalid"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">aggregateInvalid</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>inputhandler</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  By default we just pass this method call all the way up to the root 
  Controller.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.controller.Controller.html#aggregateInvalid"><code>twisted.web.woven.controller.Controller.aggregateInvalid</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="aggregateValid"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">aggregateValid</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>inputhandler</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  By default we just pass the method calls all the way up to the root 
  Controller. However, an intelligent InputHandler could override this 
  and implement a state machine that waits for all data to be collected 
  and then fires.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.controller.Controller.html#aggregateValid"><code>twisted.web.woven.controller.Controller.aggregateValid</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="check"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">check</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  Check whether the input in the request is valid for this handler and 
  return a boolean indicating validity.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="commit"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">commit</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>node</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  It has been determined that the input for the entire form is 
  completely valid; it is now safe for all handlers to commit changes to 
  the model.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="getInput"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getInput</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>)</span>
  </h3>
  Return the data associated with this handler from the request, if 
  any.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="handle"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">handle</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>)</span>
  </h3>
  By default, we don't do anything
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.controller.Controller.html#handle"><code>twisted.web.woven.controller.Controller.handle</code></a> <i>(inherited documentation)</i>
</dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="handleInvalid"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">handleInvalid</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  Once it has been determined that the input is invalid, we should 
  tell our view to report this fact to the user.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="handleValid"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">handleValid</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>data</span>)</span>
  </h3>
  It has been determined that the input for this handler is valid; 
  however, that does not mean the entire form is valid.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>
<br />


<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
  <th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="invalidErrorText"></a>
<h3>invalidErrorText</h3>
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>str</code>

      </dd>
<span title="'Error!'">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>Error!<span class="variable-quote">'</span>                                                               </pre>
        </td></tr></table></dd>
</span>    </dl>
  </dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="setupStacks"></a>
<h3>setupStacks</h3>
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>int</code>

      </dd>
<span title="0">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
        </td></tr></table></dd>
</span>    </dl>
  </dd>
</dl></td></tr></table>
<br />


<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="center">
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar" align="right" width="100%">
      <table border="0" cellpadding="0" cellspacing="0">
      <tr><th class="navbar" align="center">
        <p class="nomargin">
          <a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted&nbsp;1.3.0rc1</a>
      </p></th></tr></table>
    </th>
  </tr>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:22 2004</font></td>
    <td align="right"><a href="http://epydoc.sourceforge.net"
                      ><font size="-2">http://epydoc.sf.net</font></a></td>
  </tr>
</table>
</body>
</html>