1 (in-package :lisp-on-lines
)
3 (defattribute number-attribute
(base-attribute)
8 (defattribute integer-attribute
(number-attribute)
13 (define-layered-method (setf attribute-value
) ((value string
) object
(attribute integer-attribute
))
14 (let ((*read-eval
* nil
))
15 (unless (string= "" value
)
16 (let ((value (read-from-string value
)))
18 (setf (attribute-value object attribute
) value
))))))
22 (defattribute real-attribute
(number-attribute)
26 (define-layered-method (setf attribute-value
) ((value string
) object
(attribute real-attribute
))
27 (let ((*read-eval
* nil
))
28 (unless (string= "" value
)
29 (let ((value (read-from-string value
)))
31 (setf (attribute-value object attribute
) value
))))))
35 (defattribute currency-attribute
(real-attribute)
37 (:type-name currency
))
40 ((currency currency-attribute
) object
)
44 (defdisplay :in-layer editor
45 ((currency currency-attribute
) object
)
50 :name
(callback currency
)
51 :value
(format nil
"~$" (or (attribute-value object currency
) ""))))