<meta name="generator" content="muse.el" />
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
- <link href="http://feeds.unknownlamer.org/rss/site-updates"
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1.0" />
+ <link href="https://feeds.unknownlamer.org/rss/site-updates"
rel="alternate" type="application/rss+xml" title="Updates Feed" />
<link rel="stylesheet" href="default.css" />
</div>
-<!-- Page published by Emacs Muse begins here --><h2><a name="sec1" id="sec1"></a>
+<!-- Page published by Emacs Muse begins here -->
+<h2><a name="sec1" id="sec1"></a>
Abstract</h2>
<p><a href="http://common-lisp.net/project/ucw/">UnCommon Web</a> is a very powerful and mature web framework for Common
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">standard-application</span> (application)
((url-prefix <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:url-prefix</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A string specifying the
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A string specifying the
start (prefix) of all the urls this app should handle.
This value is used by the standard-server to decide what app a
particular request is aimed at and for generating links to
actions within the app. "</span>)
(www-roots <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:www-roots</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A list of directories (pathname
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A list of directories (pathname
specifiers) or cons-cell (URL-subdir . pathname) to use when looking for static files."</span>)
(dispatchers <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:dispatchers</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A list of request
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A list of request
dispatchers. The user supplied list of dispatchers is extended
with other dispatchers that are required for UCW to function
properly (action-dispatcher, a parenscript-dispatcher, etc). If
application.dispatchers) accessor or, if you want control over
the order of the dispathcers, (slot-value instance
'dispatchers)."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The default UCW application class."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The default UCW application class."</span>))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/modular-application/modular-application.lisp">src/rerl/modular-application/modular-application.lisp</a></p>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application-mixin</span> ()
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Superclass for all application mixins."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Superclass for all application mixins."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application</span> (standard-application modular-application-mixin)
...)
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">cookie-session-application-module</span> (modular-application-mixin)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Class for applications which use cookies for sesion tracking.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Class for applications which use cookies for sesion tracking.
Cookie session applications work exactly like
standard-applications except that when the session is not found
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">l10n-application-module</span> (modular-application-mixin)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Application class which can handle l10n requests."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Application class which can handle l10n requests."</span>))
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">secure-application-module</span> (modular-application-mixin)
(<span class="emacs-face-builtin">:documentation</span>
- <span class="emacs-face-string">"Mixin class for applications which require authorized access.
+ <span class="emacs-face-doc">"Mixin class for applications which require authorized access.
Concrete application must specialize the following methods:
APPLICATION-FIND-USER (APPLICATION USERNAME)
APPLICATION-CHECK-PASSWORD (APPLICATION USER PASSWORD)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">simple-window-component</span> (window-component)
((title)
(stylesheet)
- (javascript <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"List of javascript includes.
+ (javascript <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"List of javascript includes.
Each element must be a list whose first value is either the
symbol :SRC or :JS.
<pre class="src">
(defcomponent status-bar ()
- ((messages <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An ALIST of the messages to
+ ((messages <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An ALIST of the messages to
show. Each element is a cons of the form (SEVERITY .
MESSAGE). SEVERITY is one of :ERROR, :WARN, :INFO and MESSAGE is
a string which will be html-escaped."</span>)
...)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Stateless status bar to display messages."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Stateless status bar to display messages."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">add-message</span> (status-bar msg <span class="emacs-face-type">&key</span> severity <span class="emacs-face-type">&allow-other-keys</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Add the message text MSG to STATUS-BAR with
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Add the message text MSG to STATUS-BAR with
severity SEVERITY."</span>))
</pre>
(render (status-bar win)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">show-message</span> (msg <span class="emacs-face-type">&key</span> severity <span class="emacs-face-type">&allow-other-keys</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Show a message in the status bar. Only works if
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Show a message in the status bar. Only works if
current window is a status-bar-mixin"</span>))
</pre>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">redirect-component</span> ()
((target <span class="emacs-face-builtin">:accessor</span> target <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:target</span>))
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Send a client redirect.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Send a client redirect.
This component, which must be used as a window-component,
redirects the client to the url specified in the target slot. A
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">container</span> ()
(...)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Allow multiple components to share the same place.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Allow multiple components to share the same place.
The container component serves to manage a set of components.
It does not provide any render impementation, which is the
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">switching-container</span> ...
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A simple renderable container component.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A simple renderable container component.
This component is like the regular CONTAINER but serves to manage a set
of components which share the same place in the UI. Therefore it provides
<pre class="src">
(defcomponent tabbed-pane (switching-container)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for providing the user with a standard \"tabbed pane\" GUI widget."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for providing the user with a standard \"tabbed pane\" GUI widget."</span>))
</pre>
<p>Provides a generic tabbed pane that renders a nested div split into a
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">login</span> ()
((username) (password) (message))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic login (input username and password) component.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic login (input username and password) component.
This component, which must be embedded in another component,
presents the user with a simple two fielded login form.
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">check-credentials</span> (login)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns T if LOGIN is valid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns T if LOGIN is valid."</span>))
(defaction login-successful ((l login))
(answer t))
user)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">application-find-user</span> (application username)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Find USER by USERNAME for APPLICATION."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Find USER by USERNAME for APPLICATION."</span>))
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">error-message</span> (simple-window-component)
((message <span class="emacs-face-builtin">:accessor</span> message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">"ERROR [no message specified]"</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic component for showing server side
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic component for showing server side
error messages."</span>)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">error-component</span> (error-message)
((condition <span class="emacs-face-builtin">:accessor</span> error.condition <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:condition</span> <span class="emacs-face-builtin">:initform</span> nil)
(backtrace <span class="emacs-face-builtin">:accessor</span> error.backtrace <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:backtrace</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic component for showing server side
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic component for showing server side
error conditions. Unlike ERROR-MESSAGE this component also
attempts to display a backtrace."</span>)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">info-message</span> ()
((message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:accessor</span> message)
(ok-text <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:ok-text</span> <span class="emacs-face-builtin">:accessor</span> ok-text <span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">"Ok."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for showing a message to the user.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for showing a message to the user.
If the OK-TEXT slot is non-NIL component will use that as the
text for a link which, when clicked, causes the component to
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">option-dialog</span> (template-component)
((message) (options) (confirm))
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:template-name</span> <span class="emacs-face-string">"ucw/option-dialog.tal"</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for querying the user.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for querying the user.
The value of the slot MESSAGE is used as a general heading.
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">form-field</span> ()
- ((validators <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"List of validators which will be
+ ((validators <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"List of validators which will be
applied to this field."</span>)
- (initially-validate <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"When non-NIL the
+ (initially-validate <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"When non-NIL the
validators will be run as soon as the page
is rendered."</span>)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">value</span> (form-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The lispish translated value that represents the form-field."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The lispish translated value that represents the form-field."</span>))
-(<span class="emacs-face-keyword">defgeneric</span> (<span class="emacs-face-function-name">setf value)</span> (new-value form-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Set the value of a form-field with translation to client."</span>))
+(<span class="emacs-face-keyword">defgeneric</span> (<span class="emacs-face-function-name">setf value</span>) (new-value form-field)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Set the value of a form-field with translation to client."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">generic-html-input</span> (form-field html-element)
((client-value <span class="emacs-face-builtin">:accessor</span> client-value <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:client-value</span>
<span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">""</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The string the client submitted along with this field."</span>)
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The string the client submitted along with this field."</span>)
(name <span class="emacs-face-builtin">:accessor</span> name <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:name</span> <span class="emacs-face-builtin">:initform</span> nil)
(accesskey <span class="emacs-face-builtin">:accessor</span> accesskey <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:accesskey</span> <span class="emacs-face-builtin">:initform</span> nil)
(tooltip <span class="emacs-face-builtin">:accessor</span> tooltip <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:tooltip</span> <span class="emacs-face-builtin">:initform</span> nil)
((message <span class="emacs-face-builtin">:accessor</span> message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:initform</span> nil)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">validate</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Validate a form-field with a validator."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Validate a form-field with a validator."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-check</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generate javascript code for checking FIELD against VALIDATOR.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generate javascript code for checking FIELD against VALIDATOR.
This is the convenience entry point to generate-javascript-check,
methods defined on this generic funcition should return a list of
javascript variable value."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-invalid-handler</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The javascript code body for when a field is invalid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The javascript code body for when a field is invalid."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-valid-handler</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generate the javascript body for when a field is valid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generate the javascript body for when a field is valid."</span>))
</pre>
<h5>Standard Form Fields</h5>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">integer-field</span> (number-field))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">in-field-string-field</span> (string-field)
- ((in-field-label <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This slot, if non-NIL, will be
+ ((in-field-label <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This slot, if non-NIL, will be
used as an initial field label. An initial
field label is a block of text which is placed
inside the input element and removed as soon
((year) (month) (day)))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">dmy-date-field</span> (date-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Date fields which orders the inputs day/month/year"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Date fields which orders the inputs day/month/year"</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">mdy-date-field</span> (date-field))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">select-field</span> (generic-html-input)
- ((data-set <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The values this select chooses
+ ((data-set <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The values this select chooses
from."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Form field used for selecting one value from a
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Form field used for selecting one value from a
list of available options."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">render-value</span> (select-field value)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This function will be passed each value in the field's
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This function will be passed each value in the field's
data-set and must produce the body of the corresponding
<ucw:option tag."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">mapping-select-field</span> (select-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Class used when we want to chose the values of
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Class used when we want to chose the values of
a certain mapping based on the keys. We render the keys in the
select and return the corresponding value from the VALUE
method."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">radio-button</span> (generic-html-input)
((value)
- (group <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The RADIO-GROUP this button is a part
+ (group <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The RADIO-GROUP this button is a part
of."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget representing a single radio
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget representing a single radio
button. Should be used in conjunction with a RADIO-GROUP."</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">add-value</span> ((group radio-group) value)
- <span class="emacs-face-string">"Adds radio-button with value to group"</span>)
+ <span class="emacs-face-doc">"Adds radio-button with value to group"</span>)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">checkbox-field</span> (generic-html-input))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">file-upload-field</span> (generic-html-input))
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">mime-part-headers</span> (mime-part)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns an alist of the headers of MIME-PART.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns an alist of the headers of MIME-PART.
The alist must be of the form (NAME . VALUE) where both NAME and
VALUE are strings."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">mime-part-body</span> (mime-part)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns the body of MIME-PART."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns the body of MIME-PART."</span>))
</pre>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">not-empty-validator</span> (validator))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">value-validator</span> (validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Validators that should only be applied if there is a value.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Validators that should only be applied if there is a value.
That is, they always succeed on nil."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">length-validator</span> (value-validator)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">string=-validator</span> (validator)
((other-field <span class="emacs-face-builtin">:accessor</span> other-field <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:other-field</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Ensures that a field is string= to another one."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Ensures that a field is string= to another one."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">regex-validator</span> (value-validator)
((regex <span class="emacs-face-builtin">:accessor</span> regex <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:regex</span> <span class="emacs-face-builtin">:initform</span> nil)))
((environment <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:environment</span> <span class="emacs-face-builtin">:initform</span> nil)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">template-component-environment</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Create the TAL environment for rendering COMPONENT's template.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Create the TAL environment for rendering COMPONENT's template.
Methods defined on this generic function must return a TAL
environment: a list of TAL binding sets (see the documentation
(make-standard-environment `((component . ,component)) component))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> ((component template-component))
- <span class="emacs-face-string">"Render a template based component.
+ <span class="emacs-face-doc">"Render a template based component.
Calls the component's template. The name of the template is the
value returned by the generic function
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">range-view</span> (template-component)
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:template-name</span> <span class="emacs-face-string">"ucw/range-view.tal"</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for showing the user a set of data one \"window\" at a time.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for showing the user a set of data one \"window\" at a time.
The data set is presented one \"window\" at a time with links to
the the first, previous, next and last window. Each window shows
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">render-range-view-item</span> (range-view item)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render a single element of a range-view."</span>)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render a single element of a range-view."</span>)
(<span class="emacs-face-builtin">:method</span> ((range-view range-view) (item t))
<span class="emacs-face-string">"Standard implementation of RENDER-RANGE-VIEW-ITEM. Simply
applies ITEM to princ (via <:as-html)."</span>
(css-style)
(extra-tags)
(events))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An HTML element.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An HTML element.
HTML elements control aspects that are relevant to almost all tags.
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">widget-component</span> (html-element)
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget which should be wrapped in a <div>."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget which should be wrapped in a <div>."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">inline-widget-component</span> (html-element)
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget which should be wrapped in <span> and not <div>"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget which should be wrapped in <span> and not <div>"</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> <span class="emacs-face-builtin">:wrap-around</span> ((widget widget-component)))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> <span class="emacs-face-builtin">:wrap-around</span> ((widget inline-widget-component)))
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">task-component</span> (standard-component)
(...)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A controller for a single task or operation to
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A controller for a single task or operation to
be performed by the user.
A task component's START action is called as soon as the
serve only to order a sequence of other components."</span>))
(defgeneric/cc start (task)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"action which gets called automatically when
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"action which gets called automatically when
task-component is active. Use defaction to define your own
\"start\" action"</span>))
</pre>
<pre class="src">
(defcomponent cached-component ()
((cached-output <span class="emacs-face-builtin">:accessor</span> cached-output <span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A string holding the output to
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A string holding the output to
use for this component. This string will be
written directly to the html stream and is
changed by the REFRESH-COMPONENT-OUTPUT
method."</span> )
(timeout <span class="emacs-face-builtin">:accessor</span> timeout <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:timeout</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An value specifying how often this
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An value specifying how often this
component needs to be refreshed. The exact
interpretation of the value depends on the type of
caching used class."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component which caches its output.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component which caches its output.
The component caching API is built around the generic functions
COMPONENT-DIRTY-P and REFRESH-COMPONENT-OUTPUT and a method on
Do not use CACHED-COMPONENT directly, use one its subclasses."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">component-dirty-p</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns T is COMPONENT's cache is invalid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns T is COMPONENT's cache is invalid."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">update-cache</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Update COMPONENT's cache variables after a refresh."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Update COMPONENT's cache variables after a refresh."</span>))
(defcomponent timeout-cache-component (cached-component)
((last-refresh <span class="emacs-face-builtin">:accessor</span> last-refresh <span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The time, exrpessed as a
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The time, exrpessed as a
universal time, when the component was last rendered."</span>))
(<span class="emacs-face-builtin">:default-initargs</span>
<span class="emacs-face-builtin">:timeout</span> (* 30 60 60))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render the component at most every TIMEOUT seconds."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render the component at most every TIMEOUT seconds."</span>))
(defcomponent num-hits-cache-component (cached-component)
((hits-since-refresh <span class="emacs-face-builtin">:accessor</span> hits-since-refresh
<span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Number of views since last refresh."</span>))
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Number of views since last refresh."</span>))
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:timeout</span> 10)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render the component every TIMEOUT views."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render the component every TIMEOUT views."</span>))
</pre>
<p>Subclass and override <code>component-dirty-p</code> to do something useful
This macro assumes that the lexcial variable UCW:SELF is bound to
the calling component."</span>)
-(answer VAL) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">answer parent component ONLY IN ACTIONS
+(answer VAL) <span class="emacs-face-comment">; answer parent component ONLY IN ACTIONS
</span>
-(ok SELF VAL) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">Used to answer a component anywhere and what answer
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">expands into
+(ok SELF VAL) <span class="emacs-face-comment">; Used to answer a component anywhere and what answer
+</span> <span class="emacs-face-comment">; expands into
</span>
-(jump COMPONENT-NAME <span class="emacs-face-type">&REST</span> ARGS) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">is similar to call, but replaces
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">the current component with the new
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">one and drops any backtracks (back
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">button will no longer work)
+(jump COMPONENT-NAME <span class="emacs-face-type">&REST</span> ARGS) <span class="emacs-face-comment">; is similar to call, but replaces
+</span> <span class="emacs-face-comment">; the current component with the new
+</span> <span class="emacs-face-comment">; one and drops any backtracks (back
+</span> <span class="emacs-face-comment">; button will no longer work)
</span></pre>
<p><code>(call COMPONENT-NAME &ARGS INIT-ARGS)</code> calls <code>COMPONENT-NAME</code> and returns
<pre class="src">
(defaction NAME (first ...) ...)
- <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">(roughly) expands into
+ <span class="emacs-face-comment">; (roughly) expands into
</span>(defmethod/cc NAME (first ...)
(<span class="emacs-face-keyword">let</span> ((self first))
...))
<pre class="src">
(defentry-point url (<span class="emacs-face-builtin">:application</span> APPLICATION
<span class="emacs-face-builtin">:class</span> DISPATCHER-CLASS)
- (PARAM1 ... PARAMN) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">GET / POST vars, bound in body
+ (PARAM1 ... PARAMN) <span class="emacs-face-comment">; GET / POST vars, bound in body
</span> body)
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">matcher-match</span> (matcher application context)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Abstract method for subclasses to implement a
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Abstract method for subclasses to implement a
matcher. This method would return multiple-values according to
matcher internal nature.
CONTEXT's application nor rebind *context*."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">handler-handle</span> (handler application context matcher-result)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Abstract function for handler classes to
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Abstract function for handler classes to
implement in order to handle a request matched by relevant
matcher.
matched, request will be closed after this method is run."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">dispatch</span> (dispatcher application context)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Entry point into a dispatcher. Must return T
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Entry point into a dispatcher. Must return T
if the context has been handled or NIL if it hasn't.
No methods defined on this function may rebind *context*, nor
Simple Dispatcher</h4>
<pre class="src">
-(<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This class of dispatchers avoids all of UCW's
+(<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This class of dispatchers avoids all of UCW's
standard call/cc (and therefore frame/backtracking/component)
mechanism.
Logs are generated in verbosity defined by LOG-LEVEL and directed to
LOG-ROOT-DIRECTORY if defined."</span>
...
- server) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">return server, naturally
+ server) <span class="emacs-face-comment">; return server, naturally
</span></pre>
<p class="cke-buttons">
<!-- validating badges, any browser, etc -->
- <a href="http://validator.w3.org/check/referer"><img
- src="http://www.w3.org/Icons/valid-xhtml10"
+ <a href="https://validator.w3.org/check/referer"><img
+ src="https://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" /></a>
- <a href="http://www.anybrowser.org/campaign/"><img
+ <a href="https://www.anybrowser.org/campaign/"><img
src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
]" /></a>
- <a href="http://www.debian.org/"><img
+ <a href="https://www.debian.org/"><img
src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
- <a href="http://hcoop.net/">
+ <a href="https://hcoop.net/">
<img src="img/buttons/hcoop.png"
alt="[ Hosted by HCoop]" />
</a>
- <a href="http://www.fsf.org/register_form?referrer=114">
+ <a href="https://www.fsf.org/register_form?referrer=114">
<img src="img/buttons/fsf_member.png"
alt="[ FSF Associate Member ]" />
</a>
</p>
-<p class="cke-footer">No, there's nothing here about X, so be quiet.
+<p class="cke-footer">If nothing in the world can change our children will inherit nothing
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>