;;--------------------------------------------------------------------------* ;; Dateiname: SD_Intelligente-Rahmenauswahl.lsp ;; Version : 1.0 ;; Datum : 24.08.2015 ;; Author : BFE ;;--------------------------------------------------------------------------* ;; Auswahl über Rahmen, bei Teilen die sich in geschützten BGs befinden, ;; wird automatisch die übergeordnete BG ausgewählt ;;--------------------------------------------------------------------------* ;;Versionierung ;; 1.0 erste funktionierende Version ;;--------------------------------------------------------------------------* (in-package :BFE) (use-package '( :oli)) ;;****************************** (sd-defdialog 'Rahmenauswahl ;;****************************** :dialog-title "intelligente Rahmenauswahl" :trace nil :variables '( (auswahl :selection (*sd-object-seltype*) :multiple-items t :prompt-text "mit Rahmen auswaehlen" :title "Auswahl" :initial-value nil :after-input (progn (setq rdy-list '()) (dolist (auswahl-einzeln auswahl) (if (equal (sd-inq-obj-parent-contents-read-only-p auswahl-einzeln) t) (if (equal (sd-inq-obj-parent-contents-read-only-p (sd-inq-parent-obj auswahl-einzeln)) t) (if (equal (sd-inq-obj-parent-contents-read-only-p (sd-inq-parent-obj (sd-inq-parent-obj auswahl-einzeln))) t) (progn (setf temp-list (sd-inq-parent-obj (sd-inq-parent-obj (sd-inq-parent-obj auswahl-einzeln)))) (push temp-list rdy-list) );;progn ;;else Stufe 3 (progn (setf temp-list (sd-inq-parent-obj (sd-inq-parent-obj auswahl-einzeln))) (push temp-list rdy-list) );;progn );;end if Stufe 3 ;;else Stufe 2 (progn (setf temp-list (sd-inq-parent-obj auswahl-einzeln)) (push temp-list rdy-list) );;progn );;end if Stufe 2 ;;else Stufe 1 (progn (setf temp-list (sd-pathname-to-obj (sd-inq-obj-pathname auswahl-einzeln))) (push temp-list rdy-list) ) );;end if Stufe 1 );;dolist (do-it) );;prgn );;auswahl (auswahl-neu :selection (*sd-object-seltype*) :multiple-items t :toggle-type :invisible :initial-value nil );;auswahl-neu ("Positionieren") (Pos :title "positionieren" ;:toogle-type :wide-toogle :toggle-type :invisible ;; hier umstellen ob der Push-Button unsichtbar oder klickbar sein soll :position-part auswahl-neu );;Pos );;variables :local-functions '( (do-it () (progn (SD-SET-VARIABLE-STATUS 'auswahl-neu :value rdy-list) (preselect auswahl-neu :interactive) );;progn );;do-it );;local-functions :ok-action () :help-action () ;(progn ;(display "Teile koennen per Fensterrahmen ausgewaehlt werden") ;(display "") ;(display "Befinden sich ausgewaehlte Teile in einer schreibgeschuetzten BG") ;(display "wird automatisch dieselbige in die Auswahlliste uebernommen") ;(display "") ;) :cancel-action () )