;********************************************************************************************* ; Dateiname : SD_Browserfarben_Name_auswerten.lsp ; Autor : wz ; Erstellt : 03/2017 ; geändert : ;********************************************************************************************* ; Beschreibung : - Setzt Browserfarben in abhängigkeit vom der Benennung im Browser ; - bei aufrufen wird das einfärben eingeschaltet, beim erneuten Aufrufen wieder ausgeschaltet, ... ;********************************************************************************************* ; Änderungen ; ;********************************************************************************************* (in-package :teo) (use-package :oli) (setf FlagColorState nil) ; Browserfarbe ändern (sd-defdialog 'SD_Browserfarben_Name_auswerten ;:dialog-title "kein Titel notwendig" :dialog-control :sequential :toolbox-button t :variables '( ) ;end variables :ok-action '(progn (if (not FlagColorState) ;;then >> Browser umfärben (progn (ColorsON) (browserfunk) (sd-browser-exec-cmd "parcel-gbrowser" :REFRESH-TREE) ;;Flag setzen (setf FlagColorState t) );;progn ;;else >> Browserfarbe wegnehmen (progn (ColorsOFF) (browserfunk) (sd-browser-exec-cmd "parcel-gbrowser" :REFRESH-TREE) ;;Flag setzen (setf FlagColorState nil) );;progn );;if );end Progn :local-functions '( (ColorsOFF () (defun my-color-interrogator (node name) (declare (ignore name)) (let ((objname (BrowserNode-objPath node))) "#000000" );;let );;defun );;ColorsOFF (ColorsON () (defun my-color-interrogator (node name) (declare (ignore name)) (setf name (sd-pathname-to-obj(BrowserNode-objPath node))) (when (AND name ;;die Variable name einen Wert hat, und (OR (sd-inq-part-p name) ;;es sich um ein Teil oder (sd-inq-assembly-p name) ;;eine Baugruppe handelt );;OR );;AND (cond ;; (Bedingung Result) ;; Auswerten des BASENAME einzel ;; ((sd-string-match-pattern-p "*work" (sd-inq-obj-basename name)) "#0000ff" ) ;; blau ;; ((sd-string-match-pattern-p "ENR*" (sd-inq-obj-basename name)) "#FF8000" ) ;; orange ;; Auswerten des BASENAME - ODER ( (OR (sd-string-match-pattern-p "*work" (sd-inq-obj-basename name)) (sd-string-match-pattern-p "ENR*" (sd-inq-obj-basename name)) );; OR "#008000" ) ;: grün ; Auswerten von Attributen ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) "In Arbeit") "#0000ff" ) ;; blau ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) "Zur Pruefung") "#FF00FF" ) ;: Magenta ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) "Vorfreigabe") "#FF8000" ) ;: orange ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) "Freigabe") "#008000" ) ;: grün ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) "Gesperrt") "#FF0000" ) ;: rot ;;((sd-string= (sd-inq-item-attribute name "PDM-ATTR" :STATUS :attachment :contents) nil) "#000000" ) ;; );;cond );;when );;defun );; (browserfunk () (sd-browser-add-interrogator "parcel-gbrowser" :interrogator-type :text-color :interrogator-func 'my-color-interrogator) );endbrowserfunk );endlocalfunction ) ;enddefdialog