| Home | Trees | Indices | Help |
|
|---|
|
|
A TurboGears Widget.
'__init__' and 'update_params' are the only methods you might need to
care extending.
Attributes you should know about:
name : The name of the widget.
template : Kid template for the widget.
default : Default value for the widget.
css : List of CSSLinks and CSSSources for the widget. These
will be automatically pulled and inserted in the
page template that displays it.
javascript: List of JSLinks and JSSources for the widget. Same as css.
is_named : A property returning True if the widget has overrided it's
default name.
params : All parameter names listed here will be treated as special
parameters. This list is updated by the metaclass and
always contains *all* params from the widget itself and
all it's bases. Can be used as a quick reminder of all
the params your widget has at it's disposal. They all
behave the same and have the same priorities regarding their
overridal. Read on...
params_doc: A dictionary containing 'params' names as keys and their
docstring as value. For documentation at the widget browser.
All initialization parameters listed at the class attribute "params" can be
defined as class attributes, overriden at __init__ or at display time. They
will be treated as special params for the widget, which means:
1) You can fix default values for them when sublcassing Widget.
2) If passed as **params to the constructor, the will be bound automatically
to the widget instance, taking preference over any class attributes
previously defined. Mutable attributes (dicts and lists) defined as class
attributes are safe to modify as care is taken to copy them so the class
attribute remains unchanged.
3) They can be further overrided by passing them as keyword args to
display(). This will only affect that display() call in a thread-safe
way.
4) A callable can be passed and it will be called automatically when sending
variables to the template. This can be handy to pick up parameters which
change in every request or affect many widgets simultaneously.
|
|||
| __metaclass__ | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from |
|||
|
|||
_locked = False
|
|||
css =
|
|||
default = None
|
|||
javascript =
|
|||
name =
|
|||
params =
|
|||
params_doc =
|
|||
template = None
|
|||
template_vars =
|
|||
|
|||
| is_named | |||
|
Inherited from |
|||
|
|||
Delegate to display. Used as an alias to avoid tiresome typing |
All initialization has to take place in this method. It's not
thread-safe to mutate widget's attributes outside this method or
anytime after widget's first display.
*Must* call super(MyWidget, self).__init__(*args, **kw) cooperatively,
unless, of course, your know what you're doing. Preferably this should
be done before any actual work is done in the method.
Parameters:
name : The widget's name. In input widgets, this will also be the
name of the variable that the form will send to the
controller. This is the only param that is safe to pass as a
positional argument to __init__.
template : The template that the widget should use to display itself.
Currently only Kid templates are supported. You can both
initialize with a template string or with the path to a
file-base template: "myapp.templates.widget_tmpl"
default : Default value to display when no value is passed at display
time.
**params : Keyword arguments specific to your widget or to any of it's
bases. If listed at class attribute 'params' the will be
bound automatically to the widget instance.
Note: Do not confuse these parameters with parameters listed at
"params". Some widgets accept parameters at the constructor which are
not listed params, these parameter won't be passed to the template, be
automatically called, etc..
|
repr(x)
|
x.__setattr__('name', value) <==> x.name = value
|
Display the widget in a Kid template. Returns an elementtree node
instance. If you need serialized output in a string call 'render'
instead.
Probably you will not need to override or extend if inhertitting from
Widget.
@params:
value : The value to display in the widget.
**params : Extra parameters specific to the widget. All keyword params
supplied will pass through the update_params method which will
have a last chance to modify them before reaching the
template.
|
Exactly the same as display() but return serialized output instead. Useful for debugging or to display the widget in a non-Kid template like Cheetah, STAN, ... |
This method will have the last chance to update the variables sent to the template for the specific request. All parameters listed at class attribute 'params' will be available at the 'params' dict this method receives. *Must* call super(MyWidget, self).update_params(params) cooperatively, unless, of course, your know what you're doing. Preferably this should be done before any actual work is done in the method. |
This method will have the last chance to update the variables sent to the template for the specific request. All parameters listed at class attribute 'params' will be available at the 'params' dict this method receives. *Must* call super(MyWidget, self).update_params(params) cooperatively, unless, of course, your know what you're doing. Preferably this should be done before any actual work is done in the method. |
|
|||
is_named
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Apr 19 13:58:44 2008 | http://epydoc.sourceforge.net |