home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / hcustfuiob.tcl < prev    next >
Text File  |  1997-10-17  |  6KB  |  212 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)hcustfuiob.tcl    /main/titanic/14
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)hcustfuiob.tcl    /main/titanic/14   17 Oct 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsuiobj.tcl"
  15.  
  16. Class HCustFUiObj : {BrowsUiObj} {
  17.     constructor
  18.     method destructor
  19.     method externalFiles
  20.     method files
  21.     method initializeInfo
  22.     method moduleFiles
  23.     method printObjects
  24.     method removeObjects
  25. }
  26.  
  27. global HCustFUiObj::uiClass
  28. set HCustFUiObj::uiClass "CustomFiles"
  29.  
  30.  
  31. constructor HCustFUiObj {class this name} {
  32.     set this [BrowsUiObj::constructor $class $this $name]
  33.     # Start constructor user section
  34.  
  35.     $this uiName "<customization files>"
  36.     $this uiText "customization files"
  37.  
  38.     # End constructor user section
  39.     return $this
  40. }
  41.  
  42. method HCustFUiObj::destructor {this} {
  43.     # Start destructor user section
  44.     # End destructor user section
  45.     $this BrowsUiObj::destructor
  46. }
  47.  
  48. proc HCustFUiObj::associations {} {
  49.     set associations {externalFiles}
  50.  
  51.     # Only show module files when it is visible within the view spec
  52.     if [catch {
  53.     set viewSpec [[.main viewHdlr] getViewSpec \
  54.         "${HCustFUiObj::uiClass}" "" "[[.main infoView] currentViewName]"]
  55.     }] {
  56.     resetErrorVars
  57.     lappend associations moduleFiles
  58.     } elseif {[isCommand $viewSpec] &&
  59.           [lsearch -exact "[$viewSpec associations]" moduleFiles] != -1} {
  60.     lappend associations moduleFiles
  61.     }
  62.  
  63.     return $associations
  64. }
  65.  
  66. proc HCustFUiObj::childTypes {assoc} {
  67.     if {[lsearch -exact "[HCustFUiObj::associations]" "$assoc"] == -1} {
  68.     return ""
  69.     }
  70.     set childTypes [BrowserProcs::childTypes $assoc]
  71.     case "$childTypes" in {
  72.     {ExternalFile} {
  73.         return {ExternalDirectory ExternalFile}
  74.     }
  75.     {ModuleFile} {
  76.         return ExternalDirectory
  77.     }
  78.     {default} {
  79.         return "$childTypes"
  80.     }
  81.     }
  82. }
  83.  
  84. proc HCustFUiObj::externalEtcFileNames {} {
  85.     set externalEtcFileNames {
  86.     cad.mnu cad.pnl ccd.mnu ccd.pnl checkconfig.checkconfig
  87.     class.mnu cod.mnu cod.pnl desk.mnu desk.vie
  88.     dfd.mnu dfd.pnl diagram.mnu etd.mnu etd.pnl m4env.m4env mgd.mnu mgd.pnl
  89.     objtype.objtype opendefs.opendefs openlocs.openlocs propdefs.propdefs
  90.     proplocs.proplocs roundtrip.roundtrip std.mnu std.pnl ucd.mnu ucd.pnl
  91.     }
  92.     if {! [[[.main currentObj] browsUiObj] inModule]} {
  93.     lappend externalEtcFileNames modules.modules
  94.     }
  95.     return $externalEtcFileNames
  96. }
  97.  
  98. proc HCustFUiObj::externalFileNames {} {
  99.     set currentObj [[.main currentObj] browsUiObj]
  100.     if {"$currentObj" == ""} {
  101.     return ""
  102.     }
  103.     for {set parent $currentObj} \
  104.     {"$parent" != ""} \
  105.     {set parent [$parent parent]} {
  106.         if {! [$parent isA ExtFUiObj]} break
  107.         if {"[$parent getInfo Type]" != "ExternalDirectory"} continue
  108.         if {"[$parent getInfo Name]" == "tcl"} {
  109.         return [HCustFUiObj::externalTclFileNames]
  110.         }
  111.         if {"[$parent getInfo Name]" == "etc"} {
  112.         return [HCustFUiObj::externalEtcFileNames]
  113.         }
  114.     }
  115.     return ""
  116. }
  117.  
  118. method HCustFUiObj::externalFiles {this} {
  119.     set directory [m4_var get M4_home]
  120.     set triples [list [list etc $directory 0] [list tcl $directory 0]]
  121.     return [$this files $triples]
  122. }
  123.  
  124. proc HCustFUiObj::externalTclFileNames {} {
  125.     if [[[.main currentObj] browsUiObj] inModule] {
  126.     return {
  127.         clbrowse.tcl d_desk.tcl docbatch.tcl mtool.tcl s_desk.tcl uce.tcl
  128.         ude.tcl
  129.     }
  130.     }
  131.     return {
  132.     u_clbrowse.tcl u_desk.tcl u_docbatch.tcl u_mtool.tcl u_uce.tcl
  133.     u_ude.tcl
  134.     }
  135. }
  136.  
  137. method HCustFUiObj::files {this triples} {
  138.     set externalFiles ""
  139.     foreach triple $triples {
  140.     set file [lindex $triple 0]
  141.     set directory [lindex $triple 1]
  142.     set inModule [lindex $triple 2]
  143.     regsub -all " |\\." "$file" "_" fileId
  144.     set externalFile $this.${ExtFUiObj::uiClass}:$fileId
  145.     if {! [isCommand $externalFile]} {
  146.         ExtFUiObj new $externalFile \
  147.         -parent $this \
  148.         -uiName "$file" \
  149.         -directory $directory \
  150.         -isDirectory 1 \
  151.         -inModule $inModule
  152.     }
  153.     lappend externalFiles $externalFile
  154.     }
  155.     return "$externalFiles"
  156. }
  157.  
  158. proc HCustFUiObj::infoProperties {} {
  159.     return [BrowserProcs::infoProperties]
  160. }
  161.  
  162. method HCustFUiObj::initializeInfo {this dummy} {
  163.     $this BrowsUiObj::initializeInfo $dummy
  164.     $this setInfo Text "[$this uiText] of [[$this parent] getInfo Text]"
  165. }
  166.  
  167. method HCustFUiObj::moduleFiles {this} {
  168.     set triples ""
  169.     if {[.main customLevelVersion] == [$this parent]} {
  170.     foreach module [[.main moduleHdlr] moduleSpecSet] {
  171.         set path [$module path]
  172.         set directory [path_name directory $path]
  173.         set file [path_name file $path]
  174.         lappend triples [list $file $directory 1]
  175.     }
  176.     }
  177.     return [$this files [lsort $triples]]
  178. }
  179.  
  180. method HCustFUiObj::printObjects {this} {
  181.     set asciiFiles ""
  182.     foreach obj [.main selectedObjSet] {
  183.     lappend asciiFiles [path_name concat [$obj directory] [$obj uiName]]
  184.     }
  185.     BrowserProcs::printObjects $asciiFiles ""
  186. }
  187.  
  188. method HCustFUiObj::removeObjects {this} {
  189.     set box .main.removeWarning
  190.     YesNoWarningDialog new $box \
  191.     -title "Confirm Object Delete" \
  192.     -message [BrowserProcs::removeMessage] \
  193.     -noPressed {%this delete} \
  194.     -yesPressed {
  195.         set script ""
  196.         foreach obj [.main selectedObjSet] {
  197.         if {"$script" != ""} {
  198.             append script " ;"
  199.         }
  200.         append script [list BasicFS::removeFile \
  201.             [path_name concat [$obj directory] [$obj uiName]]]
  202.         }
  203.         .main startCommand tcl "$script" "" "" {1 0} 1
  204.         %this delete
  205.     }
  206.     $box delCancelButton
  207.     $box popUp
  208. }
  209.  
  210. # Do not delete this line -- regeneration end marker
  211.  
  212.