bidirectonal links

This commit is contained in:
David Botton 2022-02-15 14:47:37 -05:00
parent 95b22e46f0
commit 523af33dbd
3 changed files with 39 additions and 7 deletions

View file

@ -8,12 +8,44 @@
(cl:in-package :clog)
;;; clog-presentations - link Lisp classes to CLOG objects
;;; clog-presentations - link Lisp objects and CLOG objects
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Implementation - clog-presentations
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; link-slot-and-form-element ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmacro link-slot-and-form-element (object accessor clog-obj
&key (set-event #'set-on-change)
transform-to-lisp
transform-to-element)
"Biderectional link slot (ACCESSOR OBJECT) <> clog-form-element (CLOG-OBJ)"
`(progn
(link-form-element-to-slot ,clog-obj ,object ,accessor
:set-event ,set-event
:transform ,transform-to-lisp)
(link-slot-to-form-element ,object ,accessor ,clog-obj
:transform ,transform-to-element)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; link-slot-and-element ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmacro link-slot-and-element (object accessor clog-obj
&key (set-event #'set-on-change)
transform-to-lisp
transform-to-element)
"Biderectional link slot (ACCESSOR OBJECT) <> clog-element (CLOG-OBJ)"
`(progn
(link-element-to-slot ,clog-obj ,object ,accessor
:set-event ,set-event
:transform ,transform-to-lisp)
(link-slot-to-element ,object ,accessor ,clog-obj
:transform ,transform-to-element)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; link-form-element-to-slot ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;