[claw-cvs] r70 - in trunk/main/claw-html.dojo: . src src/js
achiumenti at common-lisp.net
achiumenti at common-lisp.net
Tue Aug 26 10:49:31 UTC 2008
Author: achiumenti
Date: Tue Aug 26 06:49:29 2008
New Revision: 70
Added:
trunk/main/claw-html.dojo/
trunk/main/claw-html.dojo/README
trunk/main/claw-html.dojo/claw-html.dojo.asd
trunk/main/claw-html.dojo/src/
trunk/main/claw-html.dojo/src/dijit.lisp
trunk/main/claw-html.dojo/src/djbody.lisp
trunk/main/claw-html.dojo/src/djbutton.lisp
trunk/main/claw-html.dojo/src/djclaw.lisp
trunk/main/claw-html.dojo/src/djcolorpalette.lisp
trunk/main/claw-html.dojo/src/djcontainers.lisp
trunk/main/claw-html.dojo/src/djcontent-pane.lisp
trunk/main/claw-html.dojo/src/djdialog.lisp
trunk/main/claw-html.dojo/src/djform.lisp
trunk/main/claw-html.dojo/src/djlayout.lisp
trunk/main/claw-html.dojo/src/djlink.lisp
trunk/main/claw-html.dojo/src/djmenu.lisp
trunk/main/claw-html.dojo/src/djprogressbar.lisp
trunk/main/claw-html.dojo/src/djtitlepane.lisp
trunk/main/claw-html.dojo/src/djtoolbar.fasl (contents, props changed)
trunk/main/claw-html.dojo/src/djtoolbar.lisp
trunk/main/claw-html.dojo/src/djtooltip.lisp
trunk/main/claw-html.dojo/src/djtree.lisp
trunk/main/claw-html.dojo/src/djwidget.lisp
trunk/main/claw-html.dojo/src/js/
trunk/main/claw-html.dojo/src/js/ActionLink.js
trunk/main/claw-html.dojo/src/js/Dialog.js
trunk/main/claw-html.dojo/src/js/Editor.js
trunk/main/claw-html.dojo/src/js/Editor2.js
trunk/main/claw-html.dojo/src/js/FloatingContent.js
trunk/main/claw-html.dojo/src/js/Form.js
trunk/main/claw-html.dojo/src/js/HardLink.js
trunk/main/claw-html.dojo/src/js/Rounded.js
trunk/main/claw-html.dojo/src/js/claw.js
trunk/main/claw-html.dojo/src/misc.lisp
trunk/main/claw-html.dojo/src/packages.lisp
Log:
CLAW dojo integration
Added: trunk/main/claw-html.dojo/README
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/README Tue Aug 26 06:49:29 2008
@@ -0,0 +1,6 @@
+to use claw-dojo library download dojo at
+
+http://download.dojotoolkit.org/release-1.1.1/dojo-release-1.1.1.tar.gz
+
+Then unpack it into the src directory and rename the extacted directory
+"dojo-release-1.1.1" from to "dojotoolkit"
\ No newline at end of file
Added: trunk/main/claw-html.dojo/claw-html.dojo.asd
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/claw-html.dojo.asd Tue Aug 26 06:49:29 2008
@@ -0,0 +1,54 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/claw-dojo.asd $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(asdf:defsystem :claw-html.dojo
+ :name "claw-html.dojo"
+ :author "Andrea Chiumenti"
+ :description "claw dojo-1.1.0 integration"
+ :depends-on (:claw :claw-html :parenscript)
+ :components ((:module src
+ :components ((:file "packages")
+ (:file "misc" :depends-on ("packages"))
+ (:file "djlink" :depends-on ("misc"))
+ (:file "djwidget" :depends-on ("misc"))
+ (:file "djcontent-pane" :depends-on ("misc"))
+ (:file "djbody" :depends-on ("djcontent-pane"))
+ (:file "dijit" :depends-on ("djwidget"))
+ (:file "djclaw" :depends-on ("djwidget"))
+ (:file "djform" :depends-on ("djwidget"))
+ (:file "djbutton" :depends-on ("djwidget"))
+ (:file "djmenu" :depends-on ("djwidget"))
+ (:file "djdialog" :depends-on ("djwidget"))
+ (:file "djcolorpalette" :depends-on ("djwidget"))
+ (:file "djprogressbar" :depends-on ("djwidget"))
+ (:file "djtitlepane" :depends-on ("djwidget"))
+ (:file "djtree" :depends-on ("djwidget"))
+ (:file "djlayout" :depends-on ("djwidget"))
+ (:file "djtooltip" :depends-on ("djwidget"))
+ (:file "djtoolbar" :depends-on ("djwidget"))))))
Added: trunk/main/claw-html.dojo/src/dijit.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/dijit.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,35 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/dijit.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djbackground-iframe (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.BackgroundIframe component. More info at http://api.dojotoolkit.org/"))
Added: trunk/main/claw-html.dojo/src/djbody.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djbody.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,121 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djbody.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defgeneric scripts-content-pane> (&rest rest))
+
+(defclass djbody (wcomponent)
+ ((class :initarg :class
+ :reader djbody-class
+ :documentation "The css class of the <body> tag element")
+ (theme :initarg :theme
+ :reader djbody-theme
+ :documentation "The theme name. See http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/themes-and-design for more details")
+ (themes-url :initarg :themes-url
+ :reader djbody-themes-url
+ :documentation "The url that contains dojo themes")
+ (parse-on-load-p :initarg :parse-on-load
+ :reader djbody-parse-on-load-p
+ :documentation "Shoul always be true")
+ (debugp :initarg :is-debug
+ :reader djbody-debugp
+ :documentation "Set to true if you want to debug dojo calls")
+ (load-dojo-js :initarg :load-dojo-js
+ :reader load-dojo-js
+ :documentation "When not nil it loads the dojo.js file with a <script> tag")
+ (djconfig :initarg :djconfig
+ :reader djbody-djconfig
+ :documentation "Additional dojo configurations"))
+ (:metaclass metacomponent)
+ (:default-initargs :class "" :theme "tundra"
+ :themes-url (format nil "~a/dojotoolkit/dijit/themes/" (clawserver-base-path *clawserver*))
+ :parse-on-load "true"
+ :load-dojo-js t
+ :is-debug nil
+ :djconfig nil)
+ (:documentation "This class provide a <body> tag that is enabled for dojo."))
+
+(let ((class (find-class 'djbody)))
+ (closer-mop:ensure-finalized class)
+ (setf (documentation (find-symbol (format nil "~a>" (class-name class))) 'function)
+ (format nil "Description: ~a~%Parameters:~%~a~a~%~%~a"
+ "Function that instantiates a DJBODY component and renders a html <body> tag enabled for dojo."
+ *id-and-static-id-description*
+ (describe-html-attributes-from-class-slot-initargs class)
+ (describe-component-behaviour class))))
+
+(defmethod htcomponent-script-files ((o djbody))
+ (let ((parse-on-load (djbody-parse-on-load-p o))
+ (is-debug (djbody-debugp o))
+ (djconfig (djbody-djconfig o)))
+ (when (load-dojo-js o)
+ (script> :type "text/javascript"
+ :src (format nil "~a/dojotoolkit/dojo/dojo.js" (clawserver-base-path *clawserver*))
+ :djconfig (if (null djconfig)
+ (format nil
+ "parseOnLoad:~a,usePlainJson:true,isDebug:~a"
+ parse-on-load is-debug)
+ (format nil
+ "parseOnLoad:~a,usePlainJson:true,~a,isDebug:~a"
+ parse-on-load djconfig is-debug))))))
+
+
+(defmethod htcomponent-stylesheet-files ((o djbody))
+ (let ((theme (djbody-theme o)))
+ (list
+ (format nil "~a/dojotoolkit/dojo/resources/dojo.css" (clawserver-base-path *clawserver*))
+ (format nil "~a/dojotoolkit/dijit/themes/dijit.css" (clawserver-base-path *clawserver*))
+ (format nil "~a~a/~a.css" (djbody-themes-url o) theme theme))))
+
+
+(defmethod djbody-cssclass ((o djbody))
+ (format nil "~a ~a" (djbody-theme o) (djbody-class o)))
+
+(defmethod wcomponent-template ((obj djbody))
+ (let ((id "scripts-content-pane")
+ (pobj (htcomponent-page obj))
+ (attributes (append (list :class (djbody-cssclass obj))
+ (wcomponent-informal-parameters obj))))
+ (build-tagf "body" 'tag nil
+ attributes
+ (htcomponent-body obj)
+ (djxcontent-pane> :static-id id
+ (script> :type "text/javascript"
+ (page-body-init-scripts pobj))))))
+
+
+(defmethod wcomponent-after-prerender ((obj djbody) (pobj page))
+ (let ((scripts (page-instance-initscripts pobj)))
+ ;;remember that scripts are in reverse order
+ (when scripts
+ (push "});" (page-instance-initscripts pobj))
+ (nconc scripts (list "dojo.addOnLoad\(function\() {")))))
+
+
Added: trunk/main/claw-html.dojo/src/djbutton.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djbutton.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,88 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djbutton.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djbutton (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.Button component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.Button"))
+
+(defclass djdrop-down-button (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.DropDownButton component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.DropDownButton" :dojo-require (list "dijit.form.Button")))
+
+
+(defclass djcombo-button (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.ComboButton component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.ComboButton" :dojo-require (list "dijit.form.Button")))
+
+
+(defclass djtoggle-button (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.ToggleButton component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.ToggleButton" :dojo-require (list "dijit.form.Button")))
+
+
+;;;--------------------------------------------------------
+(defclass djsubmit-button (csubmit)
+ ((form :initform nil
+ :accessor djsubmit-button-form))
+ (:metaclass metacomponent)
+ (:documentation "This class is used to render dijit.form.Button that incorporates the logic to be included inside a CFORM component."))
+
+(defmethod wcomponent-template ((obj djsubmit-button))
+ (let* ((id (htcomponent-client-id obj))
+ (value (csubmit-value obj)))
+ (djbutton> :static-id id
+ (wcomponent-informal-parameters obj)
+ value)))
+
+(defmethod wcomponent-before-prerender ((obj djsubmit-button) (page page))
+ (setf (djsubmit-button-form obj) (page-current-form page)))
+
+(defmethod wcomponent-before-render ((obj djsubmit-button) (page page))
+ (setf (djsubmit-button-form obj) (page-current-form page)))
+
+(defmethod htcomponent-instance-initscript ((obj djsubmit-button))
+ (let ((id (htcomponent-client-id obj))
+ (form-id (htcomponent-client-id (djsubmit-button-form obj))))
+ (ps*
+ `(dojo.connect (dijit.by-id ,id)
+ "onClick"
+ (lambda (e) (let ((the-form (dijit.by-id ,form-id)))
+ (unless the-form
+ (setf the-form (dojo.by-id ,form-id)))
+ (.submit the-form)))))))
Added: trunk/main/claw-html.dojo/src/djclaw.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djclaw.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,61 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djclaw.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass _djfloating-content (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo claw.FloatingContent component.")
+ (:default-initargs :dojo-type "claw.FloatingContent"))
+
+(defclass djfloating-content (wcomponent)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.FloatingContent component."))
+
+(defmethod wcomponent-template ((obj djfloating-content))
+ (let ((id (htcomponent-client-id obj)))
+ (list
+ (djhard-link> :id id :ref-id id)
+ (_djfloating-content> :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj)))))
+
+(defclass djhard-link (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo claw.HardLink component.")
+ (:default-initargs :dojo-type "claw.HardLink"))
+
+(defclass djrounded (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo claw.Rounded component. Provide bgImg and bgImgAlt \(for msie <= 6)")
+ (:default-initargs :dojo-type "claw.Rounded"))
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/djcolorpalette.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djcolorpalette.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,37 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djcolorpalette.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djcolor-palette (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.ColorPalette. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.ColorPalette"))
+
Added: trunk/main/claw-html.dojo/src/djcontainers.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djcontainers.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,46 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djcontainers.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djaccordion-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.AccordionContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.AccordionContainer"))
+
+(defclass djaccordion-pane (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.AccordionPane component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.AccordionPane":dojo-require (list "dijit.layout.AccordionContainer")))
+
+
+
+
Added: trunk/main/claw-html.dojo/src/djcontent-pane.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djcontent-pane.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,59 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djcontent-plane.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djxcontent-pane (djwidget)
+ ((execute-scripts-p :initarg :execute-scripts-p
+ :reader djcontent-pane-execute-scripts-p
+ :documentation "When not nil permits to the content pane to evaluate javascript directives")
+ (render-styles-p :initarg :render-styles-p
+ :reader djcontent-pane-render-styles-p
+ :documentation "When not nil permits to the content pane to evaluate style sheet directives"))
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dojox.layout.ContentPane component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dojox.layout.ContentPane" :execute-scripts-p t
+ :render-styles-p t))
+
+
+(defmethod wcomponent-template ((obj djxcontent-pane))
+ (let ((id (htcomponent-client-id obj))
+ (dojo-type (djwidget-dojo-type obj))
+ (execute-scripts (if (djcontent-pane-execute-scripts-p obj)
+ "true"
+ "false"))
+ (render-styles (if (djcontent-pane-render-styles-p obj)
+ "true"
+ "false")))
+ (div> :dojoType dojo-type
+ :executeScripts execute-scripts
+ :renderStyles render-styles
+ :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj))))
Added: trunk/main/claw-html.dojo/src/djdialog.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djdialog.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,86 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djdialog.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass _djdialog (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Dialog component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.Dialog"))
+
+(defclass djdialog (wcomponent)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Dialog component. More info at http://api.dojotoolkit.org/. It adds a HardLink so that the Dialog, that is moved inside body, may be referenced where it war originally placed, and so can be deleted from there"))
+
+(defmethod wcomponent-template ((obj djdialog))
+ (let ((id (htcomponent-client-id obj)))
+ (list
+ (_djdialog> :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj))
+ (djhard-link> :id "hidden" :ref-id id))))
+
+(defclass _djdialog-underlay (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.DialogUnderlay component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.DialogUnderlay" :dojo-require (list "dijit.Dialog")))
+
+(defclass djdialog-underlay (wcomponent)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.DialogUnderlay component. More info at http://api.dojotoolkit.org/. It adds a HardLink so that the Dialog, that is moved inside body, may be referenced where it war originally placed, and so can be deleted from there"))
+
+(defmethod wcomponent-template ((obj djdialog-underlay))
+ (let ((id (htcomponent-client-id obj)))
+ (list
+ (djhard-link> :id id :ref-id id)
+ (_djdialog-underlay> :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj)))))
+
+
+(defclass _djtooltip-dialog (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.TooltipDialog component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.TooltipDialog" :dojo-require (list "dijit.Dialog")))
+
+(defclass djtooltip-dialog (wcomponent)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.TooltipDialog component. More info at http://api.dojotoolkit.org/. It adds a HardLink so that the Dialog, that is moved inside body, may be referenced where it war originally placed, and so can be deleted from there"))
+
+(defmethod wcomponent-template ((obj djtooltip-dialog))
+ (let ((id (htcomponent-client-id obj)))
+ (_djtooltip-dialog> :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj))))
Added: trunk/main/claw-html.dojo/src/djform.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djform.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,469 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djform.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djform (cform djwidget)
+ ((update-id :initarg :update-id
+ :reader update-id
+ :documentation "A list of the component id to update")
+ (ajax-form-p :initarg :ajax-form-p
+ :reader djform-ajax-form-p
+ :documentation "When not nil, requests are sent via XHR call."))
+ (:metaclass metacomponent)
+ (:documentation "Class to generate a <form> element that is capable of XHR requests. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "claw.Form" :update-id () :ajax-form-p t))
+
+(defmethod wcomponent-template((obj djform))
+ (let ((id (htcomponent-client-id obj))
+ (method (form-method obj))
+ (dojo-type (djwidget-dojo-type obj))
+ (update-id (update-id obj)))
+ (form> :static-id id
+ :xhr (djform-ajax-form-p obj)
+ :method method
+ :dojotype dojo-type
+ :update-id (when update-id
+ (let ((js-array (ps* `(array ,update-id))))
+ (subseq js-array 0 (1- (length js-array)))))
+ (wcomponent-informal-parameters obj)
+ (input> :name *rewind-parameter*
+ :type "hidden"
+ :value id)
+ (htcomponent-body obj))))
+
+
+(defmethod htcomponent-instance-initscript ((obj djform))
+ nil)
+
+(defclass djtext-box (cinput djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.TextBox")
+ (:default-initargs :dojo-type "dijit.form.TextBox" :type "text"))
+
+(defmethod wcomponent-template ((obj djtext-box))
+ (let ((client-id (htcomponent-client-id obj))
+ (type (input-type obj))
+ (dojo-type (djwidget-dojo-type obj))
+ (translator (translator obj))
+ (value "")
+ (class (css-class obj)))
+ (when (component-validation-errors obj)
+ (if (or (null class) (string= class ""))
+ (setf class "dijitError")
+ (setf class (format nil "~a dijitError" class))))
+ (setf value (translator-encode translator obj))
+ (input> :static-id client-id
+ :type type
+ :dojoType dojo-type
+ :name client-id
+ :class class
+ :value value
+ (wcomponent-informal-parameters obj))))
+
+(defclass djtextarea (ctextarea djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.Textarea")
+ (:default-initargs :dojo-type "dijit.form.Textarea" :tag-name "textarea"))
+
+(defmethod wcomponent-template ((obj djtextarea))
+ (let ((client-id (htcomponent-client-id obj))
+ (tag-name (djwidget-tag-name obj))
+ (dojo-type (djwidget-dojo-type obj))
+ (translator (translator obj))
+ (value "")
+ (class (css-class obj)))
+ (when (component-validation-errors obj)
+ (if (or (null class) (string= class ""))
+ (setf class "dijitError")
+ (setf class (format nil "~a dijitError" class))))
+ (setf value (translator-encode translator obj))
+ (if (string-equal tag-name "textarea")
+ (textarea> :static-id client-id
+ :dojoType dojo-type
+ :name (name-attr obj)
+ :class class
+ (wcomponent-informal-parameters obj)
+ (or (when value ($raw> value)) (htcomponent-body obj)))
+ (let ((tag-name (djwidget-tag-name obj))
+ (parameters (nconc (list :static-id (htcomponent-client-id obj)
+ :dojo-type (djwidget-dojo-type obj)
+ :name (name-attr obj))
+ (djwidget-formal-parameters obj))))
+ (build-tagf tag-name
+ 'tag
+ (not (null (find tag-name *empty-tags*)))
+ (list
+ parameters
+ (wcomponent-informal-parameters obj)
+ (or (when value ($raw> value))
+ (htcomponent-body obj))))))))
+
+
+(defclass djsimple-textarea (djtextarea)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.SimpleTextarea")
+ (:default-initargs :dojo-type "dijit.form.SimpleTextarea" :type "text"))
+
+(defclass djvalidation-text-box (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.ValidationTextBox")
+ (:default-initargs :dojo-type "dijit.form.ValidationTextBox" :type "text"
+ :dojo-require (list "dijit.form.ValidationTextBox")))
+
+(defclass djmapped-text-box (djvalidation-text-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a DJVALIDATION-TEXT-BOX, but is used to render a dojo dijit.form.MappedTextBox")
+ (:default-initargs :dojo-type "dijit.form.MappedTextBox"))
+
+(defclass djrange-bound-text-box (djvalidation-text-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a DJVALIDATION-TEXT-BOX, but is used to render a dojo dijit.form.RangeBoundTextBox")
+ (:default-initargs :dojo-type "dijit.form.RangeBoundTextBox"))
+
+(defclass djnumber-text-box (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.NumberTextBox")
+ (:default-initargs :dojo-type "dijit.form.NumberTextBox" :type "text"))
+
+(defclass djnumber-spinner (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.NumberSpinner")
+ (:default-initargs :dojo-type "dijit.form.NumberSpinner" :type "text"))
+
+(defclass djcheck-box (ccheckbox djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CCHECKBOX, but is used to render a dojo dijit.form.CheckBox")
+ (:default-initargs :dojo-type "dijit.form.CheckBox"))
+
+(defmethod wcomponent-template ((cinput djcheck-box))
+ (let* ((client-id (htcomponent-client-id cinput))
+ (dojo-type (djwidget-dojo-type cinput))
+ (translator (translator cinput))
+ (type (input-type cinput))
+ (value (translator-value-type-to-string translator (ccheckbox-value cinput)))
+ (current-value (translator-type-to-string translator cinput))
+ (class (css-class cinput)))
+ (when (component-validation-errors cinput)
+ (if (or (null class) (string= class ""))
+ (setf class "error")
+ (setf class (format nil "~a error" class))))
+ (input> :static-id client-id
+ :type type
+ :dojoType dojo-type
+ :name (name-attr cinput)
+ :class class
+ :value value
+ :checked (when (and current-value (equal value current-value)) "checked")
+ (wcomponent-informal-parameters cinput))))
+
+(defclass djradio-button (cradio djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CRADIO, but is used to render a dojo dijit.form.CheckBox")
+ (:default-initargs :dojo-type "dijit.form.RadioButton" :dojo-require (list "dijit.form.CheckBox")))
+
+(defmethod wcomponent-template ((cinput djradio-button))
+ (let* ((client-id (htcomponent-client-id cinput))
+ (translator (translator cinput))
+ (type (input-type cinput))
+ (dojo-type (djwidget-dojo-type cinput))
+ (value (translator-value-type-to-string translator (ccheckbox-value cinput)))
+ (current-value (translator-type-to-string translator cinput))
+ (class (css-class cinput)))
+ (when (component-validation-errors cinput)
+ (if (or (null class) (string= class ""))
+ (setf class "error")
+ (setf class (format nil "~a error" class))))
+ (input> :static-id client-id
+ :type type
+ :dojoType dojo-type
+ :name (name-attr cinput)
+ :class class
+ :value value
+ :checked (when (and current-value (equal value current-value)) "checked")
+ (wcomponent-informal-parameters cinput))))
+
+(defclass djcombo-box (cinput djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CSELECT, but is used to render a dojo dijit.form.ComboBox")
+ (:default-initargs :dojo-type "dijit.form.ComboBox" :multiple nil))
+
+(defmethod wcomponent-template ((obj djcombo-box))
+ (let ((client-id (htcomponent-client-id obj))
+ (dojo-type (djwidget-dojo-type obj))
+ (translator (translator obj))
+ (value "")
+ (class (css-class obj)))
+ (when (component-validation-errors obj)
+ (if (or (null class) (string= class ""))
+ (setf class "dijitError")
+ (setf class (format nil "~a dijitError" class))))
+ (setf value (translator-encode translator obj))
+ (select> :static-id client-id
+ :dojoType dojo-type
+ :name client-id
+ :class class
+ :value value
+ :multiple (cinput-result-as-list-p obj)
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj))))
+
+(defclass djmulti-select (djcombo-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a DJVALIDATION-TEXT-BOX, but is used to render a dojo dijit.form.MultiSelect")
+ (:default-initargs :dojo-type "dijit.form.MultiSelect" :multiple t))
+
+(defclass djfiltering-select (djcombo-box)
+ ((onchange :initarg :onchange))
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CSELECT, but is used to render a dojo dijit.form.FilteringSelect")
+ (:default-initargs :dojo-type "dijit.form.FilteringSelect"))
+
+(defclass djinline-edit-box (cinput djwidget)
+ ((autosavep :initarg :autosavep
+ :reader djinline-edit-box-autosavep
+ :documentation "Changing the value automatically saves it; don't have to push save button \(and save button isn't even displayed)")
+ (button-save :initarg :button-save
+ :reader djinline-edit-box-button-save
+ :documentation "Save button label")
+ (button-cancel :initarg :button-cancel
+ :reader djinline-edit-box-button-cancel
+ :documentation "Cancel button label")
+ (render-as-html :initarg :render-as-html
+ :accessor djinline-edit-box-render-as-html
+ :documentation "Set this to true if the specified Editor's value should be interpreted as HTML rather than plain text \(ie, dijit.Editor)")
+ (editor :initarg :editor
+ :reader djinline-edit-box-editor
+ :documentation "The widget used to edit the value"))
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.InLineEditBox. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :empty t :dojo-type "dijit.InlineEditBox"
+ :tag-name "span"
+ :autosavep t
+ :button-save nil
+ :button-cancel nil
+ :render-as-html nil
+ :editor "dijit.form.TextBox"))
+
+(defmethod wcomponent-template ((obj djinline-edit-box))
+ (let ((id (htcomponent-client-id obj))
+ (tag-name (djwidget-tag-name obj))
+ (auto-save (if (djinline-edit-box-autosavep obj) "true" "false"))
+ (button-save (djinline-edit-box-button-save obj))
+ (button-cancel (djinline-edit-box-button-cancel obj))
+ (render-as-html (if (djinline-edit-box-render-as-html obj) "true" "false"))
+ (editor (djinline-edit-box-editor obj))
+ (value ""))
+ (build-tagf tag-name
+ 'tag nil
+ :static-id id
+ :value value
+ :autosave auto-save
+ :buttonsave button-save
+ :buttoncancel button-cancel
+ :renderashtml render-as-html
+ :editor editor
+ (wcomponent-informal-parameters obj))))
+
+(defmethod htcomponent-instance-initscript((obj djinline-edit-box))
+ (let ((id (htcomponent-client-id obj))
+ (page-url (claw-script-name)))
+ (ps* `(dojo.connect (dijit.by-id ,id)
+ "onChange"
+ (lambda (e) (dojo.xhrPost (create :url ,page-url
+ :error (lambda (data) (console.error data))
+ :timeout 2000
+ :handle-as "json"
+ :content (create :json (array)
+ ,*rewind-parameter* ,id))))))))
+
+(defclass djdate-text-box (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.DateTextBox")
+ (:default-initargs :dojo-type "dijit.form.DateTextBox" :type "text"
+ :translator *date-translator-ymd*))
+
+
+(defclass djtime-text-box (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.DateTextBox")
+ (:default-initargs :dojo-type "dijit.form.TimeTextBox" :type "text"
+ :translator *date-translator-time*))
+
+(defclass djcalendar (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit._Calendar")
+ (:default-initargs :dojo-type "dijit._Calendar" :dojo-require (list "dijit._Calendar" "dojo.date.locale")
+ :type "text"
+ :translator *date-translator-ymd*))
+
+
+(defclass djcurrency-text-box (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT, but is used to render a dojo dijit.form.CurrencyTextBox")
+ (:default-initargs :dojo-type "dijit.form.CurrencyTextBox" :type "text"))
+
+
+(defclass _djslider (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Base class to map dojo dijit.form.Slider. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-require (list "dijit.form.Slider")))
+
+(defclass _djslider-slider (cinput _djslider)
+ ()
+ (:metaclass metacomponent)
+ (:default-initargs :reserved-parameters (list :value :name) :translator *number-translator*)
+ (:documentation "Base class to map dojo dijit.form.HorizontalSlider and dijit.form.VerticalSlider. More info at http://api.dojotoolkit.org/"))
+
+(defmethod wcomponent-template ((_djslider-slider _djslider-slider))
+ (let ((client-id (htcomponent-client-id _djslider-slider))
+ (translator (translator _djslider-slider))
+ (value "")
+ (class (css-class _djslider-slider)))
+ (when (component-validation-errors _djslider-slider)
+ (if (or (null class) (string= class ""))
+ (setf class "dijitError")
+ (setf class (format nil "~a dijitError" class))))
+ (setf value (translator-encode translator _djslider-slider))
+ (div> :static-id client-id
+ :dojoType (djwidget-dojo-type _djslider-slider)
+ :value value
+ :class class
+ :name (name-attr _djslider-slider)
+ (wcomponent-informal-parameters _djslider-slider)
+ (htcomponent-body _djslider-slider))))
+
+(defclass djhorizontal-slider (_djslider-slider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.HorizontalSlider. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.HorizontalSlider"))
+
+(defclass djhorizontal-rule (_djslider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.HorizontalRule. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.HorizontalRule"))
+
+(defclass djhorizontal-rule-labels (_djslider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.HorizontalRuleLabels. Renders like an <ol> tag element, so put
+<li> tag elements inside. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.HorizontalRuleLabels" :tag-name "ol"))
+
+(defclass djvertical-slider (_djslider-slider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.VerticalSlider. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.VerticalSlider"))
+
+(defclass djvertical-rule (_djslider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.VerticalRule. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.VerticalRule"))
+
+(defclass djvertical-rule-labels (_djslider)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.form.VerticalRuleLabels. Renders like an <ol> tag element, so put
+<li> tag elements inside. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.form.VerticalRuleLabels" :tag-name "ol"))
+
+(defclass djtext-box-file (djtext-box)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "This class inherits from a CINPUT of type \"file\", but is used to render a dojo dijit.form.DateTextBox")
+ (:default-initargs :dojo-type "dojox.widget.FileInput" :type nil
+ :translator *file-translator*))
+
+(defmethod htcomponent-stylesheet-files((djtext-box-file djtext-box-file))
+ (list (format nil "~a/dojotoolkit/dojox/widget/FileInput/FileInput.css" (clawserver-base-path *clawserver*))))
+
+(defclass djeditor (djtextarea)
+ ((form :initform nil
+ :accessor djeditor-form))
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "claw.Editor" :tag-name "div"))
+
+(defclass djeditor-plugins-always-show-toolbar (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.AlwaysShowToolbar" :tag-name nil))
+
+(defclass djeditor-plugins-enter-key-handling (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.EnterKeyHandling" :tag-name nil))
+
+(defclass djeditor-plugins-font-choice (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.FontChoice" :tag-name nil))
+
+(defclass djeditor-plugins-link-dialog (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.LinkDialog" :tag-name nil))
+
+(defclass djeditor-plugins-text-color (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.TextColor" :tag-name nil))
+
+(defclass djeditor-plugins-toggle-dir (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Editor. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit._editor.plugins.ToggleDir" :tag-name nil))
+
Added: trunk/main/claw-html.dojo/src/djlayout.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djlayout.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,101 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djcontainers.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djaccordion-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.AccordionContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.AccordionContainer"))
+
+(defclass djaccordion-pane (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.AccordionPane component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.AccordionPane":dojo-require (list "dijit.layout.AccordionContainer")))
+
+(defclass djborder-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.BorderContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.BorderContainer"))
+
+(defclass djcontent-pane (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.ContentPane component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.ContentPane"))
+
+(defclass djlayout-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.LayoutContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.LayoutContainer"))
+
+(defclass djlink-pane (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.LinkPane component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.LinkPane"))
+
+(defclass djsplit-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.SplitContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.SplitContainer"))
+
+(defclass djstack-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.StackContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.StackContainer"))
+
+(defclass djstack-controller (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.StackController component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.StackController" :dojo-require (list "dijit.layout.StackContainer")))
+
+(defclass djtab-container (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.TabContainer component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.TabContainer"))
+
+(defclass djtab-controller (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.layout.TabController component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.layout.TabController" :dojo-require (list "dijit.layout.TabContainer")))
+
+
+
+
+
Added: trunk/main/claw-html.dojo/src/djlink.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djlink.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,54 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djlink.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djaction-link (action-link djwidget)
+ ((update-id :initarg :update-id
+ :reader update-id
+ :documentation "A list of the component id to update"))
+ (:metaclass metacomponent)
+ (:documentation "Class that extends ACTION-LINK to handle XHR requests.")
+ (:default-initargs :dojo-type "claw.ActionLink" :update-id ()))
+
+(defmethod wcomponent-template((o djaction-link))
+ (let ((client-id (htcomponent-client-id o))
+ (update-id (update-id o))
+ (dojo-type (djwidget-dojo-type o)))
+ (a> :static-id client-id
+ :href "#"
+ :hxr t
+ :dojotype dojo-type
+ :update-id (when update-id
+ (let ((js-array (ps* `(array ,update-id))))
+ (subseq js-array 0 (1- (length js-array)))))
+ (wcomponent-informal-parameters o)
+ (htcomponent-body o))))
+
+
Added: trunk/main/claw-html.dojo/src/djmenu.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djmenu.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,55 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djmenu.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+
+(defclass djmenu (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Menu. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.Menu"))
+
+(defclass djmenu-item (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.MenuItem. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.MenuItem" :dojo-require (list "dijit.Menu")))
+
+(defclass djmenu-separator (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.MenuSeparator. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.MenuSeparator" :dojo-require (list "dijit.Menu")))
+
+(defclass djpopup-menu-item (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.PopupMenuItem. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.PopupMenuItem" :dojo-require (list "dijit.Menu")))
Added: trunk/main/claw-html.dojo/src/djprogressbar.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djprogressbar.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,39 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djprogressbar.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djprogress-bar (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.ProgressBar. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.ProgressBar"))
+
+
+
Added: trunk/main/claw-html.dojo/src/djtitlepane.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djtitlepane.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,37 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djtitlepane.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djtitle-pane (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.TitlePane. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.TitlePane"))
+
Added: trunk/main/claw-html.dojo/src/djtoolbar.fasl
==============================================================================
Binary file. No diff available.
Added: trunk/main/claw-html.dojo/src/djtoolbar.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djtoolbar.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,43 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djtoolbar.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djtoolbar (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Toolbar. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.Toolbar"))
+
+(defclass djtoolbar-separator (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.ToolbarSeparator. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.ToolbarSeparator"))
+
Added: trunk/main/claw-html.dojo/src/djtooltip.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djtooltip.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,49 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djtooltip.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass _djtooltip (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Tooltip component. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.Tooltip"))
+
+(defclass djtooltip (wcomponent)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Tooltip component. More info at http://api.dojotoolkit.org/. It adds a HardLink so that the Dialog, that is moved inside body, may be referenced where it war originally placed, and so can be deleted from there"))
+
+(defmethod wcomponent-template ((obj djtooltip))
+ (let ((id (htcomponent-client-id obj)))
+ (list
+ (djhard-link> :ref-id id)
+ (_djtooltip> :static-id id
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj)))))
Added: trunk/main/claw-html.dojo/src/djtree.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djtree.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,39 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djtree.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defclass djtree (djwidget)
+ ()
+ (:metaclass metacomponent)
+ (:documentation "Class for dojo dijit.Toolbar. More info at http://api.dojotoolkit.org/")
+ (:default-initargs :dojo-type "dijit.Tree"))
+
+
+
Added: trunk/main/claw-html.dojo/src/djwidget.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/djwidget.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,81 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/djwidget.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defgeneric djwidget-formal-parameters (djwidget)
+ (:documentation "list of html attributes defined by widget slots"))
+
+(defclass djwidget (wcomponent)
+ ((tag-name :initarg :tag-name
+ :reader djwidget-tag-name
+ :documentation "The HTML tag element that will be rendered")
+ (dojo-type :initarg :dojo-type
+ :reader djwidget-dojo-type
+ :documentation "The type of the dojo element, it will be added as dojoType HTML custom tag attribute")
+ (dojo-rquire :initarg :dojo-require
+ :reader djwidget-dojo-require
+ :documentation "A list of addictional dojo reqirements"))
+ (:metaclass metacomponent)
+ (:default-initargs :tag-name "div" :dojo-require nil)
+ (:documentation "Base class to render dojo widgets"))
+
+(let ((class (find-class 'djwidget)))
+ (closer-mop:ensure-finalized class)
+ (setf (documentation (find-symbol (format nil "~a>" (class-name class))) 'function)
+ (format nil "Description: ~a~%Parameters:~%~a~a~%~%~a"
+ "Function that instantiates a DJWIDGET component and renders a html tag enabled for dojo whose name is provided by the :TAG-NAME keyword and the dojo widget by :DOJO-TYPE."
+ *id-and-static-id-description*
+ (describe-html-attributes-from-class-slot-initargs class)
+ (describe-component-behaviour class))))
+
+(defmethod djwidget-formal-parameters ((djwidget djwidget))())
+
+(defmethod htcomponent-class-initscripts ((obj djwidget))
+ (let ((dojo-type (djwidget-dojo-type obj))
+ (dojo-require (djwidget-dojo-require obj)))
+ (append
+ (list (ps* `(dojo.require "dojo.parser")))
+ (unless dojo-require
+ (list (ps* `(dojo.require ,dojo-type))))
+ (loop for require in dojo-require
+ collect (ps* `(dojo.require ,require))))))
+
+(defmethod wcomponent-template ((obj djwidget))
+ (let ((tag-name (djwidget-tag-name obj)))
+ (when tag-name
+ (let ((parameters (nconc (list :static-id (htcomponent-client-id obj) :dojo-type (djwidget-dojo-type obj))
+ (djwidget-formal-parameters obj))))
+ (build-tagf tag-name
+ 'tag
+ (not (null (find tag-name *empty-tags*)))
+ (list
+ parameters
+ (wcomponent-informal-parameters obj)
+ (htcomponent-body obj)))))))
Added: trunk/main/claw-html.dojo/src/js/ActionLink.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/ActionLink.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,130 @@
+/**
+;;; $Header: dojo/src/js/ActionLink.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+ if(!dojo._hasResource["claw.ActionLink"]){
+ dojo.provide("claw.ActionLink");
+
+ dojo.require("dijit._Widget");
+ dojo.require("dijit._Templated");
+ dojo.declare(
+ "claw.ActionLink",
+ [dijit._Widget, dijit._Templated],
+ {
+ xhrTimeout: "",//2000,
+ updateId: null,
+ enctype: "",
+ xhr: true,
+ templateString: "<a dojoAttachPoint='containerNode' dojoAttachEvent='onclick:_onClick' href='#'></a>",
+ jsonContent: {},
+ _updateParts: function (reply) {
+ for (var item in reply.components) {
+ var element = dojo.byId(item);
+ if ((element != null) && (reply.components[item] != null)) {
+ var list = dojo.query('[widgetId]', element);
+ dojo.forEach(list.map(dijit.byNode), function(widget){if (widget) widget.destroy(); });
+ element.innerHTML = reply.components[item];
+ dojo.parser.parse(element, true);
+ }
+ }
+ },
+
+ _evalReplClassScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.classInjections);
+ },
+
+ _evalReplInstanceScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.instanceInjections);
+ },
+
+ _updateAndEval: function (reply) {
+ console.debug("Plain object as string is: ", reply);
+ console.debug("Object as string is: ", dojo.toJson(reply, true));
+ this._evalReplClassScripts(reply);
+ this._updateParts(reply);
+ this._evalReplInstanceScripts(reply);
+ },
+ click: function(){
+ if(!(this.onClick() === false) && !this.xhr){
+ this.containerNode.click();
+ }
+ },
+ _onClick: function(e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden, but by default it checks and
+ // returns the validity of form elements. When the `submit`
+ // method is called programmatically, the return value from
+ // `onSubmit` is used to compute whether or not submission
+ // should proceed
+
+ if (this.xhr) {
+ if (e) {
+ e.preventDefault();
+ }
+ this.onBeforeClick(e);
+ var thisLink = this;
+ var jsonContent = dojo.mixin(this.jsonContent, { json : thisLink.updateId, rewindobject : thisLink.id });
+ this.jsonContent = {};
+ var linkId = this.id;
+ dojo.xhrPost({
+ url: '#',
+ load : function (data) {
+ try {
+ thisLink._updateAndEval(data);
+ } finally {
+ thisLink.onXhrFinish(e);
+ }
+ },
+ error : function (data) {console.error(data);thisLink.onXhrFinish(e);},
+ timeout : thisLink.xhrTimeout,
+ handleAs : 'json',
+ content : jsonContent });
+ }
+ return true;
+ },
+
+ onBeforeClick: function(/*Event?*/e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden. When the `submit` calls dojo.xhrPost
+ // this method is called before.
+ },
+
+ onXhrFinish: function(/*Event?*/e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden. After the call to dojo.xhrPost
+ // thouches lload or error this event is fired
+ }
+ }
+ );
+
+ }
+
Added: trunk/main/claw-html.dojo/src/js/Dialog.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/Dialog.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,40 @@
+/**
+;;; $Header: dojo/src/js/HardLink.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+//if(!dojo._hasResource["claw.Dialog"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+ dojo.provide("claw.Dialog");
+
+ dojo.require("dijit.Dialog");
+
+ dojo.declare(
+ "claw.Dialog",
+ dijit.Dialog
+ );
+//}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/Editor.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/Editor.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,63 @@
+/**
+;;; $Header: dojo/src/js/Editor.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+if(!dojo._hasResource["claw.Editor"]){
+ dojo.provide("claw.Editor");
+ dojo.require("dijit.Editor");
+ dojo.declare(
+ "claw.Editor",
+ dijit.Editor,
+ {
+ name: "",
+ hidden: null,
+ postCreate: function(){
+ this.inherited(arguments);
+ this.hidden = dojo.doc.createElement('input');
+ var hidden = this.hidden;
+ hidden.type = "hidden";
+ hidden.name = this.name;
+ this.domNode.parentNode.appendChild(this.hidden);
+ var theEditor = this;
+ if (this.hidden.form) {
+ var theForm = dijit.byId(this.hidden.form.id);
+ if (theForm) {
+ dojo.connect(theForm,
+ "onBeforeSubmit",
+ function(e) {hidden.value = theEditor.getValue();});
+ }
+ }
+ },
+ destroy: function(){
+ this.domNode.parentNode.removeChild(this.hidden);
+ this.inherited(arguments);
+ }
+ });
+}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/Editor2.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/Editor2.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,63 @@
+/**
+;;; $Header: dojo/src/js/Editor.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+if(!dojo._hasResource["claw.Editor2"]){
+ dojo.provide("claw.Editor2");
+ dojo.require("dijit.Editor");
+ dojo.require("dojox.lang.aspect");
+ dojo.declare(
+ "claw.Editor2",
+ dijit.Editor,
+ {
+ name: "",
+ hidden: null,
+ postCreate: function(){
+ this.inherited(arguments);
+ this.hidden = dojo.doc.createElement('input');
+ var hidden = this.hidden;
+ hidden.type = "hidden";
+ hidden.name = this.name;
+ this.domNode.parentNode.appendChild(this.hidden);
+ var aop = dojox.lang.aspect;
+ var theEditor = this;
+ if (this.hidden.form) {
+ var theForm = dijit.byId(this.hidden.form.id);
+ if (!theForm)
+ theForm = this.hidden.form;
+ aop.advise(theForm, /submit/, { before: function(args) {hidden.value = theEditor.getValue();} });
+ }
+ },
+ destroy: function(){
+ this.domNode.parentNode.removeChild(this.hidden);
+ this.inherited(arguments);
+ }
+ });
+}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/FloatingContent.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/FloatingContent.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,47 @@
+/**
+;;; $Header: dojo/src/js/FloatingContent.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+if(!dojo._hasResource["claw.FloatingContent"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+ dojo._hasResource["claw.FloatingContent"] = true;
+ dojo.provide("claw.FloatingContent");
+
+ dojo.require("dijit.Dialog");
+
+ dojo.declare(
+ "claw.FloatingContent",
+ dijit.Dialog,
+ {
+
+ templateString:"<div class=\"dijitDialog\" style=\"border:0;\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"containerNode\"></div>\n</div>",
+ _getFocusItems: function (domNode) {}
+
+ }
+ );
+}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/Form.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/Form.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,157 @@
+y/**
+;;; $Header: dojo/src/js/Form.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+if(!dojo._hasResource["claw.Form"]){
+dojo.provide("claw.Form");
+
+dojo.require("dojo.io.iframe");
+dojo.require("dijit.form.Form");
+
+dojo.declare(
+ "claw.Form",
+ [dijit.form.Form],
+ {
+ // summary:
+ // Adds conveniences to regular HTML form
+
+ // HTML <FORM> attributes
+ xhrTimeout: "",//2000,
+ updateId: null,
+ enctype: "",
+ xhr: null,
+ jsonContent: {},
+ _updateParts: function (reply) {
+ for (var item in reply.components) {
+ var element = dojo.byId(item);
+ if ((element != null) && (reply.components[item] != null)) {
+ var list = dojo.query('[widgetId]', element);
+ dojo.forEach(list.map(dijit.byNode), function(widget){if (widget) widget.destroy(); });
+ element.innerHTML = reply.components[item];
+ dojo.parser.parse(element, true);
+ }
+ }
+ },
+
+ _evalReplClassScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.classInjections);
+ },
+
+ _evalReplInstanceScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.instanceInjections);
+ },
+
+ _updateAndEval: function (reply) {
+ console.debug("Plain object as string is: ", reply);
+ console.debug("Object as string is: ", dojo.toJson(reply, true));
+ this._evalReplClassScripts(reply);
+ this._updateParts(reply);
+ this._evalReplInstanceScripts(reply);
+ },
+ submit: function(){
+ if(!(this.onSubmit() === false) && !this.xhr){
+ this.containerNode.submit();
+ }
+ },
+ onSubmit: function(e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden, but by default it checks and
+ // returns the validity of form elements. When the `submit`
+ // method is called programmatically, the return value from
+ // `onSubmit` is used to compute whether or not submission
+ // should proceed
+
+ var valid = this.validate(); // Boolean
+
+ if (valid && this.xhr) {
+ if (e) {
+ e.preventDefault();
+ }
+ this.onBeforeSubmit(e);
+ var thisForm = this;
+ var jsonContent = dojo.mixin(this.jsonContent, { json : thisForm.updateId });
+ this.jsonContent = {};
+ var formId = this.id;
+ if (this.enctype != 'multipart/form-data') {
+ dojo.xhrPost({
+ url: '#',
+ load : function (data) {
+ try {
+ thisForm._updateAndEval(data);
+ } finally {
+ thisForm.onXhrFinish(e);
+ }
+ },
+ error : function (data) {console.error(data);thisForm.onXhrFinish(e);},
+ timeout : thisForm.xhrTimeout,
+ handleAs : 'json',
+ form : formId,
+ content : jsonContent });
+ } else {
+ jsonContent = dojo.mixin(jsonContent, { jsonPrefix: '<textarea>', jsonSuffix: '</textarea>' });
+ dojo.io.iframe.send({
+ load : function (data) {
+ try {
+ thisForm._updateAndEval(data);
+ } finally {
+ thisForm.onXhrFinish(e);
+ }
+ },
+ error : function (data) {
+ console.error(data);
+ thisForm.onXhrFinish(e);
+ },
+ timeout : thisForm.xhrTimeout,
+ handleAs : 'json',
+ form: formId,
+ content : jsonContent });
+ }
+ }
+ return valid;
+ },
+
+ onBeforeSubmit: function(/*Event?*/e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden. When the `submit` calls dojo.xhrPost
+ // this method is called before.
+ },
+
+ onXhrFinish: function(/*Event?*/e){
+ // summary:
+ // Callback when user submits the form. This method is
+ // intended to be over-ridden. After the call to dojo.xhrPost
+ // thouches lload or error this event is fired
+ }
+ }
+);
+
+}
+
Added: trunk/main/claw-html.dojo/src/js/HardLink.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/HardLink.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,64 @@
+/**
+;;; $Header: dojo/src/js/HardLink.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+if(!dojo._hasResource["claw.HardLink"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+ dojo._hasResource["claw.HardLink"] = true;
+ dojo.provide("claw.HardLink");
+
+ dojo.require("dijit._Widget");
+
+ dojo.declare(
+ "claw.HardLink",
+ dijit._Widget,
+ {
+
+ // connectId: String
+ // Id of domNode to attach the hard link to.
+
+ refId: "",
+
+ style: "display:none;",
+
+ destroy: function () {
+ if (this.refId) {
+ var widget = dijit.byId(this.refId);
+ if (widget) {
+ var domNode = widget.domNode;
+ var list = dojo.query('[widgetId]', domNode);
+ dojo.forEach(list.map(dijit.byNode), function(widget){if (widget) widget.destroy(); });
+ widget.destroy();
+ }
+ }
+ this.inherited(arguments);
+ }
+
+ }
+ );
+}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/Rounded.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/Rounded.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,58 @@
+/**
+;;; $Header: dojo/src/js/LoadingSpinner.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+if(!dojo._hasResource["claw.Rounded"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+ dojo._hasResource["claw.Rounded"] = true;
+ dojo.provide("claw.Rounded");
+
+ dojo.require("dijit._Widget");
+ dojo.require("dijit._Templated");
+
+
+ dojo.declare(
+ "claw.Rounded",
+ [dijit._Widget, dijit._Templated],
+ {
+ templateString:"<div class=\"Rounded\" dojoAttachPoint=\"outerNode\">\n\t<div class=\"RoundedContent\" dojoAttachPoint=\"roundedContent\">\n\t\t<div class=\"RoundedTop\" dojoAttachPoint=\"roundedTop\"></div>\n\t\t<div dojoAttachPoint=\"contentNode\">\n\t\t\t<div dojoAttachPoint=\"containerNode\"></div>\n\t\t</div>\n\t</div>\n\t<div class=\"RoundedBottom\" dojoAttachPoint=\"roundedBottom\">\n\t\t<div dojoAttachPoint=\"roundedBottomDiv\"></div>\n\t</div>\n</div>",
+ bgImg: "", // standard background image (png)
+ bgImgAlt: "", // background image for ie6
+
+ postCreate: function() {
+ dojo.style(this.contentNode, "height", dojo.style(this.outerNode, "height")-10+'px'); // TODO: Calculate correct height
+ var alt = (this.bgImgAlt.length && dojo.isIE < 7 && dojo.isIE > 0);
+ dojo.forEach(["roundedContent","roundedTop","roundedBottom","roundedBottomDiv"],
+ function(elName){
+ dojo.style(this[elName],"backgroundImage", "url(" + (alt ? this.bgImgAlt : this.bgImg) + ")");
+ },
+ this);
+ }
+ });
+
+}
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/js/claw.js
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/js/claw.js Tue Aug 26 06:49:29 2008
@@ -0,0 +1,59 @@
+/**
+;;; $Header: dojo/src/js/claw.js $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+//dojo.require('dijit.Tooltip');
+
+var claw = {
+ _updateParts: function (reply) {
+ for (var item in reply.components) {
+ var element = dojo.byId(item);
+ if ((element != null) && (reply.components[item] != null)) {
+ var list = dojo.query('[widgetId]', element);
+ dojo.forEach(list.map(dijit.byNode), function(widget){if (widget) widget.destroy(); });
+ element.innerHTML = reply.components[item];
+ dojo.parser.parse(element, true);
+ }
+ }
+ },
+ _evalReplClassScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.classInjections);
+ },
+ _evalReplInstanceScripts: function (reply) {
+ dijit.byId('scripts-content-pane').setContent(reply.instanceInjections);
+ },
+ updateAndEval: function (reply) {
+ console.debug("Plain object as string is: ", reply);
+ console.debug("Object as string is: ", dojo.toJson(reply, true));
+ this._evalReplClassScripts(reply);
+ this._updateParts(reply);
+ this._evalReplInstanceScripts(reply);
+
+ }
+};
\ No newline at end of file
Added: trunk/main/claw-html.dojo/src/misc.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/misc.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,44 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/misc.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :dojo)
+
+(defvar *dojo-misc-file* (load-time-value
+ (or #.*compile-file-pathname* *load-pathname*)))
+
+(defun djuser-locale ()
+ (substitute #\- #\_ (string-downcase (user-locale))))
+
+(register-library-resource "dojotoolkit/" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("dojotoolkit"))))
+(register-library-resource "dojotoolkit/claw/HardLink.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "HardLink" :type "js"))
+(register-library-resource "dojotoolkit/claw/FloatingContent.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "FloatingContent" :type "js"))
+(register-library-resource "dojotoolkit/claw/Rounded.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "Rounded" :type "js"))
+(register-library-resource "dojotoolkit/claw/Form.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "Form" :type "js"))
+(register-library-resource "dojotoolkit/claw/Editor.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "Editor" :type "js"))
+(register-library-resource "dojotoolkit/claw/ActionLink.js" (make-pathname :directory (append (pathname-directory *dojo-misc-file*) '("js")) :name "ActionLink" :type "js"))
Added: trunk/main/claw-html.dojo/src/packages.lisp
==============================================================================
--- (empty file)
+++ trunk/main/claw-html.dojo/src/packages.lisp Tue Aug 26 06:49:29 2008
@@ -0,0 +1,185 @@
+;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
+;;; $Header: dojo/src/packages.lisp $
+
+;;; Copyright (c) 2008, Andrea Chiumenti. All rights reserved.
+
+;;; Redistribution and use in source and binary forms, with or without
+;;; modification, are permitted provided that the following conditions
+;;; are met:
+
+;;; * Redistributions of source code must retain the above copyright
+;;; notice, this list of conditions and the following disclaimer.
+
+;;; * Redistributions in binary form must reproduce the above
+;;; copyright notice, this list of conditions and the following
+;;; disclaimer in the documentation and/or other materials
+;;; provided with the distribution.
+
+;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
+;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(in-package :cl-user)
+
+(defpackage :claw-html.dojo
+ (:nicknames :dojo)
+ (:use :cl :claw :claw-html :parenscript)
+ (:export :*dojo-directory-name*
+ :djuser-locale
+ :djwidget-dojo-type
+ :djwidget-dojo-require
+ :djwidget
+ :djwidget>
+ :djwidget-formal-parameters
+ :djxcontent-pane
+ :djxcontent-pane>
+ :djbody
+ :djbody>
+ ;;dijit namespace
+ :djbackground-iframe
+ :djbackground-iframe>
+ :djcolor-palette
+ :djcolor-palette>
+ :djdialog
+ :djdialog>
+ :djdialog-underlay
+ :djdialog-underlay>
+ :djeditor
+ :djeditor>
+ :djeditor-plugins-always-show-toolbar
+ :djeditor-plugins-always-show-toolbar>
+ :djeditor-plugins-enter-key-handling
+ :djeditor-plugins-enter-key-handling>
+ :djeditor-plugins-font-choice
+ :djeditor-plugins-font-choice>
+ :djeditor-plugins-link-dialog
+ :djeditor-plugins-link-dialog>
+ :djeditor-plugins-text-color
+ :djeditor-plugins-text-color>
+ :djeditor-plugins-toggle-dir
+ :djeditor-plugins-toggle-dir>
+ :djinline-edit-box
+ :djinline-edit-box>
+ :djmenu
+ :djmenu>
+ :djmenu-item
+ :djmenu-item>
+ :djmenu-separator
+ :djmenu-separator>
+ :djpopup-menu-item
+ :djpopup-menu-item>
+ :djprogress-bar
+ :djprogress-bar>
+ :djtitle-pane
+ :djtitle-pane>
+ :djtoolbar
+ :djtoolbar>
+ :djtoolbar-separator
+ :djtoolbar-separator>
+ :djtooltip
+ :djtooltip>
+ :djtooltip-dialog
+ :djtooltip-dialog>
+ :djtree
+ :djtree>
+ ;;dijit.form namespace
+ :djbutton
+ :djbutton>
+ :djsubmit-button
+ :djsubmit-button>
+ :djcheck-box
+ :djcheck-box>
+ :djcombo-box
+ :djcombo-box>
+ :djcombo-button
+ :djcombo-button>
+ :djcurrency-text-box
+ :djcurrency-text-box>
+ :djdate-text-box
+ :djdate-text-box>
+ :djcalendar
+ :djcalendar>
+ :djdrop-down-button
+ :djdrop-down-button>
+ :djfiltering-select
+ :djfiltering-select>
+ :djform
+ :djform>
+ :djhorizontal-rule
+ :djhorizontal-rule>
+ :djhorizontal-rule-labels
+ :djhorizontal-rule-labels>
+ :djhorizontal-slider
+ :djhorizontal-slider>
+ :djmapped-text-box
+ :djmapped-text-box>
+ :djmulti-select
+ :djmulti-select>
+ :djnumber-spinner
+ :djnumber-spinner>
+ :djnumber-text-box
+ :djnumber-text-box>
+ :djradio-button
+ :djradio-button>
+ :djrange-bound-text-box
+ :djrange-bound-text-box>
+ :djsimple-textarea
+ :djsimple-textarea>
+ :djtextarea
+ :djtextarea>
+ :djtext-box
+ :djtext-box>
+ :djtime-text-box
+ :djtime-text-box>
+ :djtoggle-button
+ :djtoggle-button>
+ :djvalidation-text-box
+ :djvalidation-text-box>
+ :djvertical-rule
+ :djvertical-rule>
+ :djvertical-rule-labels
+ :djvertical-rule-labels>
+ :djvertical-slider
+ :djvertical-slider>
+ :djaction-link
+ :djaction-link>
+ :djtext-box-file
+ :djtext-box-file>
+ ;;dijit.layout namespace
+ :djaccordion-container
+ :djaccordion-container>
+ :djaccordion-pane
+ :djaccordion-pane>
+ :djborder-container
+ :djborder-container>
+ :djcontent-pane
+ :djcontent-pane>
+ :djlayout-container
+ :djlayout-container>
+ :djlink-pane
+ :djlink-pane>
+ :djsplit-container
+ :djsplit-container>
+ :djstack-container
+ :djstack-container>
+ :djstack-controller
+ :djstack-controller>
+ :djtab-container
+ :djtab-container>
+ :djtab-controller
+ :djtab-controller>
+ ;;claw namespace
+ :djfloating-content
+ :djfloating-content>
+ :djhard-link
+ :djhard-link>
+ :djrounded
+ :djrounded>))
More information about the Claw-cvs
mailing list