(in-package :clog-tools) (defclass projects (clog:clog-panel) ((design-plugin :reader design-plugin) (design-del-dep :reader design-del-dep) (design-add-dep :reader design-add-dep) (design-deps :reader design-deps) (design-deps-label :reader design-deps-label) (designtime-delete :reader designtime-delete) (designtime-add-lisp :reader designtime-add-lisp) (designtime-add-clog :reader designtime-add-clog) (designtime-list :reader designtime-list) (dbl-click2 :reader dbl-click2) (designtime-label :reader designtime-label) (runtime-del-dep :reader runtime-del-dep) (runtime-add-dep :reader runtime-add-dep) (runtime-deps :reader runtime-deps) (runtime-deps-label :reader runtime-deps-label) (runtime-delete :reader runtime-delete) (runtime-add-lisp :reader runtime-add-lisp) (runtime-list :reader runtime-list) (dbl-click1 :reader dbl-click1) (runtime-label :reader runtime-label) (file-group :reader file-group) (reload-project-button :reader reload-project-button) (unload-project-button :reader unload-project-button) (new-project-button :reader new-project-button) (run-button :reader run-button) (entry-point :reader entry-point) (entry-point-label :reader entry-point-label) (edit-asd :reader edit-asd) (project-list :reader project-list) (projects-label :reader projects-label))) (defun create-projects (clog-obj &key (hidden nil) (class nil) (html-id nil) (auto-place t)) (let ((panel (change-class (clog:create-div clog-obj :content "
" :hidden hidden :class class :html-id html-id :auto-place auto-place) 'projects))) (setf (slot-value panel 'design-plugin) (attach-as-child clog-obj "CLOGB3868724620" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'design-del-dep) (attach-as-child clog-obj "CLOGB3868724619" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'design-add-dep) (attach-as-child clog-obj "CLOGB3868724618" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'design-deps) (attach-as-child clog-obj "CLOGB3868724617" :clog-type 'clog:clog-select :new-id t)) (setf (slot-value panel 'design-deps-label) (attach-as-child clog-obj "CLOGB3868724616" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'designtime-delete) (attach-as-child clog-obj "CLOGB3868724615" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'designtime-add-lisp) (attach-as-child clog-obj "CLOGB3868724614" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'designtime-add-clog) (attach-as-child clog-obj "CLOGB3868724613" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'designtime-list) (attach-as-child clog-obj "CLOGB3868724612" :clog-type 'clog:clog-select :new-id t)) (setf (slot-value panel 'dbl-click2) (attach-as-child clog-obj "CLOGB3868724611" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'designtime-label) (attach-as-child clog-obj "CLOGB3868724610" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'runtime-del-dep) (attach-as-child clog-obj "CLOGB3868724609" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'runtime-add-dep) (attach-as-child clog-obj "CLOGB3868724608" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'runtime-deps) (attach-as-child clog-obj "CLOGB3868724607" :clog-type 'clog:clog-select :new-id t)) (setf (slot-value panel 'runtime-deps-label) (attach-as-child clog-obj "CLOGB3868724606" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'runtime-delete) (attach-as-child clog-obj "CLOGB3868724605" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'runtime-add-lisp) (attach-as-child clog-obj "CLOGB3868724604" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'runtime-list) (attach-as-child clog-obj "CLOGB3868724603" :clog-type 'clog:clog-select :new-id t)) (setf (slot-value panel 'dbl-click1) (attach-as-child clog-obj "CLOGB3868724602" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'runtime-label) (attach-as-child clog-obj "CLOGB3868724601" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'file-group) (attach-as-child clog-obj "CLOGB3868724600" :clog-type 'clog:clog-div :new-id t)) (setf (slot-value panel 'reload-project-button) (attach-as-child clog-obj "CLOGB3868724599" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'unload-project-button) (attach-as-child clog-obj "CLOGB3868724598" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'new-project-button) (attach-as-child clog-obj "CLOGB3868724597" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'run-button) (attach-as-child clog-obj "CLOGB3868724596" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'entry-point) (attach-as-child clog-obj "CLOGB3868724595" :clog-type 'clog:clog-form-element :new-id t)) (setf (slot-value panel 'entry-point-label) (attach-as-child clog-obj "CLOGB3868724594" :clog-type 'clog:clog-label :new-id t)) (setf (slot-value panel 'edit-asd) (attach-as-child clog-obj "CLOGB3868724593" :clog-type 'clog:clog-button :new-id t)) (setf (slot-value panel 'project-list) (attach-as-child clog-obj "CLOGB3868724592" :clog-type 'clog:clog-select :new-id t)) (setf (slot-value panel 'projects-label) (attach-as-child clog-obj "CLOGB3868724591" :clog-type 'clog:clog-label :new-id t)) (let ((target (projects-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'projects-list\\']').attr('id')"))) (let ((target (project-list panel))) (declare (ignorable target)) (projects-setup panel)) (let ((target (entry-point-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'entry-point\\']').attr('id')"))) (let ((target (runtime-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'runtime-list\\']').attr('id')"))) (let ((target (dbl-click1 panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'runtime-list\\']').attr('id')"))) (let ((target (runtime-deps-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'runtime-deps\\']').attr('id')"))) (let ((target (designtime-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'designtime-list\\']').attr('id')"))) (let ((target (dbl-click2 panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'designtime-list\\']').attr('id')"))) (let ((target (design-deps-label panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'design-deps\\']').attr('id')"))) (clog:set-on-change (project-list panel) (lambda (target) (declare (ignorable target)) (projects-populate panel))) (clog:set-on-click (edit-asd panel) (lambda (target) (declare (ignorable target)) (let ((sel (text-value (project-list panel)))) (on-open-file panel :open-file (asdf/system:system-source-file (asdf/system:find-system sel)))))) (clog:set-on-change (entry-point panel) (lambda (target) (declare (ignorable target)) (projects-entry-point-change panel))) (clog:set-on-click (run-button panel) (lambda (target) (declare (ignorable target)) (projects-run panel))) (clog:set-on-click (new-project-button panel) (lambda (target) (declare (ignorable target)) (on-new-app-template panel))) (clog:set-on-click (unload-project-button panel) (lambda (target) (declare (ignorable target)) (let ((sel (text-value (project-list panel)))) (asdf/system-registry:clear-system sel) (setf (text-value (project-list panel)) "None") (projects-populate panel)))) (clog:set-on-click (reload-project-button panel) (lambda (target) (declare (ignorable target)) (let ((sel (text-value (project-list panel)))) (asdf/system-registry:clear-system sel) (projects-populate panel)))) (clog:set-on-double-click (runtime-list panel) (lambda (target) (declare (ignorable target)) (open-projects-component target (text-value (project-list panel)) target))) (clog:set-on-click (runtime-add-lisp panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel)))) (projects-add-lisp panel sys)))) (clog:set-on-click (runtime-delete panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel))) (file (select-text (runtime-list panel)))) (unless (equal file "") (setf file (subseq file 0 (- (length file) 5))) (remove-file-from-defsystem sys file :file) (projects-populate panel))))) (clog:set-on-click (runtime-add-dep panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel)))) (projects-add-dep panel sys)))) (clog:set-on-click (runtime-del-dep panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel))) (file (select-text (runtime-deps panel)))) (remove-dep-from-defsystem sys file) (projects-populate panel)))) (clog:set-on-double-click (designtime-list panel) (lambda (target) (declare (ignorable target)) (open-projects-component target (format nil "~A/tools" (text-value (project-list panel))) target))) (clog:set-on-click (designtime-add-clog panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel)))) (projects-add-clog panel sys)))) (clog:set-on-click (designtime-add-lisp panel) (lambda (target) (declare (ignorable target)) (let ((sys (format nil "~A/tools" (text-value (project-list panel))))) (projects-add-lisp panel sys)))) (clog:set-on-click (designtime-delete panel) (lambda (target) (declare (ignorable target)) (let ((sys (format nil "~A/tools" (text-value (project-list panel)))) (file (select-text (designtime-list panel))) ext) (unless (equal file "") (setf ext (subseq file (- (length file) 5))) (setf file (subseq file 0 (- (length file) 5))) (remove-file-from-defsystem sys file (if (equalp ext ".clog") :clog-file :file)) (projects-populate panel))))) (clog:set-on-click (design-add-dep panel) (lambda (target) (declare (ignorable target)) (let ((sys (format nil "~A/tools" (text-value (project-list panel))))) (projects-add-dep panel sys)))) (clog:set-on-click (design-del-dep panel) (lambda (target) (declare (ignorable target)) (let ((sys (format nil "~A/tools" (text-value (project-list panel)))) (file (select-text (design-deps panel)))) (remove-dep-from-defsystem sys file) (projects-populate panel)))) (clog:set-on-click (design-plugin panel) (lambda (target) (declare (ignorable target)) (let ((sys (text-value (project-list panel)))) (projects-add-plugin panel sys)))) panel))