move events to source file

This commit is contained in:
David Botton 2024-04-03 15:48:52 -04:00
parent a606188c76
commit daaa2801ae
3 changed files with 141 additions and 175 deletions

View file

@ -15,6 +15,121 @@
(declare (ignore obj))
(clog-ace:resize (src-box panel))))))
(defun sys-browser-type-box-create (panel target)
(declare (ignore panel))
(add-select-options target '(ALIEN-TYPE
CALLABLE
CLASS
COMPILER-MACRO
CONDITION
CONSTANT
DECLARATION
DEFINITION
FUNCTION
GENERIC-FUNCTION
GLOBAL-DEFINITION
IR1-CONVERT
MACRO
METHOD
METHOD-COMBINATION
OPTIMIZER
SETF-EXPANDER
SOURCE-TRANSFORM
SPECIAL-OPERATOR
STRUCTURE
SYMBOL-MACRO
TRANSFORM
TYPE
TYPE-DEFINITION
VARIABLE
VOP))
(setf (value target) "GLOBAL-DEFINITION"))
(defun sys-browser-package-box (panel target)
(add-select-option target "All"
"All")
(dolist (p (sort (list-all-packages) (lambda (a b)
(string-lessp (package-name a)
(package-name b)))))
(add-select-option target (package-name p)
(package-name p)))
(setf (value target) "All")
(sys-browser-populate panel))
(defun sys-browser-search-box-key-up (panel target data)
(declare (ignore target))
(cond ((equal (text-value (package-box panel)) "All")
(when (equalp "enter" (getf data :key))
(sys-browser-populate panel)))
(t
(sys-browser-populate panel))))
(defun sys-browser-src-box-on-input (panel target)
(declare (ignore target))
(unless (state panel)
(when (fname panel)
(setf (state panel) t)
(setf (disabledp (save-button panel)) nil))))
(defun sys-browser-file-name-on-click (panel target)
(declare (ignore panel))
(on-open-file target :open-file (text-value target)))
(defun sys-browser-eval-form-button-on-click (panel target)
(declare (ignore target))
(let ((p (parse-integer
(js-query panel
(format nil "~A.session.doc.positionToIndex (~A.selection.getCursor(), 0);"
(clog-ace::js-ace (src-box panel))
(clog-ace::js-ace (src-box panel))))
:junk-allowed t))
(tv (text-value (src-box panel)))
(pk (text-value (pac-box panel)))
(lf nil)
(cp 0))
(loop
(setf (values lf cp) (read-from-string tv nil nil :start cp))
(unless lf (return nil))
(when (> cp p) (return lf)))
(when lf
(let ((result (capture-eval lf
:clog-obj (connection-body panel)
:eval-in-package (format nil "~A" pk))))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"
:time-out 3)))))
(defun sys-browser-eval-sel-button-on-click (panel target)
(declare (ignore target))
(let ((pac (text-value (pac-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(unless (equal val "")
(let ((result (capture-eval val :clog-obj panel
:eval-in-package pac)))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"
:time-out 3)))))
(defun sys-browser-eval-button-on-click (panel target)
(declare (ignore target))
(let ((pac (text-value (pac-box panel)))
(val (clog-ace:text-value (src-box panel))))
(unless (equal val "")
(let ((result (capture-eval val :clog-obj panel
:eval-in-package pac)))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"
:time-out 3)))))
(defun sys-browser-save-button-on-click (panel target)
(when (fname panel)
(write-file (text-value (src-box panel)) (fname panel))
(setf (state panel) nil)
(setf (disabledp (save-button panel)) t)))
(defun sys-browser-populate (panel)
(ignore-errors ; ignore invalid searches
(setf (inner-html (class-box panel)) "")

View file

@ -1,84 +1 @@
<data id="I3921104021" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(add-select-options target '(ALIEN-TYPE
CALLABLE
CLASS
COMPILER-MACRO
CONDITION
CONSTANT
DECLARATION
DEFINITION
FUNCTION
GENERIC-FUNCTION
GLOBAL-DEFINITION
IR1-CONVERT
MACRO
METHOD
METHOD-COMBINATION
OPTIMIZER
SETF-EXPANDER
SOURCE-TRANSFORM
SPECIAL-OPERATOR
STRUCTURE
SYMBOL-MACRO
TRANSFORM
TYPE
TYPE-DEFINITION
VARIABLE
VOP))
(setf (value target) &quot;GLOBAL-DEFINITION&quot;)
" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="dropdown" data-clog-name="package-box" style="box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;" data-on-create="(add-select-option target &quot;All&quot;
&quot;All&quot;)
(dolist (p (sort (list-all-packages) (lambda (a b)
(string-lessp (package-name a)
(package-name b)))))
(add-select-option target (package-name p)
(package-name p)))
(setf (value target) &quot;All&quot;)
(sys-browser-populate panel)" data-on-change="(sys-browser-populate panel)"></select><label for="CLOGB386795982312" data-clog-type="label" data-clog-for="class-only" data-clog-name="label-class-only" style="box-sizing: content-box; position: absolute; left: 535px; top: 9px;" class="">pkg only</label><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="class-only" style="box-sizing: content-box; position: absolute; left: 516px; top: 15px;" checked="checked" data-on-change="(sys-browser-populate panel)"><input type="TEXT" value="" data-clog-type="input" data-clog-name="search-box" style="box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;" data-on-key-up="(cond ((equal (text-value (package-box panel)) &quot;All&quot;)
(when (equalp &quot;enter&quot; (getf data :key))
(sys-browser-populate panel)))
(t
(sys-browser-populate panel)))" placeholder="search" name=""><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;" class="w3-small" data-on-change="(sys-browser-select panel target)" data-on-click="(sys-browser-select panel target)"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;" class="&nbsp;w3-small"></textarea><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="pac-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;" placeholder="Current Package" class="w3-small"><div class="ace_editor ace_hidpi ace-xcode ace-tm" data-clog-type="clog-ace" data-clog-composite-control="t" data-clog-ace-theme="ace/theme/xcode" data-clog-ace-mode="ace/mode/lisp" data-clog-ace-tab-size="2" data-clog-name="src-box" style="border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;" data-on-create="(setup-lisp-ace target (status-box panel))" data-on-input="(unless (state panel)
(when (fname panel)
(setf (state panel) t)
(setf (disabledp (save-button panel)) nil)))"></div><input type="button" data-clog-type="fbutton" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left;" class="w3-small" data-on-click="(on-open-file target :open-file (text-value target))"><input type="BUTTON" value="Eval Form" data-clog-type="fbutton" data-clog-name="eval-form-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;" class="w3-tiny" disabled="disabled" data-on-click="(let ((p (parse-integer
(js-query panel
(format nil &quot;~A.session.doc.positionToIndex (~A.selection.getCursor(), 0);&quot;
(clog-ace::js-ace (src-box panel))
(clog-ace::js-ace (src-box panel))))
:junk-allowed t))
(tv (text-value (src-box panel)))
(pk (text-value (pac-box panel)))
(lf nil)
(cp 0))
(loop
(setf (values lf cp) (read-from-string tv nil nil :start cp))
(unless lf (return nil))
(when (> cp p) (return lf)))
(when lf
(let ((result (capture-eval lf
:clog-obj (connection-body panel)
:eval-in-package (format nil &quot;~A&quot; pk))))
(clog-web-alert (connection-body panel) &quot;Result&quot;
(format nil &quot;~&amp;result: ~A&quot; result)
:color-class &quot;w3-green&quot;
:time-out 3))))
"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-tiny" data-on-click="(let ((pac (text-value (pac-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(unless (equal val &quot;&quot;)
(let ((result (capture-eval val :clog-obj panel
:eval-in-package pac)))
(clog-web-alert (connection-body panel) &quot;Result&quot;
(format nil &quot;~&amp;result: ~A&quot; result)
:color-class &quot;w3-green&quot;
:time-out 3))))" placeholder="" disabled="disabled"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-tiny" data-on-click="(let ((pac (text-value (pac-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(unless (equal val &quot;&quot;)
(let ((result (capture-eval val :clog-obj panel
:eval-in-package (text-value (package-box panel)))))
(clog-web-alert (connection-body panel) &quot;Result&quot;
(format nil &quot;~&amp;result: ~A&quot; result)
:color-class &quot;w3-green&quot;
:time-out 3))))" disabled="disabled"><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-tiny" disabled="disabled" data-on-click="(when (fname panel)
(write-file (text-value (src-box panel)) (fname panel))
(setf (state panel) nil)
(setf (disabledp (save-button panel)) t))"><div data-clog-type="div" data-clog-name="status-box" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;" class="w3-tiny w3-border">status</div>
<data id="I3921162462" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(sys-browser-type-box-create panel target)" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="dropdown" data-clog-name="package-box" style="box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;" data-on-create="(sys-browser-package-box panel target)" data-on-change="(sys-browser-populate panel)"></select><label for="CLOGB386795982312" data-clog-type="label" data-clog-for="class-only" data-clog-name="label-class-only" style="box-sizing: content-box; position: absolute; left: 535px; top: 9px;" class="">pkg only</label><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="class-only" style="box-sizing: content-box; position: absolute; left: 516px; top: 15px;" checked="checked" data-on-change="(sys-browser-populate panel)"><input type="TEXT" value="" data-clog-type="input" data-clog-name="search-box" style="box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;" data-on-key-up="(sys-browser-search-box-key-up panel target data)" placeholder="search" name=""><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;" class="w3-small" data-on-change="(sys-browser-select panel target)" data-on-click="(sys-browser-select panel target)"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;" class="&nbsp;w3-small"></textarea><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="pac-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;" placeholder="Current Package" class="w3-small"><div class="ace_editor ace_hidpi ace-xcode ace-tm" data-clog-type="clog-ace" data-clog-composite-control="t" data-clog-ace-theme="ace/theme/xcode" data-clog-ace-mode="ace/mode/lisp" data-clog-ace-tab-size="2" data-clog-name="src-box" style="border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;" data-on-create="(setup-lisp-ace target (status-box panel))" data-on-input="(sys-browser-src-box-on-input panel target)"></div><input type="button" data-clog-type="fbutton" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;" class="w3-small" data-on-click="(sys-browser-file-name-on-click panel target)"><input type="BUTTON" value="Eval Form" data-clog-type="fbutton" data-clog-name="eval-form-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-eval-form-button-on-click panel target)"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-sel-button-on-click panel target)" placeholder="" disabled="disabled"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-button-on-click panel target)" disabled="disabled"><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-save-button-on-click panel-target)"><div data-clog-type="div" data-clog-name="status-box" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;" class="w3-tiny w3-border">status</div>

View file

@ -18,75 +18,61 @@
(let ((panel
(change-class
(clog:create-div clog-obj :content
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3921103967\" data-clog-name=\"type-box\"></select><select style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\" id=\"CLOGB3921103968\" data-clog-name=\"package-box\"></select><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3921103969\" data-clog-name=\"label-class-only\">pkg only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3921103970\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3921103971\" data-clog-name=\"search-box\"><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3921103972\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\" class=\"&nbsp;w3-small\" id=\"CLOGB3921103973\" data-clog-name=\"doc-box\"></textarea><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\" placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3921103974\" data-clog-name=\"pac-box\"><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\" id=\"CLOGB3921103975\" data-clog-name=\"src-box\"></div><input type=\"button\" style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left;\" class=\"w3-small\" id=\"CLOGB3921103976\" data-clog-name=\"file-name\"><input type=\"BUTTON\" value=\"Eval Form\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921103977\" data-clog-name=\"eval-form-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3921103978\" data-clog-name=\"eval-sel-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921103979\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921103980\" data-clog-name=\"save-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3921103981\" data-clog-name=\"status-box\">status</div>"
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3921162225\" data-clog-name=\"type-box\"></select><select style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\" id=\"CLOGB3921162226\" data-clog-name=\"package-box\"></select><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3921162227\" data-clog-name=\"label-class-only\">pkg only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3921162228\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3921162229\" data-clog-name=\"search-box\"><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3921162230\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\" class=\"&nbsp;w3-small\" id=\"CLOGB3921162231\" data-clog-name=\"doc-box\"></textarea><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\" placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3921162232\" data-clog-name=\"pac-box\"><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\" id=\"CLOGB3921162233\" data-clog-name=\"src-box\"></div><input type=\"button\" style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;\" class=\"w3-small\" id=\"CLOGB3921162234\" data-clog-name=\"file-name\"><input type=\"BUTTON\" value=\"Eval Form\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921162235\" data-clog-name=\"eval-form-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3921162236\" data-clog-name=\"eval-sel-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921162237\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921162238\" data-clog-name=\"save-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3921162239\" data-clog-name=\"status-box\">status</div>"
:hidden hidden :class class :html-id html-id
:auto-place auto-place)
'sys-browser)))
(setf (slot-value panel 'status-box)
(attach-as-child clog-obj "CLOGB3921103981" :clog-type
(attach-as-child clog-obj "CLOGB3921162239" :clog-type
'clog:clog-div :new-id t))
(setf (slot-value panel 'save-button)
(attach-as-child clog-obj "CLOGB3921103980" :clog-type
(attach-as-child clog-obj "CLOGB3921162238" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-button)
(attach-as-child clog-obj "CLOGB3921103979" :clog-type
(attach-as-child clog-obj "CLOGB3921162237" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-sel-button)
(attach-as-child clog-obj "CLOGB3921103978" :clog-type
(attach-as-child clog-obj "CLOGB3921162236" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-form-button)
(attach-as-child clog-obj "CLOGB3921103977" :clog-type
(attach-as-child clog-obj "CLOGB3921162235" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'file-name)
(attach-as-child clog-obj "CLOGB3921103976" :clog-type
(attach-as-child clog-obj "CLOGB3921162234" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'src-box)
(attach-as-child clog-obj "CLOGB3921103975" :clog-type
(attach-as-child clog-obj "CLOGB3921162233" :clog-type
'clog-ace:clog-ace-element :new-id t))
(setf (slot-value panel 'pac-box)
(attach-as-child clog-obj "CLOGB3921103974" :clog-type
(attach-as-child clog-obj "CLOGB3921162232" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'doc-box)
(attach-as-child clog-obj "CLOGB3921103973" :clog-type
(attach-as-child clog-obj "CLOGB3921162231" :clog-type
'clog:clog-text-area :new-id t))
(setf (slot-value panel 'class-box)
(attach-as-child clog-obj "CLOGB3921103972" :clog-type
(attach-as-child clog-obj "CLOGB3921162230" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'search-box)
(attach-as-child clog-obj "CLOGB3921103971" :clog-type
(attach-as-child clog-obj "CLOGB3921162229" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'class-only)
(attach-as-child clog-obj "CLOGB3921103970" :clog-type
(attach-as-child clog-obj "CLOGB3921162228" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'label-class-only)
(attach-as-child clog-obj "CLOGB3921103969" :clog-type
(attach-as-child clog-obj "CLOGB3921162227" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'package-box)
(attach-as-child clog-obj "CLOGB3921103968" :clog-type
(attach-as-child clog-obj "CLOGB3921162226" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'type-box)
(attach-as-child clog-obj "CLOGB3921103967" :clog-type
(attach-as-child clog-obj "CLOGB3921162225" :clog-type
'clog:clog-select :new-id t))
(let ((target (type-box panel)))
(declare (ignorable target))
(add-select-options target
'(alien-type callable class compiler-macro condition constant
declaration definition function generic-function global-definition
ir1-convert macro method method-combination optimizer setf-expander
source-transform special-operator structure symbol-macro transform
type type-definition variable vop))
(setf (value target) "GLOBAL-DEFINITION"))
(sys-browser-type-box-create panel target))
(let ((target (package-box panel)))
(declare (ignorable target))
(add-select-option target "All" "All")
(dolist
(p
(sort (list-all-packages)
(lambda (a b)
(string-lessp (package-name a) (package-name b)))))
(add-select-option target (package-name p) (package-name p)))
(setf (value target) "All")
(sys-browser-populate panel))
(sys-browser-package-box panel target))
(let ((target (label-class-only panel)))
(declare (ignorable target))
(setf (attribute target "for")
@ -114,11 +100,7 @@
(clog:set-on-key-up (search-box panel)
(lambda (target data)
(declare (ignorable target data))
(cond
((equal (text-value (package-box panel)) "All")
(when (equalp "enter" (getf data :key))
(sys-browser-populate panel)))
(t (sys-browser-populate panel)))))
(sys-browser-search-box-key-up panel target data)))
(clog:set-on-click (class-box panel)
(lambda (target)
(declare (ignorable target))
@ -130,73 +112,25 @@
(clog:set-on-input (src-box panel)
(lambda (target)
(declare (ignorable target))
(unless (state panel)
(when (fname panel)
(setf (state panel) t)
(setf (disabledp (save-button panel)) nil)))))
(sys-browser-src-box-on-input panel target)))
(clog:set-on-click (file-name panel)
(lambda (target)
(declare (ignorable target))
(on-open-file target :open-file (text-value target))))
(sys-browser-file-name-on-click panel target)))
(clog:set-on-click (eval-form-button panel)
(lambda (target)
(declare (ignorable target))
(let ((p
(parse-integer
(js-query panel
(format nil
"~A.session.doc.positionToIndex (~A.selection.getCursor(), 0);"
(clog-ace::js-ace (src-box panel))
(clog-ace::js-ace (src-box panel))))
:junk-allowed t))
(tv (text-value (src-box panel)))
(pk (text-value (pac-box panel)))
(lf nil)
(cp 0))
(loop
(setf (values lf cp)
(read-from-string tv nil nil :start cp))
(unless lf (return nil))
(when (> cp p) (return lf)))
(when lf
(let ((result
(capture-eval lf :clog-obj
(connection-body panel) :eval-in-package
(format nil "~A" pk))))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result) :color-class
"w3-green" :time-out 3))))))
(sys-browser-eval-form-button-on-click panel target)))
(clog:set-on-click (eval-sel-button panel)
(lambda (target)
(declare (ignorable target))
(let ((pac (text-value (pac-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(unless (equal val "")
(let ((result
(capture-eval val :clog-obj panel
:eval-in-package pac)))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result) :color-class
"w3-green" :time-out 3))))))
(sys-browser-eval-sel-button-on-click panel target)))
(clog:set-on-click (eval-button panel)
(lambda (target)
(declare (ignorable target))
(let ((pac (text-value (pac-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(unless (equal val "")
(let ((result
(capture-eval val :clog-obj panel
:eval-in-package
(text-value (package-box panel)))))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result) :color-class
"w3-green" :time-out 3))))))
(sys-browser-eval-button-on-click panel target)))
(clog:set-on-click (save-button panel)
(lambda (target)
(declare (ignorable target))
(when (fname panel)
(write-file (text-value (src-box panel))
(fname panel))
(setf (state panel) nil)
(setf (disabledp (save-button panel)) t))))
(sys-browser-save-button-on-click panel-target)))
panel))