;;;; -*- Mode: LISP; Syntax: Common-Lisp; Base: 10 -*- ;;;; --------------------------------------------------------------------------- ;;;; File name: case-create-popup.lsp ;;;; System: ;;;; Author: Shawn Nicholson ;;;; Created: September 11, 2002 11:50:28 ;;;; Purpose: ;;;; --------------------------------------------------------------------------- ;;;; Modified: Saturday, May 10, 2003 at 14:58:43 by nicholson ;;;; --------------------------------------------------------------------------- (in-package :fire-case-viewer) (defclass case-create-popup (cg:dialog) ((calling-window :accessor calling-window :initform nil :initarg :calling-window) )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; EVENT Handlers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun validate-casename (casename new-case-dialog) (declare (ignore casename new-case-dialog)) t) (defun new-case-on-ok (ok-button new old) (declare (ignore new old)) (let* ((new-case-dialog (cg:parent ok-button)) (casename (cg:read-from-string-safely (cg:value (cg:find-component :new-case-name new-case-dialog)))) (author (cg:read-from-string-safely (cg:value (cg:find-component :new-case-author new-case-dialog)))) (copy (cg:value (cg:find-component :new-case-copy-box new-case-dialog)))) (if (validate-casename casename new-case-dialog) (cg:flag-modal-completion new-case-dialog (list casename author copy)) (cg:pop-up-message-dialog new-case-dialog "New Casename Error" "Case already exists with that name" nil "Ok")))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Window Creation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun case-creation-popup (&optional (owner (cg:screen cg:*system*))) (cg:pop-up-modal-dialog (cg:find-or-make-pop-up-window :case-creation-popup 'make-create-case-popup owner))) (defun make-create-case-popup (&optional (owner (cg:screen cg:*system*))) (cg:make-window :case-creation-popup :owner owner :calling-window owner :background-color (cg:background-color owner) :class 'case-create-popup :height 145 :width 248 :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 "Create New Case" :dialog-items (make-create-case-dialog-items) )) (defun make-create-case-dialog-items () (list (make-instance 'cg:static-text :name :static-text-7 :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :value "Case Name" :left 8 :top 12 :height 18 :width 64) (make-instance 'cg:editable-text :name :new-case-name :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :value "" :left 72 :top 8) (make-instance 'cg:static-text :name :static-text-8 :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :value "Author" :left 28 :top 48 :height 13 :width 38) (make-instance 'cg:editable-text :name :new-case-author :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :value "" :left 72 :top 44) (make-instance 'cg:check-box :name :new-case-copy-box :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :title "Use contents of current case" :left 18 :top 70 :width 162) (make-instance 'cg:cancel-button :name :cancel-button-2 :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :left 169 :top 95 :height 20 :width 67) (make-instance 'cg:button :name :new-case-ok-button :font (cg:make-font-ex nil "Tahoma / ANSI" 11 nil) :title "Ok" :on-change 'new-case-on-ok :left 91 :top 95 :height 20 :width 68)) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; End of Code