added the image attribute and a naive image picker
[clinton/lisp-on-lines.git] / src / static-presentations.lisp
index 302444b..5958f3b 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; -*- lisp -*-
 
-(in-package :mewa)
+(in-package :lisp-on-lines)
 
 (defcomponent presentation ()
   ((css-class :accessor css-class :initarg :css-class :initform nil))
@@ -422,8 +422,7 @@ This method is also used by relation-slot-presentations for the same reason."))
   (:type-name boolean))
 
 (defmethod present-slot ((slot boolean-slot-presentation) instance)
-  (<ucw:input :type "checkbox" :accessor (presentation-slot-value slot instance))
-  (setf (presentation-slot-value slot instance) nil))
+  (<ucw:input :type "checkbox" :accessor (presentation-slot-value slot instance)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; strings
@@ -562,7 +561,7 @@ This method is also used by relation-slot-presentations for the same reason."))
   (unless (string= "" value)
     (let ((i (parse-integer value :junk-allowed t)))
       (when i
-       (setf (presentation-slot-value slot instance) (parse-integer value))))))
+       (setf (presentation-slot-value slot instance) i)))))
 
 (defmethod present-slot ((slot integer-slot-presentation) instance)
   (if (editablep slot)
@@ -580,7 +579,7 @@ This method is also used by relation-slot-presentations for the same reason."))
 ;;;; Currency (double precision reals)
 
 (defslot-presentation currency-slot-presentation (real-slot-presentation)
-  ()
+  ((as-money-p :accessor as-money-p :initarg :as-money-p :initform nil))
   (:type-name currency))
 
 (defmethod (setf presentation-slot-value) ((value string) (c currency-slot-presentation) instance)
@@ -594,7 +593,10 @@ This method is also used by relation-slot-presentations for the same reason."))
   (if (editablep currency)
       (<ucw:input :type "text" :size 10
                  :accessor (presentation-slot-value currency instance))
-      (<:as-html (presentation-slot-value currency instance))))
+      (<:as-html (format nil (if (as-money-p currency)
+                                "$~$"
+                                "~D")
+                        (presentation-slot-value currency instance)) )))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; dates and times