home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / ucustfuiob.tcl < prev    next >
Text File  |  1996-12-12  |  5KB  |  195 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)ucustfuiob.tcl    /main/hindenburg/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)ucustfuiob.tcl    /main/hindenburg/5   12 Dec 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsuiobj.tcl"
  15.  
  16. Class UCustFUiObj : {BrowsUiObj} {
  17.     constructor
  18.     method destructor
  19.     method addExternalFile
  20.     method externalFiles
  21.     method printObjects
  22.     method removeObjects
  23.     attribute pattern
  24. }
  25.  
  26. global UCustFUiObj::uiClass
  27. set UCustFUiObj::uiClass "UserCustomFiles"
  28.  
  29.  
  30. constructor UCustFUiObj {class this name} {
  31.     set this [BrowsUiObj::constructor $class $this $name]
  32.     # Start constructor user section
  33.  
  34.     $this uiName "<user customization files>"
  35.     $this uiText "user customization files"
  36.     $this pattern "*"
  37.  
  38.     # End constructor user section
  39.     return $this
  40. }
  41.  
  42. method UCustFUiObj::destructor {this} {
  43.     # Start destructor user section
  44.     # End destructor user section
  45.     $this BrowsUiObj::destructor
  46. }
  47.  
  48. method UCustFUiObj::addExternalFile {this} {
  49.     foreach childType [UCustFUiObj::externalFileNames] {
  50.     set externalFileList($childType) 1
  51.     }
  52.     foreach externalFile [$this getChildSet externalFiles] {
  53.     set type [$externalFile uiName]
  54.     if [info exists externalFileList($type)] {
  55.         unset externalFileList($type)
  56.     }
  57.     }
  58.     if [info exists externalFileList] {
  59.     set entrySet [lsort [array names externalFileList]]
  60.     } else {
  61.     set entrySet ""
  62.     }
  63.  
  64.     require "editseldia.tcl"
  65.     set box $wmttoolObj.newExternalF
  66.     ClassMaker::extend EditSelDialog NewExternalFileEditSelDialog uiObj
  67.     NewExternalFileEditSelDialog new $box \
  68.     -title "New External File" \
  69.     -message "External File:" \
  70.     -entrySet $entrySet \
  71.     -uiObj $this \
  72.     -okPressed {
  73.         set file [%this text]
  74.         set selection [splitFileName $file]
  75.         set name [lindex $selection 0]
  76.         set type [lindex $selection 1]
  77.         case "$type" in {
  78.         {opendefs openlocs propdefs proplocs} {
  79.             wmtkerror "External file of type $type not supported"
  80.             %this delete
  81.             return
  82.         }
  83.         }
  84.         set script "global UCustFUiObj:custF"
  85.         append script " ;"
  86.         append script " set UCustFUiObj:custF \[CustFileUtilities::make \
  87.         \"\" [list $name] [list $type] \
  88.         \]"
  89.         require "custfileut.tcl"
  90.         $wmttoolObj startCommand tcl \
  91.         "$script" "" \
  92.         "Creating external file '$file'" \
  93.         {1 0} 1
  94.         %this delete
  95.     } \
  96.     -editPressed {
  97.         if [info exists UCustFUiObj:custF] {
  98.         if [file isfile ${UCustFUiObj:custF}] {
  99.             regsub -all " |\\." "[$this text]" "_" fileId
  100.             [$this uiObj].ExternalFile:$fileId editFile
  101.         }
  102.         }
  103.     }
  104.     $box popUp
  105. }
  106.  
  107. proc UCustFUiObj::associations {} {
  108.     return {externalFiles}
  109. }
  110.  
  111. proc UCustFUiObj::childTypes {assoc} {
  112.     if {[lsearch -exact "[UCustFUiObj::associations]" "$assoc"] == -1} {
  113.     return ""
  114.     }
  115.     return [BrowserProcs::childTypes $assoc]
  116. }
  117.  
  118. proc UCustFUiObj::externalFileNames {} {
  119.     return [list \
  120.     cad.mnu cad.pnl ccd.mnu ccd.pnl checkconfig class.mnu desk.mnu \
  121.     desk.vie dfd.mnu dfd.pnl diagram.mnu etd.mnu etd.pnl mgd.mnu mgd.pnl \
  122.     objtype.objtype roundtrip.roundtrip std.mnu std.pnl ucd.mnu ucd.pnl \
  123.     u_clbrowse.tcl u_desk.tcl u_docbatch.tcl u_uce.tcl u_ude.tcl \
  124.     [path_name file [m4_var meta4UserEnv]] \
  125.     ]
  126. }
  127.  
  128. method UCustFUiObj::externalFiles {this} {
  129.     set externalFiles ""
  130.     set crntPath [pwd]
  131.     cd ~
  132.     if [catch {cd icase}] {
  133.     BasicFS::makeDir icase
  134.     cd icase
  135.     }
  136.     if [catch {set files [glob [$this pattern]]}] {
  137.     set files ""
  138.     }
  139.     set meta4UserEnv [m4_var meta4UserEnv]
  140.     if [file exists "$meta4UserEnv"] {
  141.     lappend files "$meta4UserEnv" 
  142.     }
  143.     foreach file [lsort $files] {
  144.     if {! [file isfile $file]} continue
  145.     regsub -all " |\\." "$file" "_" fileId
  146.     set externalFile $this.${ExtFUiObj::uiClass}:$fileId
  147.     if {! [isCommand $externalFile]} {
  148.         ExtFUiObj new $externalFile \
  149.         -parent $this \
  150.         -uiName "$file" \
  151.         -directory [pwd]
  152.     }
  153.     lappend externalFiles $externalFile
  154.     }
  155.     cd $crntPath
  156.     return "$externalFiles"
  157. }
  158.  
  159. proc UCustFUiObj::infoProperties {} {
  160.     return [BrowserProcs::infoProperties]
  161. }
  162.  
  163. method UCustFUiObj::printObjects {this} {
  164.     set asciiFiles ""
  165.     foreach obj [$wmttoolObj selectedObjSet] {
  166.     lappend asciiFiles [path_name concat [$obj directory] [$obj uiName]]
  167.     }
  168.     BrowserProcs::printObjects $asciiFiles "" ""
  169. }
  170.  
  171. method UCustFUiObj::removeObjects {this} {
  172.     set box $wmttoolObj.removeWarning
  173.     WarningDialog new $box \
  174.     -title "Delete Warning" \
  175.     -message [BrowserProcs::removeMessage] \
  176.     -helpPressed {.main helpOnName removeWarning} \
  177.     -cancelPressed {%this delete} \
  178.     -okPressed {
  179.         set script ""
  180.         foreach obj [$wmttoolObj selectedObjSet] {
  181.         if {"$script" != ""} {
  182.             append script " ;"
  183.         }
  184.         append script [list BasicFS::removeFile \
  185.             [path_name concat [$obj directory] [$obj uiName]]]
  186.         }
  187.         $wmttoolObj startCommand tcl "$script" "" "" {1 0} 1
  188.         %this delete
  189.     }
  190.     $box popUp
  191. }
  192.  
  193. # Do not delete this line -- regeneration end marker
  194.  
  195.