-(defmethod ucw-core:call-action :around ((action lisp-on-lines-action) application session frame)
- (let ((next-method (lambda ()
- (layered-call-action
- action application session frame
- (lambda ()
- (call-next-method))))))
- (let ((layer-context (action-layer-context action)))
- (if layer-context
- (contextl:funcall-with-layer-context layer-context next-method)
- (funcall next-method)))
- ))
+(defmethod initialize-instance :around ((class lisp-on-lines-component-class)
+ &rest initargs &key (direct-superclasses '()))
+ (declare (dynamic-extent initargs))
+ (if (loop for direct-superclass in direct-superclasses
+ thereis (ignore-errors (subtypep direct-superclass 'lisp-on-lines-component)))
+ (call-next-method)
+ (apply #'call-next-method
+ class
+ :direct-superclasses
+ (append direct-superclasses
+ (list (find-class 'lisp-on-lines-component)))
+ initargs)))
+
+
+(defmethod reinitialize-instance :around ((class lisp-on-lines-component-class)
+ &rest initargs &key (direct-superclasses '() direct-superclasses-p))
+ (declare (dynamic-extent initargs))
+ (if (or (not direct-superclasses-p)
+ (loop for direct-superclass in direct-superclasses
+ thereis (ignore-errors (subtypep direct-superclass 'lisp-on-lines-component))))
+ (call-next-method)
+ (apply #'call-next-method
+ class
+ :direct-superclasses
+ (append direct-superclasses
+ (list (find-class 'lisp-on-lines-component)))
+ initargs)))