diff --git a/tools/clog-builder-sys-browser.lisp b/tools/clog-builder-sys-browser.lisp
index 0c6880c..f979f58 100644
--- a/tools/clog-builder-sys-browser.lisp
+++ b/tools/clog-builder-sys-browser.lisp
@@ -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)) "")
diff --git a/tools/panel-sys-browser.clog b/tools/panel-sys-browser.clog
index 8a7f09b..876d025 100644
--- a/tools/panel-sys-browser.clog
+++ b/tools/panel-sys-browser.clog
@@ -1,84 +1 @@
-
status
\ No newline at end of file
+status
\ No newline at end of file
diff --git a/tools/panel-sys-browser.lisp b/tools/panel-sys-browser.lisp
index 8ff5359..154e545 100644
--- a/tools/panel-sys-browser.lisp
+++ b/tools/panel-sys-browser.lisp
@@ -18,75 +18,61 @@
(let ((panel
(change-class
(clog:create-div clog-obj :content
- "status
"
+ "status
"
: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))
\ No newline at end of file