mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-15 06:50:20 -08:00
save and evaluate
This commit is contained in:
parent
1ef96c7a96
commit
7a1cf8d75e
3 changed files with 94 additions and 22 deletions
|
|
@ -2188,6 +2188,8 @@ of controls and double click to select control."
|
||||||
(setf (inner-html (class-box panel)) "")
|
(setf (inner-html (class-box panel)) "")
|
||||||
(setf (text-value (src-box panel)) "")
|
(setf (text-value (src-box panel)) "")
|
||||||
(setf (text-value (doc-box panel)) "")
|
(setf (text-value (doc-box panel)) "")
|
||||||
|
(setf (text-value (file-name panel)) "")
|
||||||
|
(setf (fname panel) nil)
|
||||||
(setf (classes panel) (definitions:find-definitions
|
(setf (classes panel) (definitions:find-definitions
|
||||||
(text-value (package-box panel))
|
(text-value (package-box panel))
|
||||||
:package (find-package :key)
|
:package (find-package :key)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<data id="I3867965294" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes)" data-clog-next-id="16" 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
|
<data id="I3868021935" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="22" 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
|
CALLABLE
|
||||||
CLASS
|
CLASS
|
||||||
COMPILER-MACRO
|
COMPILER-MACRO
|
||||||
|
|
@ -31,13 +31,42 @@
|
||||||
(add-select-option target (package-name p)
|
(add-select-option target (package-name p)
|
||||||
(package-name p)))
|
(package-name p)))
|
||||||
(setf (value target) "CLOG-USER")
|
(setf (value target) "CLOG-USER")
|
||||||
(sys-browser-populate panel)" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 45px; width: 350px; height: 145px;" data-on-change="(let* ((item (nth (parse-integer (text-value (class-box panel))) (classes panel)))
|
(sys-browser-populate panel)" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 45px; width: 350px; height: 145px;" data-on-change="(let* ((item (nth (parse-integer (text-value (class-box panel))) (classes panel))))
|
||||||
(fname (getf (definitions:source-location item) :file)))
|
(setf (fname panel) (getf (definitions:source-location item) :file))
|
||||||
(setf (text-value (doc-box panel))
|
(setf (text-value (doc-box panel))
|
||||||
(or (definitions:documentation item)
|
(or (definitions:documentation item)
|
||||||
"No documentation"))
|
"No documentation"))
|
||||||
(cond (fname
|
(cond ((fname panel)
|
||||||
(setf (text-value (src-box panel)) (read-file fname))
|
(setf (text-value (src-box panel)) (read-file (fname panel)))
|
||||||
|
(setf (text-value (file-name panel)) (fname panel))
|
||||||
|
(setf (disabledp (eval-button panel)) nil)
|
||||||
|
(setf (disabledp (eval-sel-button panel)) nil)
|
||||||
|
(setf (state panel) nil)
|
||||||
(js-execute target (format nil "~A.find('~A')" (clog-ace::js-ace (src-box panel)) (definitions:name item))))
|
(js-execute target (format nil "~A.find('~A')" (clog-ace::js-ace (src-box panel)) (definitions:name item))))
|
||||||
(t
|
(t
|
||||||
(setf (text-value (src-box panel)) "No file information"))))" class="w3-small"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; inset: 45px 5px 176.051px 365px; height: 139.989px; resize: none; min-width: 0px;" class=" w3-small"></textarea><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: 199.991px 5px 30px;" data-on-create="(setup-lisp-ace target (status-box panel))"></div><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><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="">class 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; left: 620px; top: 7px; height: 22px; right: 5px;" data-on-key-up="(sys-browser-populate panel)" placeholder="search" name="">
|
(setf (text-value (file-name panel)) "")
|
||||||
|
(setf (disabledp (eval-button panel)) t)
|
||||||
|
(setf (disabledp (eval-sel-button panel)) t)
|
||||||
|
(setf (disabledp (save-button panel)) t)
|
||||||
|
(setf (state panel) t)
|
||||||
|
(setf (text-value (src-box panel)) "No file information"))))" class="w3-small"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; inset: 45px 5px 176.051px 365px; height: 139.989px; resize: none; min-width: 0px;" class=" w3-small"></textarea><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: 198.991px 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><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><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="">class 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; left: 620px; top: 7px; height: 22px; right: 5px;" data-on-key-up="(sys-browser-populate panel)" placeholder="search" name=""><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-small" 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))"><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-small" data-on-click="(let ((val (text-value (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 clog-obj) "Result"
|
||||||
|
(format nil "~&result: ~A" result)
|
||||||
|
:color-class "w3-green"
|
||||||
|
:time-out 3))))" disabled="disabled"><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-small" data-on-click="(let ((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 clog-obj) "Result"
|
||||||
|
(format nil "~&result: ~A" result)
|
||||||
|
:color-class "w3-green"
|
||||||
|
:time-out 3))))" placeholder="" disabled="disabled"><div data-clog-type="div" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 25px; right: 220px;" class="w3-small"> </div>
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
(in-package "CLOG-TOOLS")
|
(in-package "CLOG-TOOLS")
|
||||||
(defclass sys-browser (clog:clog-panel)
|
(defclass sys-browser (clog:clog-panel)
|
||||||
( (search-box :reader search-box)
|
( (file-name :reader file-name)
|
||||||
|
(eval-sel-button :reader eval-sel-button)
|
||||||
|
(eval-button :reader eval-button)
|
||||||
|
(save-button :reader save-button)
|
||||||
|
(search-box :reader search-box)
|
||||||
(class-only :reader class-only)
|
(class-only :reader class-only)
|
||||||
(label-class-only :reader label-class-only)
|
(label-class-only :reader label-class-only)
|
||||||
(status-box :reader status-box)
|
(status-box :reader status-box)
|
||||||
|
|
@ -9,19 +13,23 @@
|
||||||
(class-box :reader class-box)
|
(class-box :reader class-box)
|
||||||
(package-box :reader package-box)
|
(package-box :reader package-box)
|
||||||
(type-box :reader type-box)
|
(type-box :reader type-box)
|
||||||
(classes :accessor classes)))
|
(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)))
|
||||||
(defun create-sys-browser (clog-obj &key (hidden nil) (class nil) (html-id nil) (auto-place t))
|
(defun create-sys-browser (clog-obj &key (hidden nil) (class nil) (html-id nil) (auto-place t))
|
||||||
(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=\"CLOGB3867964270\" 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=\"CLOGB3867964271\" data-clog-name=\"package-box\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 45px; width: 350px; height: 145px;\" class=\"w3-small\" id=\"CLOGB3867964272\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; inset: 45px 5px 176.051px 365px; height: 139.989px; resize: none; min-width: 0px;\" class=\" w3-small\" id=\"CLOGB3867964273\" data-clog-name=\"doc-box\"></textarea><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 199.991px 5px 30px;\" id=\"CLOGB3867964274\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3867964275\" data-clog-name=\"status-box\">status</div><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3867964276\" data-clog-name=\"label-class-only\">class only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3867964277\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" id=\"CLOGB386796477715\" style=\"box-sizing: content-box; position: absolute; left: 620px; top: 7px; height: 22px; right: 5px;\" placeholder=\"search\" name=\"\" data-clog-name=\"search-box\">"
|
(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=\"CLOGB3868018625\" 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=\"CLOGB3868018626\" data-clog-name=\"package-box\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 45px; width: 350px; height: 145px;\" class=\"w3-small\" id=\"CLOGB3868018627\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; inset: 45px 5px 176.051px 365px; height: 139.989px; resize: none; min-width: 0px;\" class=\" w3-small\" id=\"CLOGB3868018628\" data-clog-name=\"doc-box\"></textarea><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 198.991px 5px 50px;\" id=\"CLOGB3868018629\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3868018630\" data-clog-name=\"status-box\">status</div><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3868018631\" data-clog-name=\"label-class-only\">class only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3868018632\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 620px; top: 7px; height: 22px; right: 5px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3868018633\" data-clog-name=\"search-box\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868018634\" data-clog-name=\"save-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868018635\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-small\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3868018636\" data-clog-name=\"eval-sel-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 25px; right: 220px;\" class=\"w3-small\" id=\"CLOGB3868018637\" data-clog-name=\"file-name\"> </div>"
|
||||||
:hidden hidden :class class :html-id html-id :auto-place auto-place) 'sys-browser)))
|
:hidden hidden :class class :html-id html-id :auto-place auto-place) 'sys-browser)))
|
||||||
(setf (slot-value panel 'search-box) (attach-as-child clog-obj "CLOGB386796477715" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
(setf (slot-value panel 'file-name) (attach-as-child clog-obj "CLOGB3868018637" :clog-type 'CLOG:CLOG-DIV :new-id t))
|
||||||
(setf (slot-value panel 'class-only) (attach-as-child clog-obj "CLOGB3867964277" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
(setf (slot-value panel 'eval-sel-button) (attach-as-child clog-obj "CLOGB3868018636" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
||||||
(setf (slot-value panel 'label-class-only) (attach-as-child clog-obj "CLOGB3867964276" :clog-type 'CLOG:CLOG-LABEL :new-id t))
|
(setf (slot-value panel 'eval-button) (attach-as-child clog-obj "CLOGB3868018635" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
||||||
(setf (slot-value panel 'status-box) (attach-as-child clog-obj "CLOGB3867964275" :clog-type 'CLOG:CLOG-DIV :new-id t))
|
(setf (slot-value panel 'save-button) (attach-as-child clog-obj "CLOGB3868018634" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
||||||
(setf (slot-value panel 'src-box) (attach-as-child clog-obj "CLOGB3867964274" :clog-type 'CLOG-ACE:CLOG-ACE-ELEMENT :new-id t))
|
(setf (slot-value panel 'search-box) (attach-as-child clog-obj "CLOGB3868018633" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
||||||
(setf (slot-value panel 'doc-box) (attach-as-child clog-obj "CLOGB3867964273" :clog-type 'CLOG:CLOG-TEXT-AREA :new-id t))
|
(setf (slot-value panel 'class-only) (attach-as-child clog-obj "CLOGB3868018632" :clog-type 'CLOG:CLOG-FORM-ELEMENT :new-id t))
|
||||||
(setf (slot-value panel 'class-box) (attach-as-child clog-obj "CLOGB3867964272" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
(setf (slot-value panel 'label-class-only) (attach-as-child clog-obj "CLOGB3868018631" :clog-type 'CLOG:CLOG-LABEL :new-id t))
|
||||||
(setf (slot-value panel 'package-box) (attach-as-child clog-obj "CLOGB3867964271" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
(setf (slot-value panel 'status-box) (attach-as-child clog-obj "CLOGB3868018630" :clog-type 'CLOG:CLOG-DIV :new-id t))
|
||||||
(setf (slot-value panel 'type-box) (attach-as-child clog-obj "CLOGB3867964270" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
(setf (slot-value panel 'src-box) (attach-as-child clog-obj "CLOGB3868018629" :clog-type 'CLOG-ACE:CLOG-ACE-ELEMENT :new-id t))
|
||||||
|
(setf (slot-value panel 'doc-box) (attach-as-child clog-obj "CLOGB3868018628" :clog-type 'CLOG:CLOG-TEXT-AREA :new-id t))
|
||||||
|
(setf (slot-value panel 'class-box) (attach-as-child clog-obj "CLOGB3868018627" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
||||||
|
(setf (slot-value panel 'package-box) (attach-as-child clog-obj "CLOGB3868018626" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
||||||
|
(setf (slot-value panel 'type-box) (attach-as-child clog-obj "CLOGB3868018625" :clog-type 'CLOG:CLOG-SELECT :new-id t))
|
||||||
(let ((target (type-box panel))) (declare (ignorable target)) (add-select-options target '(ALIEN-TYPE
|
(let ((target (type-box panel))) (declare (ignorable target)) (add-select-options target '(ALIEN-TYPE
|
||||||
CALLABLE
|
CALLABLE
|
||||||
CLASS
|
CLASS
|
||||||
|
|
@ -64,16 +72,49 @@
|
||||||
(let ((target (label-class-only panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'class-only\\']').attr('id')")))
|
(let ((target (label-class-only panel))) (declare (ignorable target)) (setf (attribute target "for") (clog:js-query target "$('[data-clog-name=\\'class-only\\']').attr('id')")))
|
||||||
(clog:set-on-change (type-box panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
(clog:set-on-change (type-box panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
||||||
(clog:set-on-change (package-box panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
(clog:set-on-change (package-box panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
||||||
(clog:set-on-change (class-box panel) (lambda (target) (declare (ignorable target)) (let* ((item (nth (parse-integer (text-value (class-box panel))) (classes panel)))
|
(clog:set-on-change (class-box panel) (lambda (target) (declare (ignorable target)) (let* ((item (nth (parse-integer (text-value (class-box panel))) (classes panel))))
|
||||||
(fname (getf (definitions:source-location item) :file)))
|
(setf (fname panel) (getf (definitions:source-location item) :file))
|
||||||
(setf (text-value (doc-box panel))
|
(setf (text-value (doc-box panel))
|
||||||
(or (definitions:documentation item)
|
(or (definitions:documentation item)
|
||||||
"No documentation"))
|
"No documentation"))
|
||||||
(cond (fname
|
(cond ((fname panel)
|
||||||
(setf (text-value (src-box panel)) (read-file fname))
|
(setf (text-value (src-box panel)) (read-file (fname panel)))
|
||||||
|
(setf (text-value (file-name panel)) (fname panel))
|
||||||
|
(setf (disabledp (eval-button panel)) nil)
|
||||||
|
(setf (disabledp (eval-sel-button panel)) nil)
|
||||||
|
(setf (state panel) nil)
|
||||||
(js-execute target (format nil "~A.find('~A')" (clog-ace::js-ace (src-box panel)) (definitions:name item))))
|
(js-execute target (format nil "~A.find('~A')" (clog-ace::js-ace (src-box panel)) (definitions:name item))))
|
||||||
(t
|
(t
|
||||||
|
(setf (text-value (file-name panel)) "")
|
||||||
|
(setf (disabledp (eval-button panel)) t)
|
||||||
|
(setf (disabledp (eval-sel-button panel)) t)
|
||||||
|
(setf (disabledp (save-button panel)) t)
|
||||||
|
(setf (state panel) t)
|
||||||
(setf (text-value (src-box panel)) "No file information"))))))
|
(setf (text-value (src-box panel)) "No file information"))))))
|
||||||
|
(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)))))
|
||||||
(clog:set-on-change (class-only panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
(clog:set-on-change (class-only panel) (lambda (target) (declare (ignorable target)) (sys-browser-populate panel)))
|
||||||
(clog:set-on-key-up (search-box panel) (lambda (target data) (declare (ignorable target data)) (sys-browser-populate panel)))
|
(clog:set-on-key-up (search-box panel) (lambda (target data) (declare (ignorable target data)) (sys-browser-populate panel)))
|
||||||
|
(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))))
|
||||||
|
(clog:set-on-click (eval-button panel) (lambda (target) (declare (ignorable target)) (let ((val (text-value (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 clog-obj) "Result"
|
||||||
|
(format nil "~&result: ~A" result)
|
||||||
|
:color-class "w3-green"
|
||||||
|
:time-out 3))))))
|
||||||
|
(clog:set-on-click (eval-sel-button panel) (lambda (target) (declare (ignorable target)) (let ((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 clog-obj) "Result"
|
||||||
|
(format nil "~&result: ~A" result)
|
||||||
|
:color-class "w3-green"
|
||||||
|
:time-out 3))))))
|
||||||
panel))
|
panel))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue