Package twisted :: Package web :: Module widgets :: Class Gadget

[frames | no frames]

## Class Gadget

    Resource --+
               |
              Gadget

Known Subclasses:
  `ChangePasswordForm`, `IdentitiesGadget`, `NewIdentityForm`, `NewPerspectiveForm`, `ParticipantListWidget`, `PerspectivesGadget`, `RemoveIdentityForm`, `RemovePerspectiveForm`, `WordsGadget`

I am a collection of Widgets, to be rendered through a Page Factory. self.pageFactory should be a Resource that takes a Widget in its constructor. The default is twisted.web.widgets.WidgetPage.

Method Summary
| ``__init__`(self)` Initialize.
| ``addFile`(self, path)` Gadget.addFile(path) Add a static path to this Gadget.
| ``getChild`(self, path, request)` Retrieve a 'child' resource from me.
| `getWidget(self, path, request)`
| ``pageFactory`(self, *args, **kwargs)` Gadget.pageFactory(*args, **kwargs) -> Resource By default, this method returns self.page(*args, **kwargs).
| ``putPath`(self, path, pathname)` Gadget.putPath(path, pathname) Add a static path to this Gadget.
| ``putWidget`(self, path, widget)` Gadget.putWidget(path, widget) Add a Widget to this Gadget.
| ``render`(self, request)` Render a given resource.
Inherited from Resource
| ``delEntity`(self, name)`
| ``getChildForRequest`(self, request)`
| ``getChildWithDefault`(self, path, request)` Retrieve a static or dynamically generated child resource from me.
| ``getDynamicEntity`(self, name, request)`
| ``getStaticEntity`(self, name)`
| ``listDynamicEntities`(self, request)`
| ``listDynamicNames`(self)`
| ``listEntities`(self)`
| ``listNames`(self)`
| ``listStaticEntities`(self)`
| ``listStaticNames`(self)`
| ``putChild`(self, path, child)` Register a static child.
| ``reallyPutEntity`(self, name, entity)`
| ``render_HEAD`(self, request)` Default handling of HEAD method.

Class Variable Summary
`int` | `isLeaf` = 0
Inherited from Resource
`tuple` | `__implements__` = `(<class twisted.web.resource.IResource ...`
`NoneType` | `server` = None

Method Details

### __init__(self)
(Constructor)

Initialize.

  Overrides:
    `twisted.web.resource.Resource.__init__` (inherited documentation)

### addFile(self, path)

Gadget.addFile(path) Add a static path to this Gadget. This method is obsolete, use Gadget.putPath instead.

### getChild(self, path, request)

Retrieve a 'child' resource from me.

Implement this to create dynamic resource generation -- resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable 'isLeaf' is set in your subclass; instead, the 'postpath' attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

     | site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by 'bar' has isLeaf set to true, then the getChild call will never be made on it.

  Parameters:
    `path` - a string, describing the child
    `request` - a twisted.web.server.Request specifying meta-information about the request that is being made for this child.
  Overrides:
    `twisted.web.resource.Resource.getChild` (inherited documentation)

### pageFactory(self, *args, **kwargs)

Gadget.pageFactory(*args, **kwargs) -> Resource By default, this method returns self.page(*args, **kwargs). It is only for backwards-compatibility -- you should set the 'pageFactory' attribute on your Gadget inside of its __init__ method.

### putPath(self, path, pathname)

Gadget.putPath(path, pathname) Add a static path to this Gadget. Whenever 'path' is requested, twisted.web.static.File(pathname) is sent.

### putWidget(self, path, widget)

Gadget.putWidget(path, widget) Add a Widget to this Gadget. It will be rendered through the pageFactory associated with this Gadget, whenever 'path' is requested.

### render(self, request)

Render a given resource. See `IResource`'s render method.

I delegate to methods of self with the form 'render_METHOD' where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a string which will be the rendered page, unless the return value is twisted.web.server.NOT_DONE_YET, in which case it is this class's responsibility to write the results to request.write(data), then call request.finish().

Old code that overrides render() directly is likewise expected to return a string or NOT_DONE_YET.

  Overrides:
    `twisted.web.resource.Resource.render` (inherited documentation)

Class Variable Details

### isLeaf

  Type:
    `int`
  Value:

        0

Generated by Epydoc 2.0 on Sat May 15 20:08:56 2004 | http://epydoc.sf.net