+ (if (attribute-editp object attribute)
+ (<lol:input :reader (attribute-value object attribute)
+ :writer (lambda (val)
+ (setf (attribute-value object attribute) val)))
+ (call-next-method))
+))
+
+(define-layered-function display-html-description (description display object)
+ (:method (description display object)
+ (<:style
+ (<:as-html "
+
+div.lol-description .lol-attribute-label,
+div.lol-description .lol-attribute-value {
+ display: block;
+ width: 69%;
+ float: left;
+ margin-bottom: 1em;
+
+}
+div.lol-description
+.lol-attribute-label {
+ text-align: right;
+ width: 24%;
+ padding-right: 20px;
+}
+
+
+div.lol-description
+br {
+clear: left;
+}"))
+
+ (with-attributes (css-class dom-id) description
+
+
+ (<:div
+ :class (list (attribute-value* css-class) "lol-description" "t")
+ :id (attribute-value* dom-id)
+ (unless *object* (error "Object is nil .. why?"))
+ (dolist (attribute (attributes description))
+ (display-html-attribute *object* attribute))))))
+
+
+(define-layered-method display-html-description
+ :in-layer #.(defining-description 'inline) (description display object)
+
+ (with-attributes (css-class dom-id) description
+
+
+ (<:span
+ :class (list (attribute-value* css-class) "lol-description")
+ :id (attribute-value* dom-id)
+ (unless *object* (error "Object is nil .. why?"))
+ (dolist (attribute (attributes description))
+ (display-html-attribute *object* attribute))))
+ )
+
+(define-display
+ :in-description html-description ((description t)
+ (display lol-ucw:component)
+ object)
+ (display-html-description description display object))