;;;; -*- Mode: LISP; Syntax: Common-Lisp; Base: 10 -*- ;;;; --------------------------------------------------------------------------- ;;;; File name: case-switch-popup.lsp ;;;; System: ;;;; Author: Shawn Nicholson ;;;; Created: July 10, 2002 17:28:45 ;;;; Purpose: ;;;; --------------------------------------------------------------------------- ;;;; Modified: Saturday, August 10, 2002 at 18:14:15 by nicholson ;;;; --------------------------------------------------------------------------- (in-package :fire-case-viewer) (defclass case-switch-popup (cg:dialog) ((calling-window :accessor calling-window :initform nil :initarg :calling-window) )) (defun switch-wm-case-popup (&optional (owner (cg:screen cg:*system*))) (let ((switch-pop (cg:find-or-make-pop-up-window :switch-case-popup 'make-switch-case-popup owner))) (update-listed-cases switch-pop) (cg:pop-up-modal-dialog switch-pop))) (defun make-switch-case-popup (&optional (owner (cg:screen cg:*system*))) (cg:make-window :switch-case-popup :owner owner :calling-window owner :background-color (cg:background-color owner) :class 'case-switch-popup :height 210 :width 241 :pop-up t :left (+ 25 (if (eq owner (cg:screen cg:*system*)) 0 (cg:left owner))) :top (+ 25 (if (eq owner (cg:screen cg:*system*)) 0 (cg:top owner))) :border :palette :title "Switch Working Cases" :dialog-items (make-switch-case-dialog-items) )) (defun make-switch-case-dialog-items () (list (make-instance 'cg:static-text :font (cg:make-font-ex nil "Tahoma" 11 nil) :name :switch-case-name-label :value "Case Name: " :left 7 :top 7 :width 62) (make-instance 'cg:editable-text :font (cg:make-font-ex nil "Tahoma" 11 nil) :name :switch-case-casename :delayed nil :up-down-control nil :value "" :left 68 :top 4 :width 159 :right-attachment :right) (make-instance 'cg:single-item-list :name :case-name-completion-list :font (cg:make-font-ex nil "Tahoma" 11 nil) :available t :left 7 :top 30 :height 120 :width 220 ;; :range (get-currently-loaded-cases owner) :on-double-click 'loaded-case-selected :right-attachment :right :bottom-attachment :bottom) (make-instance 'cg:button :name :switch-case-load-button :font (cg:make-font-ex nil "Tahoma" 11 nil) :title "Load" :left 82 :top 165 :height 18 :width 70 :on-change #'switch-case-load :right-attachment :right :left-attachment :right :top-attachment :bottom :bottom-attachment :bottom) (make-instance 'cg:cancel-button :name :switch-case-cancel-button :font (cg:make-font-ex nil "Tahoma" 11 nil) :left 153 :top 165 :height 18 :width 75 :on-change #'switch-case-cancel :right-attachment :right :left-attachment :right :top-attachment :bottom :bottom-attachment :bottom) (make-instance 'cg:lisp-group-box :name :switch-case-group-box :font (cg:make-font-ex nil "Tahoma" 11 nil) :left 1 :top 1 :height 160 :width 233 :right-attachment :right :bottom-attachment :bottom))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; EVENT Handlers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun update-listed-cases (case-switch-dialog) (setf (cg:range (cg:find-component :case-name-completion-list case-switch-dialog)) (fire::list-currently-loaded-cases :reasoner (reasoner (calling-window case-switch-dialog))))) (defun get-currently-loaded-cases (viewer-window) (fire::list-currently-loaded-cases :reasoner (reasoner viewer-window))) (defun loaded-case-selected (case-switch-dialog loaded-cases-list) (let ((casename-text-window (cg:find-component :switch-case-casename case-switch-dialog))) (setf (cg:value casename-text-window) (format nil "~A" (cg:value loaded-cases-list))))) (defun switch-case-cancel (cancel-button new old) (declare (ignore new old)) (close (cg:parent cancel-button))) (defun switch-case-load (load-button new old) (declare (ignore new old)) (let* ((case-switch-dialog (cg:parent load-button)) (casename (cg:read-from-string-safely (cg:value (cg:find-component :switch-case-casename case-switch-dialog))))) (cg:flag-modal-completion case-switch-dialog casename))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; End of Code