fixed the macros a little
[clinton/lisp-on-lines.git] / src / mewa.lisp
index c519396..be27094 100644 (file)
@@ -98,7 +98,7 @@ attributes is an alist keyed on the attribute name."
 (defun find-presentation-attributes (model)
   (remove nil (mapcar #'(lambda (att)
              (when (keywordp (car att))
 (defun find-presentation-attributes (model)
   (remove nil (mapcar #'(lambda (att)
              (when (keywordp (car att))
-               att))
+               (copy-list att) ))
          (cdr (find-class-attributes model)))))
 
 
          (cdr (find-class-attributes model)))))
 
 
@@ -121,6 +121,7 @@ attributes is an alist keyed on the attribute name."
   (:viewer mewa-viewer)
   (:editor mewa-editor)
   (:creator mewa-creator)
   (:viewer mewa-viewer)
   (:editor mewa-editor)
   (:creator mewa-creator)
+  (:as-string mewa-one-line-presentation)
   (:one-line mewa-one-line-presentation)
   (:listing mewa-list-presentation :global-properties (:editablep nil) :editablep t)
   (:search-model mewa-object-presentation))
   (:one-line mewa-one-line-presentation)
   (:listing mewa-list-presentation :global-properties (:editablep nil) :editablep t)
   (:search-model mewa-object-presentation))
@@ -277,13 +278,12 @@ attributes is an alist keyed on the attribute name."
                                (cons (car def) new)))
                             ;;finally if we are just overiding the props
                             ((and (listp x) (symbolp (car x)))
                                (cons (car def) new)))
                             ;;finally if we are just overiding the props
                             ((and (listp x) (symbolp (car x)))
+                             
                              (let ((new (cdr (apply #'make-attribute (cdr x))))
                                    (def (gen-att (car x))))
                              (let ((new (cdr (apply #'make-attribute (cdr x))))
                                    (def (gen-att (car x))))
+                                
                                (setf (cdr new) (plist-union (cdr new) (cddr def)))
                                (setf (cdr new) (plist-union (cdr new) (cddr def)))
-                               (cons (car def) (cons (second def) (cdr new)))))
-
-                             )
-                            )
+                               (cons (car def) (cons (second def) (cdr new)))))))
                                   
                        (attributes self)))
       all-attributes))))
                                   
                        (attributes self)))
       all-attributes))))
@@ -295,7 +295,7 @@ attributes is an alist keyed on the attribute name."
                          (second attribute))
                      *presentation-slot-type-mapping*) 
             (error  "Can't find slot type for ~A in ~A" attribute self ))))
                          (second attribute))
                      *presentation-slot-type-mapping*) 
             (error  "Can't find slot type for ~A in ~A" attribute self ))))
-               
+    
     (cons (first attribute) (apply #'make-instance 
                                   class-name
                                   (append (cddr attribute) (list :parent self :size 30))))))
     (cons (first attribute) (apply #'make-instance 
                                   class-name
                                   (append (cddr attribute) (list :parent self :size 30))))))
@@ -318,7 +318,9 @@ attributes is an alist keyed on the attribute name."
 
 
 (defmethod make-presentation ((object t) &key (type :viewer) (initargs nil))
 
 
 (defmethod make-presentation ((object t) &key (type :viewer) (initargs nil))
+  ;(warn "Initargs : ~A" initargs)
   (let* ((p (make-instance 'mewa-object-presentation))
   (let* ((p (make-instance 'mewa-object-presentation))
+        
         (a (progn (setf (slot-value p 'instance) object)
                   (initialize-slots p) 
                   (assoc type (find-all-attributes p))))
         (a (progn (setf (slot-value p 'instance) object)
                   (initialize-slots p) 
                   (assoc type (find-all-attributes p))))
@@ -330,6 +332,7 @@ attributes is an alist keyed on the attribute name."
                                          (symbol-name type)
                                          type))
                   (plist-union initargs (cddr a)))))
                                          (symbol-name type)
                                          type))
                   (plist-union initargs (cddr a)))))
+    
     (setf (slot-value i 'instance) object)
     (initialize-slots i)
     (setf (slot-value i 'initializedp) t)
     (setf (slot-value i 'instance) object)
     (initialize-slots i)
     (setf (slot-value i 'initializedp) t)
@@ -370,11 +373,8 @@ attributes is an alist keyed on the attribute name."
   (call-next-method)
   (render-on res (slot-value self 'body)))
 
   (call-next-method)
   (render-on res (slot-value self 'body)))
 
-(defmethod instance-is-stored-p ((instance clsql:standard-db-object))
-  (slot-value instance 'clsql-sys::view-database))
 
 
-(defmethod instance-is-stored-p ((mewa mewa))
-  (instance-is-stored-p (instance mewa)))
+
 
 (defaction cancel-save-instance ((self mewa))
   (cond  
 
 (defaction cancel-save-instance ((self mewa))
   (cond