1 (in-package :lisp-on-lines
)
3 (defattribute number-attribute
(base-attribute)
8 (defattribute integer-attribute
(number-attribute)
12 (defattribute integer-attribute
(number-attribute integer-field
)
18 (define-layered-method (setf attribute-value
) ((value string
) object
(attribute integer-attribute
))
19 (let ((*read-eval
* nil
))
20 (unless (string= "" value
)
21 (let ((value (read-from-string value
)))
23 (setf (attribute-value object attribute
) value
))))))
27 (defattribute real-attribute
(number-attribute)
31 (define-layered-method (setf attribute-value
) ((value string
) object
(attribute real-attribute
))
32 (let ((*read-eval
* nil
))
33 (unless (string= "" value
)
34 (let ((value (read-from-string value
)))
36 (setf (attribute-value object attribute
) value
))))))
40 (defattribute currency-attribute
(real-attribute)
42 (:type-name currency
))
45 ((currency currency-attribute
) object
)
49 (defdisplay :in-layer editor
50 ((currency currency-attribute
) object
)
55 :name
(callback currency
)
56 :value
(format nil
"~$" (or (attribute-value object currency
) ""))))