;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: views.lisp,v 1.5 2002/12/02 15:57:17 kevin Exp $
+;;;; $Id: views.lisp,v 1.10 2002/12/06 20:46:51 kevin Exp $
;;;;
;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
;;;;
(make-instance 'hyperlink
:name (slot-definition-name esd)
:lookup it
- :link-parameters (slot-value esd 'link-parameters))
+ :link-parameters (slot-value esd 'hyperlink-parameters))
hyperlinks)))
(setf (slot-value cl 'hyperlinks) hyperlinks)))
(defgeneric fmt-obj-data-with-ref (obj fmt s label refvars))
(defmethod fmt-obj-data-with-ref (x (fmt textformat) s label refvars)
- (let ((refstr (make-ref-data-str x fmt label))
- (refvalues nil)
- (field-values
- (multiple-value-list
- (funcall (funcall (obj-data-value-func fmt) x) x))))
-
+ (let ((refvalues '()))
;; make list of hyperlink link fields for printing to refstr template
- (dolist (ref (hyperobject-class-hyperlinks x))
- (let ((link-start
- (make-link-start x (link-ref fmt) (name ref) (lookup ref)
- (nth (position (name ref)
- (hyperobject-class-fields x)
- :key #'(lambda (x)
- (slot-definition-name x)))
- field-values)
- (append (link-parameters ref) refvars)))
- (link-end (make-link-end x (link-ref fmt) (name ref))))
- (push link-start refvalues)
- (push link-end refvalues)))
+ (dolist (name (hyperobject-class-print-slots x))
+ (let-when (hyperlink (find name (hyperobject-class-hyperlinks x) :key #'name))
+ (push (make-link-start x (link-ref fmt) name (lookup hyperlink)
+ (slot-value x name)
+ (append (link-parameters hyperlink) refvars))
+ refvalues)
+ (push (make-link-end x (link-ref fmt) name) refvalues)))
(setq refvalues (nreverse refvalues))
-
- (apply #'format s refstr refvalues)))
+ (apply #'format s (make-ref-data-str x fmt label) refvalues)))
(defgeneric obj-data (obj))
(defmethod obj-data (x)
(fmt-file-end fmt os)))
objs)
+
+;;; Misc formatting
+
+(defun fmt-comma-integer (i)
+ (format nil "~:d" i))
+