twisted.web.woven.widgets.Widget.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.widgets.Widget</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.widgets.html">Module&nbsp;widgets</a> ::
        Class&nbsp;Widget
      </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.widgets.Widget.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
    </table></td>
</tr></table>

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

<pre class="base-tree">
<a href="twisted.web.woven.view.View.html"><code>View</code></a> --+
       |
      <b>Widget</b>
</pre><br />

<dl><dt><b>Known Subclasses:</b></dt>
<dd>
    <a href="twisted.web.woven.widgets.Anchor.html"><code>Anchor</code></a>,
    <a href="twisted.web.woven.widgets.Attributes.html"><code>Attributes</code></a>,
    <a href="twisted.web.woven.widgets.Bold.html"><code>Bold</code></a>,
    <a href="twisted.web.woven.widgets.Br.html"><code>Br</code></a>,
    <a href="twisted.web.woven.widgets.Break.html"><code>Break</code></a>,
    <a href="twisted.web.woven.widgets.Cell.html"><code>Cell</code></a>,
    <a href="twisted.web.woven.widgets.ColumnList.html"><code>ColumnList</code></a>,
    <a href="twisted.web.woven.widgets.DefaultWidget.html"><code>DefaultWidget</code></a>,
    <a href="twisted.web.woven.widgets.DeferredWidget.html"><code>DeferredWidget</code></a>,
    <a href="twisted.web.woven.widgets.Div.html"><code>Div</code></a>,
    <a href="twisted.web.woven.widgets.Error.html"><code>Error</code></a>,
    <a href="twisted.web.woven.widgets.ExpandMacro.html"><code>ExpandMacro</code></a>,
    <a href="twisted.web.woven.form.FormFillerWidget.html"><code>FormFillerWidget</code></a>,
    <a href="twisted.web.woven.widgets.Image.html"><code>Image</code></a>,
    <a href="twisted.web.woven.widgets.Input.html"><code>Input</code></a>,
    <a href="twisted.web.woven.widgets.Link.html"><code>Link</code></a>,
    <a href="twisted.web.woven.widgets.List.html"><code>List</code></a>,
    <a href="twisted.web.woven.widgets.Option.html"><code>Option</code></a>,
    <a href="twisted.web.woven.widgets.ParagraphText.html"><code>ParagraphText</code></a>,
    <a href="twisted.web.woven.widgets.RawText.html"><code>RawText</code></a>,
    <a href="twisted.web.woven.widgets.Row.html"><code>Row</code></a>,
    <a href="twisted.web.woven.widgets.Span.html"><code>Span</code></a>,
    <a href="twisted.web.woven.widgets.Table.html"><code>Table</code></a>,
    <a href="twisted.web.woven.widgets.Text.html"><code>Text</code></a></dd></dl>

<hr/>

<p>A Widget wraps an object, its model, for display. The model can be a 
simple Python object (string, list, etc.) or it can be an instance of <a 
href="twisted.web.woven.model.Model.html" 
class="link"><code>model.Model</code></a>. (The former case is for 
interface purposes, so that the rest of the code does not have to treat 
simple objects differently from Model instances.)</p>
If the model is-a Model, there are two possibilities:
<ul>
  <li>
    we are being called to enable an operation on the model
  </li>
  <li>
    we are really being called to enable an operation on an attribute 
    of the model, which we will call the submodel
  </li>
</ul>
<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><span class="summary-sig"><a href="twisted.web.woven.widgets.Widget.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>model</span>,
          <span class=summary-sig-arg>submodel</span>,
          <span class=summary-sig-arg>setup</span>,
          <span class=summary-sig-arg>controller</span>,
          <span class=summary-sig-arg>viewStack</span>,
          <span class="summary-sig-vararg">*args</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.widgets.Widget.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>)</span></code>
<br />
Convenience syntax for getting an attribute from the resultant DOM 
Node of this widget.</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.widgets.Widget.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>,
          <span class=summary-sig-arg>value</span>)</span></code>
<br />
Convenience syntax for adding attributes to the resultant DOM Node of 
this widget.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_regenerate"></a><span class="summary-sig"><span class="summary-sig-name">_regenerate</span>(<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>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_reset"></a><span class="summary-sig"><span class="summary-sig-name">_reset</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><span class="summary-sig"><a href="twisted.web.woven.widgets.Widget.html#add" class="summary-sig-name"><code>add</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>)</span></code>
<br />
Add `item' to the children of the resultant DOM Node of this 
widget.</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.widgets.Widget.html#addEventHandler" class="summary-sig-name"><code>addEventHandler</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>eventName</span>,
          <span class=summary-sig-arg>handler</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
<br />
Add an event handler to this widget.</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.widgets.Widget.html#addUpdateMethod" class="summary-sig-name"><code>addUpdateMethod</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>updateMethod</span>)</span></code>
<br />
Add a method to this widget that will be called when the widget is 
being rendered.</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.widgets.Widget.html#appendChild" class="summary-sig-name"><code>appendChild</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>)</span></code>
<br />
Add `item' to the children of the resultant DOM Node of this 
widget.</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.widgets.Widget.html#cleanNode" class="summary-sig-name"><code>cleanNode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
Do your part, prevent infinite recursion!</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.widgets.Widget.html#generate" class="summary-sig-name"><code>generate</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
Allow a view to be used like a widget.</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.widgets.Widget.html#generateDOM" class="summary-sig-name"><code>generateDOM</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
Return a DOM Node to replace the Node in the template that this Widget 
handles.</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.widgets.Widget.html#getAllPatterns" class="summary-sig-name"><code>getAllPatterns</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>default</span>,
          <span class=summary-sig-arg>clone</span>,
          <span class=summary-sig-arg>deep</span>)</span></code>
<br />
Get all nodes below this one which have a matching pattern 
attribute.</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.widgets.Widget.html#__getitem__" class="summary-sig-name"><code>getAttribute</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>)</span></code>
<br />
Convenience syntax for getting an attribute from the resultant DOM 
Node of this widget.</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.widgets.Widget.html#getData" class="summary-sig-name"><code>getData</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
I have a model; however since I am a widget I am only responsible for 
a portion of that model.</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.widgets.Widget.html#getPattern" class="summary-sig-name"><code>getPattern</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>name</span>,
          <span class=summary-sig-arg>default</span>,
          <span class=summary-sig-arg>clone</span>,
          <span class=summary-sig-arg>deep</span>)</span></code>
<br />
Get a named slot from the incoming template node.</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.widgets.Widget.html#getTopModel" class="summary-sig-name"><code>getTopModel</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Get a reference to this page's top model object.</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.widgets.Widget.html#initialize" class="summary-sig-name"><code>initialize</code></a>(<span class=summary-sig-arg>self</span>,
          <span class="summary-sig-vararg">*args</span>,
          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
<br />
Use this method instead of __init__ to initialize your Widget, so you 
don't have to deal with calling the __init__ of the superclass.</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.widgets.Widget.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>index</span>,
          <span class=summary-sig-arg>item</span>)</span></code>
<br />
Insert `item' at `index' in the children list of the resultant DOM 
Node of this widget.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="modelChanged"></a><span class="summary-sig"><span class="summary-sig-name">modelChanged</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>payload</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.widgets.Widget.html#onEvent" class="summary-sig-name"><code>onEvent</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>eventName</span>,
          <span class="summary-sig-vararg">*args</span>)</span></code>
<br />
Dispatch a client-side event to an event handler that was registered 
using addEventHandler.</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.widgets.Widget.html#__setitem__" class="summary-sig-name"><code>setAttribute</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>item</span>,
          <span class=summary-sig-arg>value</span>)</span></code>
<br />
Convenience syntax for adding attributes to the resultant DOM Node of 
this widget.</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.widgets.Widget.html#setData" class="summary-sig-name"><code>setData</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 />
If the return value of <a 
href="twisted.web.woven.widgets.Widget.html#getData" 
class="link"><code>getData</code></a> is a Deferred, I am called when the 
result of the Deferred is available.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="setDataCallback"></a><span class="summary-sig"><span class="summary-sig-name">setDataCallback</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>result</span>,
          <span class=summary-sig-arg>request</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.widgets.Widget.html#setError" class="summary-sig-name"><code>setError</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>message</span>)</span></code>
<br />
Convenience method for allowing a Controller to report an error 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.widgets.Widget.html#setNode" class="summary-sig-name"><code>setNode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
Set a node for this widget to use instead of creating one 
programatically.</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.widgets.Widget.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>
<br />
I use the submodel to know which attribute in self.model I am 
responsible for</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.widgets.Widget.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-arg>node</span>,
          <span class=summary-sig-arg>data</span>)</span></code>
<br />
Override this method to set up your Widget prior to generateDOM.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from View</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.view.View.html#dispatchResult" class="summary-sig-name"><code>dispatchResult</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>result</span>)</span></code>
<br />
Check a given result from handling a node and look up a NodeMutator 
adapter which will convert the result into a node and insert it into the 
DOM tree.</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.view.View.html#dispatchResultCallback" class="summary-sig-name"><code>dispatchResultCallback</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>result</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
Deal with a callback from a deferred, checking to see if it is ok to 
send the page yet or not.</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.view.View.html#getChild" class="summary-sig-name"><code>getChild</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>
</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.view.View.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>
</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.view.View.html#getNodeController" class="summary-sig-name"><code>getNodeController</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>submodel</span>,
          <span class=summary-sig-arg>model</span>)</span></code>
<br />
Get a controller object to handle this node.</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.view.View.html#getNodeModel" class="summary-sig-name"><code>getNodeModel</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>submodel</span>)</span></code>
<br />
Get the model object associated with this node.</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.view.View.html#getNodeView" class="summary-sig-name"><code>getNodeView</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>submodel</span>,
          <span class=summary-sig-arg>model</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.view.View.html#getSubview" class="summary-sig-name"><code>getSubview</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>viewName</span>)</span></code>
<br />
Get a sub-view 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.woven.view.View.html#getTemplate" class="summary-sig-name"><code>getTemplate</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Override this if you want to have your subclass look up its template 
using a different method.</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.view.View.html#handleControllerResults" class="summary-sig-name"><code>handleControllerResults</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>controllerResult</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>,
          <span class=summary-sig-arg>controller</span>,
          <span class=summary-sig-arg>view</span>)</span></code>
<br />
Handle a deferred from a 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.view.View.html#handleDocument" class="summary-sig-name"><code>handleDocument</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>document</span>)</span></code>
<br />
Handle the root node, and send the page if there are no outstanding 
callbacks when it returns.</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.view.View.html#handleNewNode" class="summary-sig-name"><code>handleNewNode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>returnNode</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.view.View.html#handleNode" class="summary-sig-name"><code>handleNode</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</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.view.View.html#handleOutstanding" class="summary-sig-name"><code>handleOutstanding</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.view.View.html#importViewLibrary" class="summary-sig-name"><code>importViewLibrary</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.view.View.html#lookupTemplate" class="summary-sig-name"><code>lookupTemplate</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Use acquisition to look up the template named by self.templateFile, 
located anywhere above this object in the heirarchy, and use it as the 
template.</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.view.View.html#recurseChildren" class="summary-sig-name"><code>recurseChildren</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>,
          <span class=summary-sig-arg>node</span>)</span></code>
<br />
If this node has children, handle them.</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.view.View.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 class=summary-sig-arg>doneCallback</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.view.View.html#renderFailure" class="summary-sig-name"><code>renderFailure</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>failure</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.view.View.html#sendPage" class="summary-sig-name"><code>sendPage</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>request</span>)</span></code>
<br />
Check to see if handlers recorded any errors before sending the 
page</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.view.View.html#setController" class="summary-sig-name"><code>setController</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>controller</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.view.View.html#setSubviewFactory" class="summary-sig-name"><code>setSubviewFactory</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 class="summary-sig-vararg">*args</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.view.View.html#setupAllStacks" class="summary-sig-name"><code>setupAllStacks</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.view.View.html#setupViewStack" class="summary-sig-name"><code>setupViewStack</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.view.View.html#unlinkViews" class="summary-sig-name"><code>unlinkViews</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
</table><br />


<!-- =========== START OF INSTANCE VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
  <th colspan="2">Instance Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.html#model"><code>model</code></a></b>: If the current model is an <a 
href="twisted.web.woven.model.Model.html" 
class="link"><code>model.Model</code></a>, then the result of 
model.getData().</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>int</code></font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.html#clearNode"><code>clearNode</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>int</code></font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.html#livePage"><code>livePage</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>int</code></font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.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><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.html#tagName"><code>tagName</code></a></b>: The tag name of the element that this widget creates.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
<td><b><a href="twisted.web.woven.widgets.Widget.html#wantsAllNotifications"><code>wantsAllNotifications</code></a></b>: Indicate that this widget wants to recieve every change notification 
from the main model, not just notifications that affect its model.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from View</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.view.View.html#__implements__"><code>__implements__</code></a></b> = <span title="(&lt;class twisted.web.resource.IResource at 0x8450e44&gt;, &lt;class twisted.web.woven.interfaces.IView at 0x85936d4&gt;)"><code>(&lt;class&nbsp;twisted.web.resource.IResource&nbsp;<span class="variable-ellipsis">...</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.view.View.html#doneCallback"><code>doneCallback</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><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.web.woven.view.View.html#isLeaf"><code>isLeaf</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>str</code></font></td>
<td><b><a href="twisted.web.woven.view.View.html#template"><code>template</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>str</code></font></td>
<td><b><a href="twisted.web.woven.view.View.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>str</code></font></td>
<td><b><a href="twisted.web.woven.view.View.html#templateFile"><code>templateFile</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.view.View.html#templateNode"><code>templateNode</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><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
<td><b><a href="twisted.web.woven.view.View.html#viewLibraries"><code>viewLibraries</code></a></b> = <span title="[]"><code>[]                                       </code>
</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="__init__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>model</span>=<span class=sig-default>None</span>,
          <span class=sig-arg>submodel</span>=<span class=sig-default>None</span>,
          <span class=sig-arg>setup</span>=<span class=sig-default>None</span>,
          <span class=sig-arg>controller</span>=<span class=sig-default>None</span>,
          <span class=sig-arg>viewStack</span>=<span class=sig-default>None</span>,
          <span class="sig-vararg">*args</span>,
          <span class="sig-kwarg">**kwargs</span>)</span>
    <br /><i>(Constructor)</i>
  </h3>
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>model</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=<a href="twisted.web.woven.interfaces.IModel.html" 
              class="link"><code>interfaces.IModel</code></a>)</i>
      <dd><code><b>submodel</b></code> -
         see <a href="twisted.web.woven.widgets.html#setSubmodel" 
        class="link"><code>Widget.setSubmodel</code></a>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=String)</i>
      <dd><code><b>setup</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=Callable)</i>
      </dd>
    </dl>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#__init__"><code>twisted.web.woven.view.View.__init__</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="__getitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>)</span>
    <br /><i>(Indexing operator)</i>
  </h3>
  Convenience syntax for getting an attribute from the resultant DOM 
  Node of this widget.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="__setitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>,
          <span class=sig-arg>value</span>)</span>
    <br /><i>(Index assignment operator)</i>
  </h3>
  Convenience syntax for adding attributes to the resultant DOM Node 
  of this widget.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#__setitem__"><code>twisted.web.woven.view.View.__setitem__</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="add"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">add</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>)</span>
  </h3>
  Add `item' to the children of the resultant DOM Node of this 
  widget.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>item</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=A DOM node or <a 
              href="twisted.web.woven.widgets.Widget.html" 
              class="link"><code>Widget</code></a>.)</i>
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="addEventHandler"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">addEventHandler</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>eventName</span>,
          <span class=sig-arg>handler</span>,
          <span class="sig-vararg">*args</span>)</span>
  </h3>
  Add an event handler to this widget. eventName is a string 
  indicating which javascript event handler should cause this handler to 
  fire. Handler is a callable that has the signature handler(request, 
  widget, *args).
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="addUpdateMethod"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">addUpdateMethod</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>updateMethod</span>)</span>
  </h3>
  Add a method to this widget that will be called when the widget is 
  being rendered. The signature for this method should be 
  updateMethod(request, widget, data) where widget will be the instance 
  you are calling addUpdateMethod on.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="appendChild"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">appendChild</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>)</span>
  </h3>
  Add `item' to the children of the resultant DOM Node of this 
  widget.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>item</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=A DOM node or <a 
              href="twisted.web.woven.widgets.Widget.html" 
              class="link"><code>Widget</code></a>.)</i>
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="cleanNode"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">cleanNode</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>node</span>)</span>
  </h3>
  Do your part, prevent infinite recursion!
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="generate"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">generate</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>node</span>)</span>
  </h3>
  Allow a view to be used like a widget. Will look up the template 
  file and return it in place of the incoming node.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#generate"><code>twisted.web.woven.view.View.generate</code></a> <i>(inherited documentation)</i>
</dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="generateDOM"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">generateDOM</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>node</span>)</span>
  </h3>
  <dl><dt></dt><dd>
    <dl><dt><b>Returns:</b></dt>
      <dd>
        A DOM Node to replace the Node in the template that this 
        Widget handles. This Node is created based on <a 
        href="twisted.web.woven.widgets.Widget.html#tagName" 
        class="link"><code>tagName</code></a>, <code>children</code>, and 
        <code>attributes</code> (You should populate these in <a 
        href="twisted.web.woven.widgets.Widget.html#setUp" 
        class="link"><code>setUp</code></a>, probably).
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="getAllPatterns"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getAllPatterns</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>name</span>,
          <span class=sig-arg>default</span>=<span class=sig-default>Element('div',&nbsp;attributes={'style':&nbsp;'border:&nbsp;dashed&nbsp;red&nbsp;1...</span>,
          <span class=sig-arg>clone</span>=<span class=sig-default>1</span>,
          <span class=sig-arg>deep</span>=<span class=sig-default>1</span>)</span>
  </h3>
  Get all nodes below this one which have a matching pattern 
  attribute.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="__getitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getAttribute</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>)</span>
  </h3>
  Convenience syntax for getting an attribute from the resultant DOM 
  Node of this widget.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="getData"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getData</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>=<span class=sig-default>None</span>)</span>
  </h3>
  <p>I have a model; however since I am a widget I am only responsible 
  for a portion of that model. This method returns the portion I am 
  responsible for.</p>
  The return value of this may be a Deferred; if it is, then <a 
  href="twisted.web.woven.widgets.Widget.html#setData" 
  class="link"><code>setData</code></a> will be called once the result is 
  available.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="getPattern"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getPattern</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>name</span>,
          <span class=sig-arg>default</span>=<span class=sig-default>Element('div',&nbsp;attributes={'style':&nbsp;'border:&nbsp;dashed&nbsp;red&nbsp;1...</span>,
          <span class=sig-arg>clone</span>=<span class=sig-default>1</span>,
          <span class=sig-arg>deep</span>=<span class=sig-default>1</span>)</span>
  </h3>
  Get a named slot from the incoming template node. Returns a copy of 
  the node and all its children. If there was more than one node with the 
  same slot identifier, they will be returned in a round-robin 
  fashion.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="getTopModel"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">getTopModel</span>(<span class=sig-arg>self</span>)</span>
  </h3>
  Get a reference to this page's top model object.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="initialize"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">initialize</span>(<span class=sig-arg>self</span>,
          <span class="sig-vararg">*args</span>,
          <span class="sig-kwarg">**kwargs</span>)</span>
  </h3>
  Use this method instead of __init__ to initialize your Widget, so 
  you don't have to deal with calling the __init__ of the superclass.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="insert"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">insert</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>index</span>,
          <span class=sig-arg>item</span>)</span>
  </h3>
  Insert `item' at `index' in the children list of the resultant DOM 
  Node of this widget.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>item</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=A DOM node or <a 
              href="twisted.web.woven.widgets.Widget.html" 
              class="link"><code>Widget</code></a>.)</i>
      </dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="onEvent"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">onEvent</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>eventName</span>,
          <span class="sig-vararg">*args</span>)</span>
  </h3>
  Dispatch a client-side event to an event handler that was registered 
  using addEventHandler.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="__setitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setAttribute</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>item</span>,
          <span class=sig-arg>value</span>)</span>
  </h3>
  Convenience syntax for adding attributes to the resultant DOM Node 
  of this widget.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#__setitem__"><code>twisted.web.woven.view.View.__setitem__</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="setData"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setData</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>=<span class=sig-default>None</span>,
          <span class=sig-arg>data</span>=<span class=sig-default>None</span>)</span>
  </h3>
  If the return value of <a 
  href="twisted.web.woven.widgets.Widget.html#getData" 
  class="link"><code>getData</code></a> is a Deferred, I am called when 
  the result of the Deferred is available.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="setError"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setError</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>request</span>,
          <span class=sig-arg>message</span>)</span>
  </h3>
  Convenience method for allowing a Controller to report an error to 
  the user. When this is called, a Widget of class self.errorFactory is 
  instanciated and set to self.become. When generate is subsequently 
  called, self.become will be responsible for mutating the DOM instead of 
  this widget.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="setNode"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setNode</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>node</span>)</span>
  </h3>
  Set a node for this widget to use instead of creating one 
  programatically. Useful for looking up a node in a template and using 
  that.
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#setNode"><code>twisted.web.woven.view.View.setNode</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="setSubmodel"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setSubmodel</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>submodel</span>)</span>
  </h3>
  I use the submodel to know which attribute in self.model I am 
  responsible for
  <dl><dt></dt><dd>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#setSubmodel"><code>twisted.web.woven.view.View.setSubmodel</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>

<a name="setUp"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">setUp</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>
  <p>Override this method to set up your Widget prior to generateDOM. 
  This is a good place to call methods like <a 
  href="twisted.web.woven.widgets.Widget.html#add" 
  class="link"><code>add</code></a>, <a 
  href="twisted.web.woven.widgets.Widget.html#insert" 
  class="link"><code>insert</code></a>, <a 
  href="twisted.web.woven.widgets.Widget.html#__setitem__" 
  class="link"><code>__setitem__</code></a> and <a 
  href="twisted.web.woven.widgets.Widget.html#__getitem__" 
  class="link"><code>__getitem__</code></a>.</p>
  Overriding this method obsoletes overriding generateDOM directly, in 
  most cases.
  <dl><dt></dt><dd>
    <dl><dt><b>Parameters:</b></dt>
      <dd><code><b>request</b></code>
        <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        (type=<a href="twisted.web.server.Request.html" 
              class="link"><code>twisted.web.server.Request</code></a>.)</i>
      <dd><code><b>node</b></code> -
         The DOM node which this Widget is operating on.
      <dd><code><b>data</b></code> -
         The Model data this Widget is meant to operate upon.
      </dd>
    </dl>
    <dl><dt><b>Overrides:</b></dt>
      <dd><a href="twisted.web.woven.view.View.html#setUp"><code>twisted.web.woven.view.View.setUp</code></a></dd>
    </dl>
  </dd></dl>
</td></tr></table>
<br />


<!-- =========== START OF INSTANCE VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
  <th colspan="2">Instance Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="model"></a>
<h3>model</h3>
If the current model is an <a 
href="twisted.web.woven.model.Model.html" 
class="link"><code>model.Model</code></a>, then the result of 
model.getData(). Otherwise the original object itself.
</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="clearNode"></a>
<h3>clearNode</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>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="livePage"></a>
<h3>livePage</h3>
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>int</code>

      </dd>
<span title="1">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
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;</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>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="tagName"></a>
<h3>tagName</h3>
The tag name of the element that this widget creates. If this is None, 
then the original Node will be cloned.
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>NoneType</code>

      </dd>
<span title="None">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
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;</pre>
        </td></tr></table></dd>
</span>    </dl>
  </dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="wantsAllNotifications"></a>
<h3>wantsAllNotifications</h3>
Indicate that this widget wants to recieve every change notification 
from the main model, not just notifications that affect its model.
</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:38 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>