(apply #'display ,component thing args)))
,@body)))
-(defmacro call-display (object &rest args)
- `(call-component self (make-instance 'standard-display-component
+
+(define-layered-function find-display-type (object))
+
+(define-layered-method find-display-type (object)
+ 'viewer)
+
+(define-layered-function find-display-layers (object))
+
+(define-layered-method find-display-layers (object)
+ "layered function"
+ nil)
+
+(defmacro call-display (component object &rest args)
+ `(call-component ,component (make-instance 'standard-display-component
:display #'(lambda (component)
(with-component (component)
- (<:as-html ,object)
- (display ,object ,@args))))))
+ (display ,component ,object ,@args))))))
(defmethod find-plist (object)
(list))
-`
+
(defmethod find-plist ((attribute standard-attribute))
+ (warn "atttributre plist ~A" (attribute.plist attribute))
(attribute.plist attribute))
(defmacro with-plist ((plist-form &optional prefix) &body body)
(loop for att in (or (o-getp :attributes) (list-slots object))
do (let* ((att (ensure-list att))
(attribute (find-attribute occurence (first att))))
- (warn "trying to render ~A in ~A" attribute object)
(with-plist ((plist-union (rest att) (find-plist attribute)))
(<:p :class "attribute"
- (<:span :class "label" (<:as-html (getp :label) " "))
+ (and (o-getp :show-labels-p)
+ (<:span :class "label" (<:as-html (or (getp :label) "") " ")))
(display-using-description
attribute
component
object
(rest att))))))))
+
+
+
;;;; ** One line
(defdisplay (:in-layer one-line)
+ "The one line presentation just displays the attributes with a #\Space between them"
(do-attributes (attribute occurence (or (getp :attributes)
(list-slots object)))
(display-using-description attribute component object (attribute-properties))
(<ucw:submit :action (ok component)
:value "Ok."))
-
(defdisplay (:in-layer wrap-form
:combination :around)
(<ucw:form