(in-package :ucw-standard) (defun make-demo-backend () (make-backend :httpd :host "localhost" :port 9090)) (defclass demo-server (standard-server) ()) (defun make-demo-server () (make-instance 'demo-server :backend (make-demo-backend))) (defvar *demo-ucw-server* (make-demo-server)) (defclass demo-application (standard-application) () (:default-initargs :url-prefix "/demo/")) (defparameter *demo-ucw-application* (make-instance 'demo-application)) (register-application *demo-ucw-server* *demo-ucw-application*) (defentry-point "index.ucw" (:application *demo-ucw-application*) () (call 'demo-window)) (defun startup-demo () (startup-server *demo-ucw-server*)) (defun shutdown-demo () (shutdown-server *demo-ucw-server*)) (defcomponent demo-window (standard-window-component) () (:default-initargs :body (make-instance 'demo-component))) (define-symbol-macro $window (context.window-component *context*)) (define-symbol-macro $body (window-body $window)) (defcomponent demo-component () ((test :component demo-simple-action :accessor test) (component :component demo-render :accessor component))) (define-symbol-macro $test (test $body)) (define-symbol-macro $component (component $body)) (defmethod render ((self demo-component)) (<:H1 "Lisp On Lines Web test suite") (render (slot-value self 'test)) (<:div :style "border:1px solid black;" (render (slot-value self 'component)))) (defcomponent demo-render () ((message :initform "test" :accessor message :initarg :message))) (defmethod render ((self demo-render)) (<:h3 :id "test-render" (<:as-html (format nil "Hello ~A." (message self))))) (defcomponent demo-simple-action () ()) (defmethod render ((self demo-simple-action)) (<:ul (<:li (