<link href="http://feeds.unknownlamer.org/rss/site-updates"
rel="alternate" type="application/rss+xml" title="Updates Feed" />
-<link rel="stylesheet" href="default.css" media="screen" />
+<link rel="stylesheet" href="default.css" />
</head>
<body>
<h1>Metaobject Protocols</h1>
<p>Classes are defined with <code>defclass</code></p>
<pre class="src">
-(<span style="color: #b9d3ee;">defclass</span> <span style="color: #98fb98;">name</span> (superclasses ...)
- ((slot-name <span style="color: #b0c4de;">:accessor</span> slot-accessor ...)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">name</span> (superclasses ...)
+ ((slot-name <span class="emacs-face-builtin">:accessor</span> slot-accessor ...)
...)
(class-options ...))
-(<span style="color: #b9d3ee;">defclass</span> <span style="color: #98fb98;">example</span> ()
- ((foo <span style="color: #b0c4de;">:accessor</span> foo-of <span style="color: #b0c4de;">:initform</span> 5)))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">example</span> ()
+ ((foo <span class="emacs-face-builtin">:accessor</span> foo-of <span class="emacs-face-builtin">:initform</span> 5)))
-(<span style="color: #b9d3ee;">defclass</span> <span style="color: #98fb98;">example-child</span> (example)
- ((bar <span style="color: #b0c4de;">:accessor</span> bar-of <span style="color: #b0c4de;">:initform</span> (list 1 2 3))))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">example-child</span> (example)
+ ((bar <span class="emacs-face-builtin">:accessor</span> bar-of <span class="emacs-face-builtin">:initform</span> (list 1 2 3))))
</pre>
<p>Slot defintions have several options; the above example shows only the
enable selective modification of individual facets with minimal code.</p>
<pre class="src">
-(<span style="color: #b9d3ee;">defgeneric</span> <span style="color: #87cefa;">generic</span> (parameters ...)
+(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">generic</span> (parameters ...)
(options) ...)
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">generic-name</span> ((parameter type) parameter ...)
- <span style="color: #b3b3b3;">"documentation string"</span>
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">generic-name</span> ((parameter type) parameter ...)
+ <span class="emacs-face-string">"documentation string"</span>
body)
-(<span style="color: #b9d3ee;">defgeneric</span> <span style="color: #87cefa;">foo</span> (bar baz quux)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Process the baz with the quux capacitor to make the
+(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">foo</span> (bar baz quux)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Process the baz with the quux capacitor to make the
foo widget fly into the sky at warp speed"</span>))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">foo</span> ((bar example) baz (quux capacitor))
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">foo</span> ((bar example) baz (quux capacitor))
(launch bar (process-with quux baz)))
</pre>
<h5>Example: Object Inspector</h5>
<pre class="src">
-(<span style="color: #b9d3ee;">defgeneric</span> <span style="color: #87cefa;">example-inspect</span> (instance)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Simple object inspector using CLOS MOP"</span>))
+(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">example-inspect</span> (instance)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Simple object inspector using CLOS MOP"</span>))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">example-inspect</span> ((instance t))
- (format t <span style="color: #b3b3b3;">"Simple Object~% Value: ~S~%"</span> instance))
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">example-inspect</span> ((instance t))
+ (format t <span class="emacs-face-string">"Simple Object~% Value: ~S~%"</span> instance))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">example-inspect</span> ((instance standard-object))
- (<span style="color: #b9d3ee;">let</span> ((class (class-of instance)))
- (format t <span style="color: #b3b3b3;">"Class: ~S, Superclasses: ~S~%"</span>
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">example-inspect</span> ((instance standard-object))
+ (<span class="emacs-face-keyword">let</span> ((class (class-of instance)))
+ (format t <span class="emacs-face-string">"Class: ~S, Superclasses: ~S~%"</span>
(class-name class)
(mapcar #'class-name
(class-precedence-list class)))
- (<span style="color: #b9d3ee;">let</span> ((slot-names (mapcar #'slot-definition-name
+ (<span class="emacs-face-keyword">let</span> ((slot-names (mapcar #'slot-definition-name
(class-slots class))))
- (format t <span style="color: #b3b3b3;">"Slots: ~%~{ ~S~%~}"</span> slot-names)
+ (format t <span class="emacs-face-string">"Slots: ~%~{ ~S~%~}"</span> slot-names)
(inspect-loop slot-names instance #'example-inspect))))
-(<span style="color: #b9d3ee;">defun</span> <span style="color: #87cefa;">inspect-loop</span> (slots instance inspector)
- (format t <span style="color: #b3b3b3;">"Enter slot to inspect or :pop to go up one level: "</span>)
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">inspect-loop</span> (slots instance inspector)
+ (format t <span class="emacs-face-string">"Enter slot to inspect or :pop to go up one level: "</span>)
(finish-output)
- (<span style="color: #b9d3ee;">let*</span> ((slot (read))
+ (<span class="emacs-face-keyword">let*</span> ((slot (read))
(found-slot (member slot slots)))
- (<span style="color: #b9d3ee;">cond</span> (found-slot
+ (<span class="emacs-face-keyword">cond</span> (found-slot
(funcall inspector (slot-value instance slot))
(funcall inspector instance))
- ((eq slot <span style="color: #b0c4de;">:pop</span>) t)
+ ((eq slot <span class="emacs-face-builtin">:pop</span>) t)
(t
- (format t <span style="color: #b3b3b3;">"~S is invalid. Valid slot names: ~S~%"</span>
+ (format t <span class="emacs-face-string">"~S is invalid. Valid slot names: ~S~%"</span>
slot
slots)
(inspect-loop slots instance inspector)))))
details to the program.</p>
<pre class="src">
-<span style="color: #ff7f24;">;;; </span><span style="color: #ff7f24;">This metaclass adds a slot to instances which use it, and so the
-</span><span style="color: #ff7f24;">;;; </span><span style="color: #ff7f24;">system is defined in its own package to avoid name conflicts
-</span>(<span style="color: #b9d3ee;">defpackage</span> <span style="color: #98fb98;">:observer</span>
- (<span style="color: #b0c4de;">:use</span> <span style="color: #b0c4de;">:cl</span> #+sbcl <span style="color: #b0c4de;">:sb-mop</span>)
- (<span style="color: #b0c4de;">:export</span> observable register-observer unregister-observer))
+<span class="emacs-face-comment-delimiter">;;; </span><span class="emacs-face-comment">This metaclass adds a slot to instances which use it, and so the
+</span><span class="emacs-face-comment-delimiter">;;; </span><span class="emacs-face-comment">system is defined in its own package to avoid name conflicts
+</span>(<span class="emacs-face-keyword">defpackage</span> <span class="emacs-face-type">:observer</span>
+ (<span class="emacs-face-builtin">:use</span> <span class="emacs-face-builtin">:cl</span> #+sbcl <span class="emacs-face-builtin">:sb-mop</span>)
+ (<span class="emacs-face-builtin">:export</span> observable register-observer unregister-observer))
-(<span style="color: #b9d3ee;">in-package</span> <span style="color: #b0c4de;">:observer</span>)
+(<span class="emacs-face-keyword">in-package</span> <span class="emacs-face-builtin">:observer</span>)
-<span style="color: #ff7f24;">;;; </span><span style="color: #ff7f24;">Metaclass
-</span>(<span style="color: #b9d3ee;">defclass</span> <span style="color: #98fb98;">observable</span> (standard-class)
+<span class="emacs-face-comment-delimiter">;;; </span><span class="emacs-face-comment">Metaclass
+</span>(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">observable</span> (standard-class)
()
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Metaclass for observable objects"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Metaclass for observable objects"</span>))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">compute-slots</span> ((class observable))
- <span style="color: #b3b3b3;">"Add a slot for storing observers to observable instances"</span>
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">compute-slots</span> ((class observable))
+ <span class="emacs-face-string">"Add a slot for storing observers to observable instances"</span>
(cons (make-instance 'standard-effective-slot-definition
- <span style="color: #b0c4de;">:name</span> 'observers
- <span style="color: #b0c4de;">:initform</span> '(make-hash-table)
- <span style="color: #b0c4de;">:initfunction</span> #'(<span style="color: #b9d3ee;">lambda</span> () (make-hash-table)))
+ <span class="emacs-face-builtin">:name</span> 'observers
+ <span class="emacs-face-builtin">:initform</span> '(make-hash-table)
+ <span class="emacs-face-builtin">:initfunction</span> #'(<span class="emacs-face-keyword">lambda</span> () (make-hash-table)))
(call-next-method)))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">validate-superclass</span> ((class observable)
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">validate-superclass</span> ((class observable)
(super standard-class))
t)
-(<span style="color: #b9d3ee;">defun</span> <span style="color: #87cefa;">register-observer</span> (instance slot-name key closure)
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">register-observer</span> (instance slot-name key closure)
(register-observer-with-class (class-of instance)
instance
slot-name
key
closure))
-(<span style="color: #b9d3ee;">defun</span> <span style="color: #87cefa;">unregister-observer</span> (instance slot-name key)
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">unregister-observer</span> (instance slot-name key)
(unregister-observer-with-class (class-of instance)
instance
slot-name
key))
-(<span style="color: #b9d3ee;">defun</span> <span style="color: #87cefa;">get-observers</span> (instance slot-name)
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">get-observers</span> (instance slot-name)
(get-observers-with-class (class-of instance)
instance
slot-name))
-(<span style="color: #b9d3ee;">defun</span> <span style="color: #87cefa;">add-observer-table</span> (instance slot-name)
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">add-observer-table</span> (instance slot-name)
(setf (gethash slot-name (slot-value instance
'observers))
(make-hash-table)))
-(<span style="color: #b9d3ee;">defgeneric</span> <span style="color: #87cefa;">register-observer-with-class</span> (class instance slot-name key closure))
-(<span style="color: #b9d3ee;">defgeneric</span> <span style="color: #87cefa;">unregister-observer-with-class</span> (class
+(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">register-observer-with-class</span> (class instance slot-name key closure))
+(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">unregister-observer-with-class</span> (class
instance
slot-name
key))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">register-observer-with-class</span> ((class observable)
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">register-observer-with-class</span> ((class observable)
instance
slot-name
key
(setf (gethash key
(or (gethash slot-name
(slot-value instance 'observers))
- <span style="color: #ff7f24;">;; </span><span style="color: #ff7f24;">Lazily add observer hash tables
+ <span class="emacs-face-comment-delimiter">;; </span><span class="emacs-face-comment">Lazily add observer hash tables
</span> (add-observer-table instance slot-name)))
closure))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">unregister-observer-with-class</span> ((class observable)
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">unregister-observer-with-class</span> ((class observable)
instance
slot-name
key)
(remhash key (gethash slot-name
(slot-value instance 'observers))))
-(<span style="color: #b9d3ee;">defmethod</span> <span style="color: #87cefa;">get-observers-with-class</span> ((class observable)
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">get-observers-with-class</span> ((class observable)
instance
slot-name)
(gethash slot-name (slot-value instance 'observers)))
-(<span style="color: #b9d3ee;">defmethod</span> (<span style="color: #87cefa;">setf slot-value-using-class)</span> <span style="color: #b0c4de;">:before</span> (new-value
+(<span class="emacs-face-keyword">defmethod</span> (<span class="emacs-face-function-name">setf slot-value-using-class)</span> <span class="emacs-face-builtin">:before</span> (new-value
(class observable)
instance
slot)
- (<span style="color: #b9d3ee;">let</span> ((slot-name (slot-definition-name slot)))
- (<span style="color: #b9d3ee;">if</span> (not (eq 'observers slot-name))
- (<span style="color: #b9d3ee;">let</span> ((observers
+ (<span class="emacs-face-keyword">let</span> ((slot-name (slot-definition-name slot)))
+ (<span class="emacs-face-keyword">if</span> (not (eq 'observers slot-name))
+ (<span class="emacs-face-keyword">let</span> ((observers
(get-observers instance (slot-definition-name slot))))
- (<span style="color: #b9d3ee;">if</span> observers
- (maphash #'(<span style="color: #b9d3ee;">lambda</span> (key observer)
+ (<span class="emacs-face-keyword">if</span> observers
+ (maphash #'(<span class="emacs-face-keyword">lambda</span> (key observer)
(funcall observer
- (<span style="color: #b9d3ee;">if</span> (slot-boundp instance slot-name)
+ (<span class="emacs-face-keyword">if</span> (slot-boundp instance slot-name)
(slot-value instance slot-name)
nil)
new-value))
</a>
</p>
-<p class="cke-footer">* jeffcovey becomes too groggy to read the directions and becomes
- the year's first nasal spray overdose fatality.
+<p class="cke-footer">Leebert: You don't listen to music.
+Leebert: You listen to the audio equivalent of /dev/urandom
</p>
<p class="cke-timestamp">Last Modified:
September 26, 2008</p>
<meta name="generator" content="muse.el" />
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
-<link rel="stylesheet" href="default.css" media="screen" />
+ <link href="http://feeds.unknownlamer.org/rss/site-updates"
+ rel="alternate" type="application/rss+xml" title="Updates Feed" />
+
+<link rel="stylesheet" href="default.css" />
</head>
<body>
<h1>Roadmap to UCW Codebase</h1>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/standard-classes.lisp">src/rerl/standard-classes.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">standard-application</span> (application)
- ((url-prefix <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:url-prefix</span>
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A string specifying the
+(<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
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 style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:www-roots</span>
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A list of directories (pathname
+ (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
specifiers) or cons-cell (URL-subdir . pathname) to use when looking for static files."</span>)
- (dispatchers <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:dispatchers</span>
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A list of request
+ (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
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 style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The default UCW application class."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">modular-application-mixin</span> ()
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application-mixin</span> ()
()
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Superclass for all application mixins."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Superclass for all application mixins."</span>))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">modular-application</span> (standard-application modular-application-mixin)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application</span> (standard-application modular-application-mixin)
...)
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/modular-application/cookie-module.lisp">src/rerl/modular-application/cookie-module.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">cookie-session-application-module</span> (modular-application-mixin)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Class for applications which use cookies for sesion tracking.
+(<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.
Cookie session applications work exactly like
standard-applications except that when the session is not found
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/modular-application/l10n-module.lisp">src/rerl/modular-application/l10n-module.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">l10n-application-module</span> (modular-application-mixin)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Application class which can handle l10n requests."</span>))
+(<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>))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/modular-application/security-module.lisp">src/rerl/modular-application/security-module.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">secure-application-module</span> (modular-application-mixin)
- (<span style="color: #b0c4de;">:documentation</span>
- <span style="color: #b3b3b3;">"Mixin class for applications which require authorized access.
+(<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.
Concrete application must specialize the following methods:
APPLICATION-FIND-USER (APPLICATION USERNAME)
APPLICATION-CHECK-PASSWORD (APPLICATION USER PASSWORD)
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/standard-component/standard-component.lisp">src/rerl/standard-component/standard-component.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defmacro</span> <span style="color: #87cefa;">defcomponent</span> (name supers slots <span style="color: #98fb98;">&rest</span> options)
- <span style="color: #b3b3b3;">"Macro for defining a component class.
+(<span class="emacs-face-keyword">defmacro</span> <span class="emacs-face-function-name">defcomponent</span> (name supers slots <span class="emacs-face-type">&rest</span> options)
+ <span class="emacs-face-doc">"Macro for defining a component class.
This macro is used to create component classes and provides
options for easily creating the methods which often accompany a
CALL's this component class passing all the arguments passed to
the action as initargs."</span>)
-<span style="color: #ff7f24;">;;; </span><span style="color: #ff7f24;">Extra Slot Options
-</span><span style="color: #b3b3b3;">"Other than the initargs for standard slots the following
+<span class="emacs-face-comment-delimiter">;;; </span><span class="emacs-face-comment">Extra Slot Options
+</span><span class="emacs-face-string">"Other than the initargs for standard slots the following
options can be passed to component slots:
:backtrack [ T | NIL | FUNCTION-NAME ] - Specify that this slot
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/window.lisp">src/components/window.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">window-component</span> ()
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">window-component</span> ()
((content-type)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">simple-window-component</span> (window-component)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">simple-window-component</span> (window-component)
((title)
(stylesheet)
- (javascript <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"List of javascript includes.
+ (javascript <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"An ALIST of the messages to
+ ((messages <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Stateless status bar to display messages."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Stateless status bar to display messages."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">add-message</span> (status-bar msg <span style="color: #98fb98;">&key</span> severity <span style="color: #98fb98;">&allow-other-keys</span>)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Add the message text MSG to STATUS-BAR with
+(<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
severity SEVERITY."</span>))
</pre>
<pre class="src">
(defcomponent status-bar-mixin ()
- ((status-bar <span style="color: #b0c4de;">:accessor</span> status-bar
- <span style="color: #b0c4de;">:initarg</span> status-bar
- <span style="color: #b0c4de;">:component</span> (status-bar))))
+ ((status-bar <span class="emacs-face-builtin">:accessor</span> status-bar
+ <span class="emacs-face-builtin">:initarg</span> status-bar
+ <span class="emacs-face-builtin">:component</span> (status-bar))))
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">show-status-bar</span> ((win status-bar-mixin))
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">show-status-bar</span> ((win status-bar-mixin))
(render (status-bar win)))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">show-message</span> (msg <span style="color: #98fb98;">&key</span> severity <span style="color: #98fb98;">&allow-other-keys</span>)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Show a message in the status bar. Only works if
+(<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
current window is a status-bar-mixin"</span>))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/redirect.lisp">src/components/redirect.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">redirect-component</span> ()
- ((target <span style="color: #b0c4de;">:accessor</span> target <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:target</span>))
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Send a client redirect.
+(<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.
This component, which must be used as a window-component,
redirects the client to the url specified in the target slot. A
<pre class="src">
(defun/cc meta-refresh ()
- <span style="color: #b3b3b3;">"Cause a meta-refresh (a freshly got (GET) url) at this point.
+ <span class="emacs-face-string">"Cause a meta-refresh (a freshly got (GET) url) at this point.
This is useful in order to have a GET url after a form POST's
actions have completed running. The user can then refresh to his
heart's content."</span>)
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/container.lisp">src/components/container.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">container</span> ()
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">container</span> ()
(...)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Allow multiple components to share the same place.
+ (<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.
The container component serves to manage a set of components.
It does not provide any render impementation, which is the
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/container.lisp">src/components/container.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">switching-container</span> ...
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A simple renderable container component.
+(<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.
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 style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Component for providing the user with a standard \"tabbed pane\" GUI widget."</span>))
+ (<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>))
</pre>
<p>Provides a generic tabbed pane that renders a nested div split into a
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/login.lisp">src/components/login.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">login</span> ()
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">login</span> ()
((username) (password) (message))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Generic login (input username and password) component.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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.
no default implementation of check-credentials is
provided. Developers should use sub-classes of login for which
all the required methods have been definined."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
</pre>
<pre class="src">
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">check-credentials</span> (login)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Returns T if LOGIN is valid."</span>))
+(<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>))
(defaction login-successful ((l login))
(answer t))
protocol details follow.</p>
<pre class="src">
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">check-credentials</span> ((self user-login))
- (<span style="color: #00ffff;">let*</span> ((username (value (username self)))
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">check-credentials</span> ((self user-login))
+ (<span class="emacs-face-keyword">let*</span> ((username (value (username self)))
(password (value (password self)))
(user (find-application-user username)))
- (<span style="color: #00ffff;">when</span> (and user (check-user-password user password))
+ (<span class="emacs-face-keyword">when</span> (and user (check-user-password user password))
user)))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">application-find-user</span> (application username)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Find USER by USERNAME for APPLICATION."</span>))
+(<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>))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/error.lisp">src/components/error.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">error-message</span> (simple-window-component)
- ((message <span style="color: #b0c4de;">:accessor</span> message <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:message</span> <span style="color: #b0c4de;">:initform</span> <span style="color: #b3b3b3;">"ERROR [no message specified]"</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Generic component for showing server side
+(<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
error messages."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">error-component</span> (error-message)
- ((condition <span style="color: #b0c4de;">:accessor</span> error.condition <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:condition</span> <span style="color: #b0c4de;">:initform</span> nil)
- (backtrace <span style="color: #b0c4de;">:accessor</span> error.backtrace <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:backtrace</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Generic component for showing server side
+(<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
error conditions. Unlike ERROR-MESSAGE this component also
attempts to display a backtrace."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/message.lisp">src/components/message.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">info-message</span> ()
- ((message <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:message</span> <span style="color: #b0c4de;">:accessor</span> message)
- (ok-text <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:ok-text</span> <span style="color: #b0c4de;">:accessor</span> ok-text <span style="color: #b0c4de;">:initform</span> <span style="color: #b3b3b3;">"Ok."</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Component for showing a message to the user.
+(<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.
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
answer. It follows that if OK-TEXT is NIL this component will
never answer."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/option-dialog.lisp">src/components/option-dialog.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">option-dialog</span> (template-component)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">option-dialog</span> (template-component)
((message) (options) (confirm))
- (<span style="color: #b0c4de;">:default-initargs</span> <span style="color: #b0c4de;">:template-name</span> <span style="color: #b3b3b3;">"ucw/option-dialog.tal"</span>)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Component for querying the user.
+ (<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.
The value of the slot MESSAGE is used as a general heading.
If the CONFIRM slot is T the user will be presented with a second
OPTION-DIALOG asking the user if they are sure they want to
submit that value."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
</pre>
<p>A macro to present an option dialog is provided.</p>
<pre class="src">
-(<span style="color: #00ffff;">defmacro</span> <span style="color: #87cefa;">option-dialog</span> ((message-spec <span style="color: #98fb98;">&rest</span> message-args) <span style="color: #98fb98;">&body</span> options)
+(<span class="emacs-face-keyword">defmacro</span> <span class="emacs-face-function-name">option-dialog</span> ((message-spec <span class="emacs-face-type">&rest</span> message-args) <span class="emacs-face-type">&body</span> options)
...)
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/form.lisp">src/components/form.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">form-field</span> ()
- ((validators <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"List of validators which will be
+(<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
applied to this field."</span>)
- (initially-validate <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"When non-NIL the
+ (initially-validate <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"When non-NIL the
validators will be run as soon as the page
is rendered."</span>)))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">value</span> (form-field)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The lispish translated value that represents the form-field."</span>))
-
-(<span style="color: #00ffff;">defgeneric</span> (<span style="color: #87cefa;">setf value)</span> (new-value form-field)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Set the value of a form-field with translation to client."</span>))
-
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">generic-html-input</span> (form-field html-element)
- ((client-value <span style="color: #b0c4de;">:accessor</span> client-value <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:client-value</span>
- <span style="color: #b0c4de;">:initform</span> <span style="color: #b3b3b3;">""</span>
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The string the client submitted along with this field."</span>)
- (name <span style="color: #b0c4de;">:accessor</span> name <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:name</span> <span style="color: #b0c4de;">:initform</span> nil)
- (accesskey <span style="color: #b0c4de;">:accessor</span> accesskey <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:accesskey</span> <span style="color: #b0c4de;">:initform</span> nil)
- (tooltip <span style="color: #b0c4de;">:accessor</span> tooltip <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:tooltip</span> <span style="color: #b0c4de;">:initform</span> nil)
- (tabindex <span style="color: #b0c4de;">:accessor</span> tabindex <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:tabindex</span> <span style="color: #b0c4de;">:initform</span> nil))
- (<span style="color: #b0c4de;">:default-initargs</span> <span style="color: #b0c4de;">:dom-id</span> (js:gen-js-name-string <span style="color: #b0c4de;">:prefix</span> <span style="color: #b3b3b3;">"_ucw_"</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-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">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>)
+ (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)
+ (tabindex <span class="emacs-face-builtin">:accessor</span> tabindex <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:tabindex</span> <span class="emacs-face-builtin">:initform</span> nil))
+ (<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:dom-id</span> (js:gen-js-name-string <span class="emacs-face-builtin">:prefix</span> <span class="emacs-face-string">"_ucw_"</span>)))
</pre>
<p>Fields are rendered into the extended <code><ucw:input</code> yaclml tag which
Lisp value associated with it.</p>
<pre class="src">
-(deftag-macro <ucw:input (<span style="color: #98fb98;">&attribute</span> accessor action reader writer name id (default nil)
- <span style="color: #98fb98;">&allow-other-attributes</span> others)
- <span style="color: #b3b3b3;">"Generic INPUT tag replacement.
+(deftag-macro <ucw:input (<span class="emacs-face-type">&attribute</span> accessor action reader writer name id (default nil)
+ <span class="emacs-face-type">&allow-other-attributes</span> others)
+ <span class="emacs-face-string">"Generic INPUT tag replacement.
If the ACCESSOR attribute is specified then it must be a PLACE
and it's value will be used to fill the input, when the form is
list.</p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">validator</span> ()
- ((message <span style="color: #b0c4de;">:accessor</span> message <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:message</span> <span style="color: #b0c4de;">:initform</span> nil)))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">validator</span> ()
+ ((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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">validate</span> (field validator)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Validate a form-field with a validator."</span>))
+(<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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">javascript-check</span> (field validator)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Generate javascript code for checking FIELD against VALIDATOR.
+(<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.
This is the convenience entry point to generate-javascript-check,
methods defined on this generic funcition should return a list of
javascript code (as per parenscript) which tests against the
javascript variable value."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">javascript-invalid-handler</span> (field validator)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"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-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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">javascript-valid-handler</span> (field validator)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Generate the javascript body for when a field is valid."</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>))
</pre>
<h5>Standard Form Fields</h5>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">string-field</span> (generic-html-input)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">string-field</span> (generic-html-input)
((input-size) (maxlength)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">password-field</span> (string-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">number-field</span> (string-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">integer-field</span> (number-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">password-field</span> (string-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">number-field</span> (string-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">integer-field</span> (number-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">in-field-string-field</span> (string-field)
- ((in-field-label <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"This slot, if non-NIL, will be
+(<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
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
field is overidden by an initial :client-value
argument."</span>)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">textarea-field</span> (generic-html-input)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">textarea-field</span> (generic-html-input)
((rows) (cols)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">date-field</span> (form-field widget-component)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">date-field</span> (form-field widget-component)
((year) (month) (day)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">dmy-date-field</span> (date-field)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Date fields which orders the inputs day/month/year"</span>))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">mdy-date-field</span> (date-field))
+(<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-keyword">defclass</span> <span class="emacs-face-type">mdy-date-field</span> (date-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">select-field</span> (generic-html-input)
- ((data-set <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The values this select chooses
+(<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
from."</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Form field used for selecting one value from a
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Form field used for selecting one value from a
list of available options."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">render-value</span> (select-field value)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"This function will be passed each value in the field's
+(<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
data-set and must produce the body of the corresponding
<ucw:option tag."</span>))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">mapping-select-field</span> (select-field)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Class used when we want to chose the values of
+(<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
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 style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">hash-table-select-field</span> (mapping-select-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">alist-select-field</span> (mapping-select-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">plist-select-field</span> (mapping-select-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">hash-table-select-field</span> (mapping-select-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">alist-select-field</span> (mapping-select-field))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">plist-select-field</span> (mapping-select-field))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">radio-group</span> (generic-html-input)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">radio-group</span> (generic-html-input)
((value-widgets)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">radio-button</span> (generic-html-input)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">radio-button</span> (generic-html-input)
((value)
- (group <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The RADIO-GROUP this button is a part
+ (group <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The RADIO-GROUP this button is a part
of."</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A widget representing a single radio
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget representing a single radio
button. Should be used in conjunction with a RADIO-GROUP."</span>))
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">add-value</span> ((group radio-group) value)
- <span style="color: #b3b3b3;">"Adds radio-button with value to 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 style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">checkbox-field</span> (generic-html-input))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">file-upload-field</span> (generic-html-input))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">submit-button</span> (generic-html-input)
+(<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))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">submit-button</span> (generic-html-input)
((label)))
</pre>
be set to the MIME type of the file being uploaded.</p>
<pre class="src">
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">mime-part-headers</span> (mime-part)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Returns an alist of the headers of MIME-PART.
+(<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.
The alist must be of the form (NAME . VALUE) where both NAME and
VALUE are strings."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">mime-part-body</span> (mime-part)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Returns the body of MIME-PART."</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>))
</pre>
<h5>Standard Validators</h5>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">not-empty-validator</span> (validator))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">not-empty-validator</span> (validator))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">value-validator</span> (validator)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Validators that should only be applied if there is a value.
+(<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.
That is, they always succeed on nil."</span>))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">length-validator</span> (value-validator)
- ((min-length <span style="color: #b0c4de;">:accessor</span> min-length <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:min-length</span>
- <span style="color: #b0c4de;">:initform</span> nil)
- (max-length <span style="color: #b0c4de;">:accessor</span> max-length <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:max-length</span>
- <span style="color: #b0c4de;">:initform</span> nil)))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">length-validator</span> (value-validator)
+ ((min-length <span class="emacs-face-builtin">:accessor</span> min-length <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:min-length</span>
+ <span class="emacs-face-builtin">:initform</span> nil)
+ (max-length <span class="emacs-face-builtin">:accessor</span> max-length <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:max-length</span>
+ <span class="emacs-face-builtin">:initform</span> nil)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">string=-validator</span> (validator)
- ((other-field <span style="color: #b0c4de;">:accessor</span> other-field <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:other-field</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Ensures that a field is string= to another one."</span>))
+(<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 style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">regex-validator</span> (value-validator)
- ((regex <span style="color: #b0c4de;">:accessor</span> regex <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:regex</span> <span style="color: #b0c4de;">:initform</span> nil)))
+(<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)))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">e-mail-address-validator</span> (regex-validator))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">e-mail-address-validator</span> (regex-validator))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">phone-number-validator</span> (regex-validator))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">phone-number-validator</span> (regex-validator))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">is-a-number-validator</span> (value-validator))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">is-an-integer-validator</span> (is-a-number-validator))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">is-a-number-validator</span> (value-validator))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">is-an-integer-validator</span> (is-a-number-validator))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">number-range-validator</span> (is-a-number-validator)
- ((min-value <span style="color: #b0c4de;">:accessor</span> min-value <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:min-value</span> <span style="color: #b0c4de;">:initform</span> nil)
- (max-value <span style="color: #b0c4de;">:accessor</span> max-value <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:max-value</span> <span style="color: #b0c4de;">:initform</span> nil)))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">number-range-validator</span> (is-a-number-validator)
+ ((min-value <span class="emacs-face-builtin">:accessor</span> min-value <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:min-value</span> <span class="emacs-face-builtin">:initform</span> nil)
+ (max-value <span class="emacs-face-builtin">:accessor</span> max-value <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:max-value</span> <span class="emacs-face-builtin">:initform</span> nil)))
</pre>
<pre class="src">
(defcomponent simple-form (html-element)
- ((submit-method <span style="color: #b0c4de;">:accessor</span> submit-method
- <span style="color: #b0c4de;">:initform</span> <span style="color: #b3b3b3;">"post"</span>
- <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:submit-method</span>)
- (dom-id <span style="color: #b0c4de;">:accessor</span> dom-id
- <span style="color: #b0c4de;">:initform</span> (js:gen-js-name-string <span style="color: #b0c4de;">:prefix</span> <span style="color: #b3b3b3;">"_ucw_simple_form_"</span>)
- <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:dom-id</span>))
- (<span style="color: #b0c4de;">:default-initargs</span> <span style="color: #b0c4de;">:dom-id</span> <span style="color: #b3b3b3;">"ucw-simple-form"</span>))
+ ((submit-method <span class="emacs-face-builtin">:accessor</span> submit-method
+ <span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">"post"</span>
+ <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:submit-method</span>)
+ (dom-id <span class="emacs-face-builtin">:accessor</span> dom-id
+ <span class="emacs-face-builtin">:initform</span> (js:gen-js-name-string <span class="emacs-face-builtin">:prefix</span> <span class="emacs-face-string">"_ucw_simple_form_"</span>)
+ <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:dom-id</span>))
+ (<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:dom-id</span> <span class="emacs-face-string">"ucw-simple-form"</span>))
</pre>
<p>Infrastructure for loading TAL templates as a view of a component.</p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">template-component</span> (component))
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">template-component</span> (component))
(defcomponent simple-template-component (template-component)
- ((environment <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:environment</span> <span style="color: #b0c4de;">: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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">template-component-environment</span> (component)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Create the TAL environment for rendering COMPONENT's template.
+(<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.
Methods defined on this generic function must return a TAL
environment: a list of TAL binding sets (see the documentation
for YACLML:MAKE-STANDARD-ENVIRONMENT for details on TAL
environments.)"</span>)
- (<span style="color: #b0c4de;">:method-combination</span> nconc))
+ (<span class="emacs-face-builtin">:method-combination</span> nconc))
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">template-component-environment</span> nconc ((component template-component))
- <span style="color: #b3b3b3;">"Create the basic TAL environment.
+(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">template-component-environment</span> nconc ((component template-component))
+ <span class="emacs-face-string">"Create the basic TAL environment.
Binds the symbol ucw:component to the component object itself,
also puts the object COMPONENT on the environment (after the
visable."</span>
(make-standard-environment `((component . ,component)) component))
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">render</span> ((component template-component))
- <span style="color: #b3b3b3;">"Render a template based 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.
Calls the component's template. The name of the template is the
value returned by the generic function
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/range-view.lisp">src/components/range-view.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">range-view</span> (template-component)
- (<span style="color: #b0c4de;">:default-initargs</span> <span style="color: #b0c4de;">:template-name</span> <span style="color: #b3b3b3;">"ucw/range-view.tal"</span>)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Component for showing the user a set of data one \"window\" at a time.
+(<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.
The data set is presented one \"window\" at a time with links to
the the first, previous, next and last window. Each window shows
In order to change the rendering of the single elements of a
range view developer's should create a sub class of RANGE-VIEW
and define their RENDER-RANGE-VIEW-ITEM methods on that."</span>)
- (<span style="color: #b0c4de;">:metaclass</span> standard-component-class))
+ (<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
</pre>
<pre class="src">
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">render-range-view-item</span> (range-view item)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Render a single element of a range-view."</span>)
- (<span style="color: #b0c4de;">:method</span> ((range-view range-view) (item t))
- <span style="color: #b3b3b3;">"Standard implementation of RENDER-RANGE-VIEW-ITEM. Simply
+(<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">: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>
- (<span style="color: #00ffff;">declare</span> (ignore range-view))
+ (<span class="emacs-face-keyword">declare</span> (ignore range-view))
(<:as-html item)))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/html-element.lisp">src/components/html-element.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">html-element</span> (component)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">html-element</span> (component)
((css-class)
(dom-id)
(css-style)
(extra-tags)
(events))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"An HTML element.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An HTML element.
HTML elements control aspects that are relevant to almost all tags.
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/widget.lisp">src/components/widget.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">widget-component</span> (html-element)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">widget-component</span> (html-element)
()
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A widget which should be wrapped in a <div>."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget which should be wrapped in a <div>."</span>))
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">inline-widget-component</span> (html-element)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">inline-widget-component</span> (html-element)
()
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A widget which should be wrapped in <span> and not <div>"</span>))
+ (<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 style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">render</span> <span style="color: #b0c4de;">:wrap-around</span> ((widget widget-component)))
-(<span style="color: #00ffff;">defmethod</span> <span style="color: #87cefa;">render</span> <span style="color: #b0c4de;">:wrap-around</span> ((widget inline-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 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>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/components/task.lisp">src/components/task.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">task-component</span> (standard-component)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">task-component</span> (standard-component)
(...)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A controller for a single task or operation to
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"action which gets called automatically when
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #b0c4de;">:accessor</span> cached-output <span style="color: #b0c4de;">:initform</span> nil
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"A string holding the output to
+ ((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
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 style="color: #b0c4de;">:accessor</span> timeout <span style="color: #b0c4de;">:initarg</span> <span style="color: #b0c4de;">:timeout</span>
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"An value specifying how often this
+ (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
component needs to be refreshed. The exact
interpretation of the value depends on the type of
caching used class."</span>))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Component which caches its output.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">component-dirty-p</span> (component)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Returns T is COMPONENT's cache is invalid."</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 style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">update-cache</span> (component)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Update COMPONENT's cache variables after a refresh."</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>))
(defcomponent timeout-cache-component (cached-component)
- ((last-refresh <span style="color: #b0c4de;">:accessor</span> last-refresh <span style="color: #b0c4de;">:initform</span> nil
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"The time, exrpessed as a
+ ((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
universal time, when the component was last rendered."</span>))
- (<span style="color: #b0c4de;">:default-initargs</span>
- <span style="color: #b0c4de;">:timeout</span> (* 30 60 60))
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Render the component at most every TIMEOUT seconds."</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>))
(defcomponent num-hits-cache-component (cached-component)
- ((hits-since-refresh <span style="color: #b0c4de;">:accessor</span> hits-since-refresh
- <span style="color: #b0c4de;">:initform</span> nil
- <span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Number of views since last refresh."</span>))
- (<span style="color: #b0c4de;">:default-initargs</span> <span style="color: #b0c4de;">:timeout</span> 10)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Render the component every TIMEOUT views."</span>))
+ ((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">: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>))
</pre>
<p>Subclass and override <code>component-dirty-p</code> to do something useful
just call <code>render</code> on it instead.</p>
<pre class="src">
-(<span style="color: #00ffff;">defmacro</span> <span style="color: #87cefa;">call</span> (component-type <span style="color: #98fb98;">&rest</span> component-init-args)
- <span style="color: #b3b3b3;">"Stop the execution of the current action and pass control to
+(<span class="emacs-face-keyword">defmacro</span> <span class="emacs-face-function-name">call</span> (component-type <span class="emacs-face-type">&rest</span> component-init-args)
+ <span class="emacs-face-doc">"Stop the execution of the current action and pass control to
a freshly created component of type COMPONENT-TYPE.
COMPONENT-INIT-ARGS are passed directly to the underlying
This macro assumes that the lexcial variable UCW:SELF is bound to
the calling component."</span>)
-(answer VAL) <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">answer parent component ONLY IN ACTIONS
+(answer VAL) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">answer parent component ONLY IN ACTIONS
</span>
-(ok SELF VAL) <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">Used to answer a component anywhere and what answer
-</span> <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">expands into
+(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
</span>
-(jump COMPONENT-NAME <span style="color: #98fb98;">&REST</span> ARGS) <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">is similar to call, but replaces
-</span> <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">the current component with the new
-</span> <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">one and drops any backtracks (back
-</span> <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">button will no longer work)
+(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)
</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 style="color: #ff7f24;">; </span><span style="color: #ff7f24;">(roughly) expands into
+ <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">(roughly) expands into
</span>(defmethod/cc NAME (first ...)
- (<span style="color: #00ffff;">let</span> ((self first))
+ (<span class="emacs-face-keyword">let</span> ((self first))
...))
</pre>
Entry Points</h4>
<pre class="src">
-(defentry-point url (<span style="color: #b0c4de;">:application</span> APPLICATION
- <span style="color: #b0c4de;">:class</span> DISPATCHER-CLASS)
- (PARAM1 ... PARAMN) <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">GET / POST vars, bound in body
+(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
</span> body)
</pre>
url audio.ucw?file=FOO is used.</p>
<pre class="src">
-(defentry-point <span style="color: #b3b3b3;">"^(audio.ucw|)$"</span> (<span style="color: #b0c4de;">:application</span> *golf-test-app*
- <span style="color: #b0c4de;">:class</span> regexp-dispatcher)
+(defentry-point <span class="emacs-face-string">"^(audio.ucw|)$"</span> (<span class="emacs-face-builtin">:application</span> *golf-test-app*
+ <span class="emacs-face-builtin">:class</span> regexp-dispatcher)
(file)
(call 'audio-file-window
- <span style="color: #b0c4de;">:audio-file</span> (make-instance 'audio-file
- <span style="color: #b0c4de;">:type</span> <span style="color: #b0c4de;">:vorbis</span>
- <span style="color: #b0c4de;">:data</span> (file->bytes (open
+ <span class="emacs-face-builtin">:audio-file</span> (make-instance 'audio-file
+ <span class="emacs-face-builtin">:type</span> <span class="emacs-face-builtin">:vorbis</span>
+ <span class="emacs-face-builtin">:data</span> (file->bytes (open
file
- <span style="color: #b0c4de;">:element-type</span> 'unsigned-byte)))))
+ <span class="emacs-face-builtin">:element-type</span> 'unsigned-byte)))))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/standard-dispatcher.lisp">src/rerl/standard-dispatcher.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">matcher-match</span> (matcher application context)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Abstract method for subclasses to implement a
+(<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
matcher. This method would return multiple-values according to
matcher internal nature.
that case methods defined on this function must not modify
CONTEXT's application nor rebind *context*."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">handler-handle</span> (handler application context matcher-result)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Abstract function for handler classes to
+(<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
implement in order to handle a request matched by relevant
matcher.
These methods may modify context as they wish since they'r
matched, request will be closed after this method is run."</span>))
-(<span style="color: #00ffff;">defgeneric</span> <span style="color: #87cefa;">dispatch</span> (dispatcher application context)
- (<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"Entry point into a dispatcher. Must return T
+(<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
if the context has been handled or NIL if it hasn't.
No methods defined on this function may rebind *context*, nor
</pre>
<pre class="src">
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">my-matcher</span> (abstract-matcher) ...)
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">my-handler</span> (abstract-handler) ...)
-(<span style="color: #00ffff;">defclass</span> <span style="color: #98fb98;">my-dispatcher</span> (abstract-dispatcher my-matcher my-handler)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">my-matcher</span> (abstract-matcher) ...)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">my-handler</span> (abstract-handler) ...)
+(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">my-dispatcher</span> (abstract-dispatcher my-matcher my-handler)
...)
</pre>
Simple Dispatcher</h4>
<pre class="src">
-(<span style="color: #b0c4de;">:documentation</span> <span style="color: #b3b3b3;">"This class of dispatchers avoids all of UCW's
+(<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This class of dispatchers avoids all of UCW's
standard call/cc (and therefore frame/backtracking/component)
mechanism.
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/control.lisp">src/control.lisp</a></p>
<pre class="src">
-(<span style="color: #00ffff;">defun</span> <span style="color: #87cefa;">create-server</span> (<span style="color: #98fb98;">&key</span>
- (backend `(,*ucw-backend-type* <span style="color: #b0c4de;">:host</span> ,*ucw-backend-host*
- <span style="color: #b0c4de;">:port</span> ,*ucw-backend-port*))
+(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">create-server</span> (<span class="emacs-face-type">&key</span>
+ (backend `(,*ucw-backend-type* <span class="emacs-face-builtin">:host</span> ,*ucw-backend-host*
+ <span class="emacs-face-builtin">:port</span> ,*ucw-backend-port*))
(applications *ucw-applications*)
(start-p t)
(server-class *ucw-server-class*)
(log-root-directory (truename *ucw-log-root-directory*))
(log-level *ucw-log-level*))
- <span style="color: #b3b3b3;">"Creates and returns a UCW server according to SERVER-CLASS, HOST and
+ <span class="emacs-face-doc">"Creates and returns a UCW server according to SERVER-CLASS, HOST and
PORT. Affects *DEFAULT-SERVER*.
BACKEND is a list of (BACKEND-TYPE &rest INITARGS). BACKEND-TYPE
Logs are generated in verbosity defined by LOG-LEVEL and directed to
LOG-ROOT-DIRECTORY if defined."</span>
...
- server) <span style="color: #ff7f24;">; </span><span style="color: #ff7f24;">return server, naturally
+ server) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">return server, naturally
</span></pre>
<pre class="src">
(defaction call-inspector ((component component) datum)
- <span style="color: #b3b3b3;">"Call an inspector for DATUM on the component COMPONENT."</span>
- (call 'ucw-inspector <span style="color: #b0c4de;">:datum</span> datum))
+ <span class="emacs-face-string">"Call an inspector for DATUM on the component COMPONENT."</span>
+ (call 'ucw-inspector <span class="emacs-face-builtin">:datum</span> datum))
</pre>
most unix things that don't want the <code>/</code> at the end of the name).</p>
<pre class="src">
-<span style="color: #b0c4de;">:www-roots</span> (list '(<span style="color: #b3b3b3;">"dojo/"</span> .
- #P<span style="color: #b3b3b3;">"/home/clinton/src/ucw/darcs/ucw_dev/wwwroot/dojo/"</span>))
+<span class="emacs-face-builtin">:www-roots</span> (list '(<span class="emacs-face-string">"dojo/"</span> .
+ #P<span class="emacs-face-string">"/home/clinton/src/ucw/darcs/ucw_dev/wwwroot/dojo/"</span>))
</pre>
</a>
</p>
-<p class="cke-footer"> How can you accept social supression
- This weak state of mind in our time
- I demand release from hypocrisy
- I'd rather die than be held down, forced down
-
+<p class="cke-footer">And did those feet in ancient times
+Walk bare upon these lonely streets like mine?
+Does God watch us from that penthouse high above
+His children down below who live on air and love?
</p>
<p class="cke-timestamp">Last Modified:
March 13, 2008</p>