project dependencies

This commit is contained in:
David Botton 2022-08-04 17:00:18 -04:00
parent c8edef0328
commit c264e34fdc
3 changed files with 185 additions and 29 deletions

View file

@ -1232,8 +1232,8 @@ of controls and double click to select control."
(if (project-win app)
(window-focus (project-win app))
(let* ((win (create-gui-window obj :title "Project Window"
:top 200 :left 230
:width 643 :height 400
:top 100 :left 232
:width 643 :height 560
:has-pinner t :client-movement t)))
(create-projects (window-content win))
(setf (project-win app) win)
@ -2490,6 +2490,8 @@ of controls and double click to select control."
(sel (text-value (project-list panel))))
(setf (inner-html (runtime-list panel)) "")
(setf (inner-html (designtime-list panel)) "")
(setf (inner-html (runtime-deps panel)) "")
(setf (inner-html (design-deps panel)) "")
(setf (disabledp (runtime-add-lisp panel)) t)
(setf (disabledp (runtime-delete panel)) t)
(setf (disabledp (designtime-add-lisp panel)) t)
@ -2506,6 +2508,9 @@ of controls and double click to select control."
(let ((name (asdf:component-relative-pathname n))
(path (asdf:component-pathname n)))
(add-select-option (runtime-list panel) path name)))
(dolist (n (asdf:system-depends-on
(asdf:find-system sel)))
(add-select-option (runtime-deps panel) n n))
;; fill designtime)
(handler-case
(let ((sys (asdf:find-system (format nil "~A/tools" sel))))
@ -2513,6 +2518,9 @@ of controls and double click to select control."
(let ((name (asdf:component-relative-pathname n))
(path (asdf:component-pathname n)))
(add-select-option (designtime-list panel) path name)))
(dolist (n (asdf:system-depends-on
(asdf:find-system sys)))
(add-select-option (design-deps panel) n n))
(cond ((member "clog" (asdf:system-defsystem-depends-on sys) :test #'equal)
(setf (disabledp (runtime-add-lisp panel)) nil)
(setf (disabledp (runtime-delete panel)) nil)
@ -2524,7 +2532,8 @@ of controls and double click to select control."
:color-class "w3-yellow" :time-out 2))))
(t (c)
(declare (ignore c))
(add-select-option (designtime-list panel) "" "Missing /tools"))))
(add-select-option (designtime-list panel) "" "Missing /tools")
(add-select-option (design-deps panel) "" "Missing /tools"))))
(t
(confirm-dialog panel "Load project?"
(lambda (answer)
@ -2540,8 +2549,66 @@ of controls and double click to select control."
(setf (text-value (project-list panel)) "None"))))
:title "System not loaded"))))))
(defun projects-add-dep (panel sys)
(Input-dialog panel "Enter system name:"
(lambda (result)
(when result
(add-dep-to-defsystem sys result)
(ql:quickload sys)
(projects-populate panel)))
:height 230)
(ql:quickload sys))
(defun projects-add-plugin (panel sys)
(input-dialog panel (format nil "Enter plugin name (without /tools), ~
plugin will be added to the runtime and designtime:")
(lambda (result)
(when result
(let* ((s (format nil "~A/tools" sys)))
(add-dep-to-defsystem s (format nil "~A/tools" result))
(ql:quickload s))
(add-dep-to-defsystem sys result)
(ql:quickload sys)
(projects-populate panel)))
:height 250))
(defun add-dep-to-defsystem (sys file)
(let ((fname (asdf:system-source-file (asdf:find-system sys)))
(sys-list '()))
(with-open-file (s fname)
(loop
(let* ((line (read s nil)))
(unless line (return))
(when (equalp (format nil "~A" (second line)) sys)
(setf (getf line :depends-on)
(append (getf line :depends-on) `(,file))))
(push line sys-list))))
(with-open-file (s fname :direction :output :if-exists :rename)
(let ((*print-case* :downcase))
(dolist (n (reverse sys-list))
(pprint n s))))))
(defun remove-dep-from-defsystem (sys file)
(let ((fname (asdf:system-source-file (asdf:find-system sys)))
(sys-list '()))
(with-open-file (s fname)
(loop
(let* ((line (read s nil)))
(unless line (return))
(when (equalp (format nil "~A" (second line)) sys)
(let (new-comp)
(dolist (n (getf line :depends-on))
(unless (equalp (format nil "~A" n) file)
(push n new-comp)))
(setf (getf line :depends-on) (reverse new-comp))))
(push line sys-list))))
(with-open-file (s fname :direction :output :if-exists :rename)
(let ((*print-case* :downcase))
(dolist (n (reverse sys-list))
(pprint n s))))))
(defun projects-add-lisp (panel sys)
(input-dialog panel "Enter lisp component name (with out .lisp):"
(Input-dialog panel "Enter lisp component name (with out .lisp):"
(lambda (result)
(when result
(let ((path (asdf:component-pathname

View file

@ -1,16 +1,16 @@
<data id="I3868552727" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="24" data-clog-title="projects"></data><label for="undefined" data-clog-type="label" data-clog-for="projects-list" data-clog-name="projects-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;">Current Project</label><select data-clog-type="dropdown" data-clog-name="project-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;" data-on-create="(projects-setup panel)" data-on-change="(projects-populate panel)"></select><button data-clog-type="button" data-clog-name="edit-asd" style="box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;" data-on-click="(let ((sel (text-value (project-list panel))))
<data id="I3868634961" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="39" data-clog-title="projects"></data><label for="undefined" data-clog-type="label" data-clog-for="projects-list" data-clog-name="projects-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;">Current Project</label><select data-clog-type="dropdown" data-clog-name="project-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;" data-on-create="(projects-setup panel)" data-on-change="(projects-populate panel)"></select><button data-clog-type="button" data-clog-name="edit-asd" style="box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;" data-on-click="(let ((sel (text-value (project-list panel))))
(on-open-file panel :open-file (asdf:system-source-file
(asdf:find-system sel))))">Edit .asd</button><label for="CLOGB3868393710" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="runtime-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 65px;">Runtime System</label><label for="CLOGB3868452429" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="dbl-click1" style="box-sizing: content-box; position: absolute; left: 5px; top: 85px;">(double click to launch)</label><label for="CLOGB3868393704" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="designtime-label" style="box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;">Design Time System (/tools)</label><label for="CLOGB3868452430" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="dbl-click2" style="box-sizing: content-box; position: absolute; left: 290px; top: 85px;">(double click to launch)</label><select data-clog-type="listbox" size="4" data-clog-name="runtime-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 265px; height: 196px;" data-on-double-click="(open-projects-component target (text-value (project-list panel)) target)"></select><select data-clog-type="listbox" size="4" data-clog-name="designtime-list" style="box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;" data-on-double-click="(open-projects-component target
(asdf:find-system sel))))">Edit .asd</button><label for="CLOGB3868393710" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="runtime-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 65px;">Runtime System</label><label for="CLOGB3868452429" data-clog-type="label" data-clog-for="runtime-list" data-clog-name="dbl-click1" style="box-sizing: content-box; position: absolute; left: 5px; top: 85px;">(double click to launch)</label><label for="CLOGB3868393704" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="designtime-label" style="box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;">Design Time System (/tools)</label><label for="CLOGB3868452430" data-clog-type="label" data-clog-for="designtime-list" data-clog-name="dbl-click2" style="box-sizing: content-box; position: absolute; left: 290px; top: 85px;">(double click to launch)</label><select data-clog-type="listbox" size="4" data-clog-name="runtime-list" style="box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 260px; height: 196px;" data-on-double-click="(open-projects-component target (text-value (project-list panel)) target)"></select><select data-clog-type="listbox" size="4" data-clog-name="designtime-list" style="box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;" data-on-double-click="(open-projects-component target
(format nil &quot;~A/tools&quot; (text-value (project-list panel))) target)"></select><button data-clog-type="button" data-clog-name="runtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 5px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="runtime-delete" style="box-sizing: content-box; position: absolute; left: 92.9801px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="runtime-delete" style="box-sizing: content-box; position: absolute; left: 95px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
(file (select-text (runtime-list panel))))
(unless (equal file &quot;&quot;)
(setf file (subseq file 0 (- (length file) 5)))
(remove-file-from-defsystem sys file :file)
(projects-populate panel)))">Remove</button><button data-clog-type="button" data-clog-name="designtime-add-clog" style="box-sizing: content-box; position: absolute; left: 290px; top: 320px;" data-on-click="(let ((sys (text-value (project-list panel))))
(projects-add-clog panel sys))
">Add .clog</button><button data-clog-type="button" data-clog-name="designtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 385px; top: 320px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel)))))
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="designtime-delete" style="box-sizing: content-box; position: absolute; left: 473px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel))))
">Add .clog</button><button data-clog-type="button" data-clog-name="designtime-add-lisp" style="box-sizing: content-box; position: absolute; left: 386px; top: 320px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel)))))
(projects-add-lisp panel sys))">Add .lisp</button><button data-clog-type="button" data-clog-name="designtime-delete" style="box-sizing: content-box; position: absolute; left: 478px; top: 320px; width: 65px; height: 22px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel))))
(file (select-text (designtime-list panel)))
ext)
(unless (equal file &quot;&quot;)
@ -24,4 +24,14 @@
(setf (text-value (project-list panel)) &quot;None&quot;)
(projects-populate panel))">Unload</button><button data-clog-type="button" data-clog-name="reload-project-button" style="box-sizing: content-box; position: absolute; left: 521px; top: 79px; width: 100px; height: 22px; bottom: 309.041px;" data-on-click="(let ((sel (text-value (project-list panel))))
(asdf:clear-system sel)
(projects-populate panel))">Reload</button>
(projects-populate panel))">Reload</button><label for="CLOGB3868619266" data-clog-type="label" data-clog-for="runtime-deps" data-clog-name="runtime-deps-label" style="box-sizing: content-box; position: absolute; left: 5px; top: 365px;">Runtime Dependecies</label><select data-clog-type="listbox" size="4" data-clog-name="runtime-deps" style="box-sizing: content-box; position: absolute; left: 5px; top: 395px; width: 260px; height: 75px;"></select><label for="CLOGB3868619268" data-clog-type="label" data-clog-for="design-deps" data-clog-name="design-deps-label" style="box-sizing: content-box; position: absolute; left: 290px; top: 365px;">Design Dependecies</label><select data-clog-type="listbox" size="4" data-clog-name="design-deps" style="box-sizing: content-box; position: absolute; left: 290px; top: 395px; width: 263.358px; height: 75px;"></select><button data-clog-type="button" data-clog-name="runtime-add-dep" style="box-sizing: content-box; position: absolute; left: 5px; top: 480px; width: 65px;" data-on-click="(let ((sys (text-value (project-list panel))))
(projects-add-dep panel sys))">Add</button><button data-clog-type="button" data-clog-name="runtime-del-dep" style="box-sizing: content-box; position: absolute; left: 95px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel)))
(file (select-text (runtime-deps panel))))
(remove-dep-from-defsystem sys file)
(projects-populate panel))">Remove</button><button data-clog-type="button" data-clog-name="design-add-dep" style="box-sizing: content-box; position: absolute; left: 290px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel)))))
(projects-add-dep panel sys))">Add</button><button data-clog-type="button" data-clog-name="design-del-dep" style="box-sizing: content-box; position: absolute; left: 380px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (format nil &quot;~A/tools&quot; (text-value (project-list panel))))
(file (select-text (design-deps panel))))
(remove-dep-from-defsystem sys file)
(projects-populate panel))">Remove</button><button data-clog-type="button" data-clog-name="design-plugin" style="box-sizing: content-box; position: absolute; left: 470px; top: 480px; width: 65px; height: 22px;" data-on-click="(let ((sys (text-value (project-list panel))))
(projects-add-plugin panel sys))
">Plugin</button>

View file

@ -1,6 +1,15 @@
(in-package "CLOG-TOOLS")
(defclass projects (clog:clog-panel)
((reload-project-button :reader reload-project-button)
((design-plugin :reader design-plugin)
(design-del-dep :reader design-del-dep)
(design-add-dep :reader design-add-dep)
(runtime-del-dep :reader runtime-del-dep)
(runtime-add-dep :reader runtime-add-dep)
(design-deps :reader design-deps)
(design-deps-label :reader design-deps-label)
(runtime-deps :reader runtime-deps)
(runtime-deps-label :reader runtime-deps-label)
(reload-project-button :reader reload-project-button)
(unload-project-button :reader unload-project-button)
(new-project-button :reader new-project-button)
(designtime-delete :reader designtime-delete)
@ -20,60 +29,87 @@
(let ((panel
(change-class
(clog:create-div clog-obj :content
"<label for=\"undefined\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;\" id=\"CLOGB3868552713\" data-clog-name=\"projects-label\">Current Project</label><select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868552714\" data-clog-name=\"project-list\"></select><button style=\"box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;\" id=\"CLOGB3868552715\" data-clog-name=\"edit-asd\">Edit .asd</button><label for=\"CLOGB3868393710\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 65px;\" id=\"CLOGB3868552716\" data-clog-name=\"runtime-label\">Runtime System</label><label for=\"CLOGB3868452429\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 85px;\" id=\"CLOGB3868552717\" data-clog-name=\"dbl-click1\">(double click to launch)</label><label for=\"CLOGB3868393704\" style=\"box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;\" id=\"CLOGB3868552718\" data-clog-name=\"designtime-label\">Design Time System (/tools)</label><label for=\"CLOGB3868452430\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 85px;\" id=\"CLOGB3868552719\" data-clog-name=\"dbl-click2\">(double click to launch)</label><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 265px; height: 196px;\" id=\"CLOGB3868552720\" data-clog-name=\"runtime-list\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;\" id=\"CLOGB3868552721\" data-clog-name=\"designtime-list\"></select><button style=\"box-sizing: content-box; position: absolute; left: 5px; top: 320px;\" id=\"CLOGB3868552722\" data-clog-name=\"runtime-add-lisp\">Add .lisp</button><button style=\"box-sizing: content-box; position: absolute; left: 92.9801px; top: 320px; width: 65px; height: 22px;\" id=\"CLOGB3868552723\" data-clog-name=\"runtime-delete\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 290px; top: 320px;\" id=\"CLOGB3868552724\" data-clog-name=\"designtime-add-clog\">Add .clog</button><button style=\"box-sizing: content-box; position: absolute; left: 385px; top: 320px;\" id=\"CLOGB3868552725\" data-clog-name=\"designtime-add-lisp\">Add .lisp</button><button style=\"box-sizing: content-box; position: absolute; left: 473px; top: 320px; width: 65px; height: 22px;\" id=\"CLOGB3868552726\" data-clog-name=\"designtime-delete\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 520px; top: 8px; width: 100px; height: 22px;\" id=\"CLOGB3868552727\" data-clog-name=\"new-project-button\">New</button><button style=\"box-sizing: content-box; position: absolute; left: 520px; top: 43px; width: 100px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868552728\" data-clog-name=\"unload-project-button\">Unload</button><button style=\"box-sizing: content-box; position: absolute; left: 521px; top: 79px; width: 100px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868552729\" data-clog-name=\"reload-project-button\">Reload</button>"
"<label for=\"undefined\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 6.99858px;\" id=\"CLOGB3868634927\" data-clog-name=\"projects-label\">Current Project</label><select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 35px; width: 386.54px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868634928\" data-clog-name=\"project-list\"></select><button style=\"box-sizing: content-box; position: absolute; left: 400px; top: 32px; height: 22px; width: 90px;\" id=\"CLOGB3868634929\" data-clog-name=\"edit-asd\">Edit .asd</button><label for=\"CLOGB3868393710\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 65px;\" id=\"CLOGB3868634930\" data-clog-name=\"runtime-label\">Runtime System</label><label for=\"CLOGB3868452429\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 85px;\" id=\"CLOGB3868634931\" data-clog-name=\"dbl-click1\">(double click to launch)</label><label for=\"CLOGB3868393704\" style=\"box-sizing: content-box; position: absolute; left: 290.007px; top: 65px;\" id=\"CLOGB3868634932\" data-clog-name=\"designtime-label\">Design Time System (/tools)</label><label for=\"CLOGB3868452430\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 85px;\" id=\"CLOGB3868634933\" data-clog-name=\"dbl-click2\">(double click to launch)</label><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 115px; width: 260px; height: 196px;\" id=\"CLOGB3868634934\" data-clog-name=\"runtime-list\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 115px; width: 265px; height: 195.545px;\" id=\"CLOGB3868634935\" data-clog-name=\"designtime-list\"></select><button style=\"box-sizing: content-box; position: absolute; left: 5px; top: 320px;\" id=\"CLOGB3868634936\" data-clog-name=\"runtime-add-lisp\">Add .lisp</button><button style=\"box-sizing: content-box; position: absolute; left: 95px; top: 320px; width: 65px; height: 22px;\" id=\"CLOGB3868634937\" data-clog-name=\"runtime-delete\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 290px; top: 320px;\" id=\"CLOGB3868634938\" data-clog-name=\"designtime-add-clog\">Add .clog</button><button style=\"box-sizing: content-box; position: absolute; left: 386px; top: 320px;\" id=\"CLOGB3868634939\" data-clog-name=\"designtime-add-lisp\">Add .lisp</button><button style=\"box-sizing: content-box; position: absolute; left: 478px; top: 320px; width: 65px; height: 22px;\" id=\"CLOGB3868634940\" data-clog-name=\"designtime-delete\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 520px; top: 8px; width: 100px; height: 22px;\" id=\"CLOGB3868634941\" data-clog-name=\"new-project-button\">New</button><button style=\"box-sizing: content-box; position: absolute; left: 520px; top: 43px; width: 100px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868634942\" data-clog-name=\"unload-project-button\">Unload</button><button style=\"box-sizing: content-box; position: absolute; left: 521px; top: 79px; width: 100px; height: 22px; bottom: 309.041px;\" id=\"CLOGB3868634943\" data-clog-name=\"reload-project-button\">Reload</button><label for=\"CLOGB3868619266\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 365px;\" id=\"CLOGB3868634944\" data-clog-name=\"runtime-deps-label\">Runtime Dependecies</label><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 395px; width: 260px; height: 75px;\" id=\"CLOGB3868634945\" data-clog-name=\"runtime-deps\"></select><label for=\"CLOGB3868619268\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 365px;\" id=\"CLOGB3868634946\" data-clog-name=\"design-deps-label\">Design Dependecies</label><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 290px; top: 395px; width: 263.358px; height: 75px;\" id=\"CLOGB3868634947\" data-clog-name=\"design-deps\"></select><button style=\"box-sizing: content-box; position: absolute; left: 5px; top: 480px; width: 65px;\" id=\"CLOGB3868634948\" data-clog-name=\"runtime-add-dep\">Add</button><button style=\"box-sizing: content-box; position: absolute; left: 95px; top: 480px; width: 65px; height: 22px;\" id=\"CLOGB3868634949\" data-clog-name=\"runtime-del-dep\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 290px; top: 480px; width: 65px; height: 22px;\" id=\"CLOGB3868634950\" data-clog-name=\"design-add-dep\">Add</button><button style=\"box-sizing: content-box; position: absolute; left: 380px; top: 480px; width: 65px; height: 22px;\" id=\"CLOGB3868634951\" data-clog-name=\"design-del-dep\">Remove</button><button style=\"box-sizing: content-box; position: absolute; left: 470px; top: 480px; width: 65px; height: 22px;\" id=\"CLOGB3868634952\" data-clog-name=\"design-plugin\">Plugin</button>"
:hidden hidden :class class :html-id html-id
:auto-place auto-place)
'projects)))
(setf (slot-value panel 'design-plugin)
(attach-as-child clog-obj "CLOGB3868634952" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'design-del-dep)
(attach-as-child clog-obj "CLOGB3868634951" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'design-add-dep)
(attach-as-child clog-obj "CLOGB3868634950" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'runtime-del-dep)
(attach-as-child clog-obj "CLOGB3868634949" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'runtime-add-dep)
(attach-as-child clog-obj "CLOGB3868634948" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'design-deps)
(attach-as-child clog-obj "CLOGB3868634947" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'design-deps-label)
(attach-as-child clog-obj "CLOGB3868634946" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'runtime-deps)
(attach-as-child clog-obj "CLOGB3868634945" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'runtime-deps-label)
(attach-as-child clog-obj "CLOGB3868634944" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'reload-project-button)
(attach-as-child clog-obj "CLOGB3868552729" :clog-type
(attach-as-child clog-obj "CLOGB3868634943" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'unload-project-button)
(attach-as-child clog-obj "CLOGB3868552728" :clog-type
(attach-as-child clog-obj "CLOGB3868634942" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'new-project-button)
(attach-as-child clog-obj "CLOGB3868552727" :clog-type
(attach-as-child clog-obj "CLOGB3868634941" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'designtime-delete)
(attach-as-child clog-obj "CLOGB3868552726" :clog-type
(attach-as-child clog-obj "CLOGB3868634940" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'designtime-add-lisp)
(attach-as-child clog-obj "CLOGB3868552725" :clog-type
(attach-as-child clog-obj "CLOGB3868634939" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'designtime-add-clog)
(attach-as-child clog-obj "CLOGB3868552724" :clog-type
(attach-as-child clog-obj "CLOGB3868634938" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'runtime-delete)
(attach-as-child clog-obj "CLOGB3868552723" :clog-type
(attach-as-child clog-obj "CLOGB3868634937" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'runtime-add-lisp)
(attach-as-child clog-obj "CLOGB3868552722" :clog-type
(attach-as-child clog-obj "CLOGB3868634936" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'designtime-list)
(attach-as-child clog-obj "CLOGB3868552721" :clog-type
(attach-as-child clog-obj "CLOGB3868634935" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'runtime-list)
(attach-as-child clog-obj "CLOGB3868552720" :clog-type
(attach-as-child clog-obj "CLOGB3868634934" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'dbl-click2)
(attach-as-child clog-obj "CLOGB3868552719" :clog-type
(attach-as-child clog-obj "CLOGB3868634933" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'designtime-label)
(attach-as-child clog-obj "CLOGB3868552718" :clog-type
(attach-as-child clog-obj "CLOGB3868634932" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'dbl-click1)
(attach-as-child clog-obj "CLOGB3868552717" :clog-type
(attach-as-child clog-obj "CLOGB3868634931" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'runtime-label)
(attach-as-child clog-obj "CLOGB3868552716" :clog-type
(attach-as-child clog-obj "CLOGB3868634930" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'edit-asd)
(attach-as-child clog-obj "CLOGB3868552715" :clog-type
(attach-as-child clog-obj "CLOGB3868634929" :clog-type
'clog:clog-button :new-id t))
(setf (slot-value panel 'project-list)
(attach-as-child clog-obj "CLOGB3868552714" :clog-type
(attach-as-child clog-obj "CLOGB3868634928" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'projects-label)
(attach-as-child clog-obj "CLOGB3868552713" :clog-type
(attach-as-child clog-obj "CLOGB3868634927" :clog-type
'clog:clog-label :new-id t))
(let ((target (projects-label panel)))
(declare (ignorable target))
@ -103,6 +139,16 @@
(setf (attribute target "for")
(clog:js-query target
"$('[data-clog-name=\\'designtime-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 (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))
@ -185,4 +231,37 @@
(let ((sel (text-value (project-list panel))))
(asdf/system-registry:clear-system sel)
(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-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))