home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / custfvdbob.tcl < prev    next >
Text File  |  1997-11-18  |  8KB  |  297 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)custfvdbob.tcl    /main/titanic/16
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)custfvdbob.tcl    /main/titanic/16   18 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsdbobj.tcl"
  15. require "versionobj.tcl"
  16.  
  17. Class CustFVDbObj : {BrowsDbObj CustomFileVersion VersionObj} {
  18.     method destructor
  19.     constructor
  20.     method promoter
  21.     method browserType
  22.     method compareVersion
  23.     method compareVersionAllowed
  24.     method copyVersion
  25.     method customLevelVersion
  26.     method editFile
  27.     method hasChildren
  28.     method makeUpToDate
  29.     method name
  30.     method openFile
  31.     method removeVersion
  32.     method showFile
  33.     method typeInLabel
  34. }
  35.  
  36. method CustFVDbObj::destructor {this} {
  37.     # Start destructor user section
  38.     # End destructor user section
  39.     $this BrowsDbObj::destructor
  40.     $this VersionObj::destructor
  41. }
  42.  
  43. constructor CustFVDbObj {class this name} {
  44.     set this [CustomFileVersion::constructor $class $this $name]
  45.     set this [BrowsDbObj::constructor $class $this $name]
  46.     set this [VersionObj::constructor $class $this $name]
  47.     return $this
  48. }
  49.  
  50. selfPromoter CustomFileVersion {this} {
  51.     CustFVDbObj promote $this
  52. }
  53.  
  54. method CustFVDbObj::promoter {this} {
  55.     $this BrowsDbObj::promoter
  56.     module_promoter CustFVDbObj $this
  57. }
  58.  
  59. proc CustFVDbObj::associations {} {
  60.     return {}
  61. }
  62.  
  63. method CustFVDbObj::browserType {this} {
  64.     return "[[$this customFile] type]"
  65. }
  66.  
  67. proc CustFVDbObj::childTypes {assoc} {
  68.     if {[lsearch -exact "[CustFVDbObj::associations]" "$assoc"] == -1} {
  69.     return ""
  70.     }
  71.     return "[BrowserProcs::childTypes $assoc]"
  72. }
  73.  
  74. method CustFVDbObj::compareVersion {this} {
  75.     set versionList ""
  76.     foreach version [[$this customFile] customFileVersions] {
  77.     if {"$version" == "$this"} continue
  78.     lappend versionList $version
  79.     }
  80.     BrowserProcs::compareVersion $this [$this customFile] $versionList
  81. }
  82.  
  83. method CustFVDbObj::compareVersionAllowed {this} {
  84.     return 1
  85. }
  86.  
  87. proc CustFVDbObj::controlledLists {} {
  88.     return {"[[$this customFile] customFileVersionList]"}
  89. }
  90.  
  91. method CustFVDbObj::copyVersion {this} {
  92.     set versionList ""
  93.     set myType [$this browserType]
  94.     set myName [$this name]
  95.     foreach custf [[[$this customFile] customLevel] customFiles] {
  96.     if {"[$custf name]" != "$myName"} continue
  97.     if {"[$custf type]" != "$myType"} continue
  98.     foreach version [$custf customFileVersions] {
  99.         if {"$version" == "$this"} continue
  100.         lappend versionList [list $version "$myName.$myType"]
  101.     }
  102.     }
  103.     BrowserProcs::copyVersion $this $versionList
  104. }
  105.  
  106. method CustFVDbObj::customLevelVersion {this} {
  107.     set custl [[$this customFile] customLevel]
  108.     if {[$custl isA Corporate] || [$custl isA Project]} {
  109.     return $custl
  110.     }
  111.     set confV [[ClientContext::global] currentConfig]
  112.     if [$confV isNil] {
  113.     return $confV
  114.     }
  115.     if [$custl isA Config] {
  116.     if {[$confV ConfigVersion::config] == $custl} {
  117.         return $confV
  118.     } else {
  119.         return [ORB::nil]
  120.     }
  121.     }
  122.     return [$custl selectedVersion $confV]
  123. }
  124.  
  125. method CustFVDbObj::editFile {this} {
  126.     if {"[$this getInfo Status]" != "working"} {
  127.     $this showFile
  128.     return
  129.     }
  130.     case "[$this browserType]" in {
  131.     {mnu vie objtype opendefs openlocs
  132.      propdefs proplocs modules copyspecs} {
  133.         set script "SystemUtilities::fork otk uce \
  134.         -c [list [get_comm_name]] \
  135.         -id [$this getInfo Identity]"
  136.         $wmttoolObj startCommand tcl \
  137.         "$script" "" \
  138.         "Starting uce for '[$this name].[$this browserType]'" \
  139.         {0 0} 1
  140.     }
  141.     {pnl} {
  142.         require "ctrlpnldia.tcl"
  143.         global classCount
  144.         incr classCount
  145.         set dlgName .main.ctrlPnlDialog$classCount
  146.         CtrlPnlDialog new $dlgName \
  147.         -helpPressed ".main helpOnName ctrlPnlDialog" \
  148.         -lvlObj [[ClientContext::global] currentCustomLevel] \
  149.         -fileName [$this name] \
  150.         -fileType [$this browserType] \
  151.         -editable 1
  152.         $dlgName popUp
  153.     }
  154.     {gdr} {
  155.         require "groupdefin.tcl"
  156.         global classCount
  157.         incr classCount
  158.         set dlgName .main.groupDefinitionFileDialog$classCount
  159.         GroupDefinitionFileDialog new $dlgName $this \
  160.         -helpPressed ".main helpOnName groupDefinitionFileDialog" \
  161.         -fileName [$this name] \
  162.         -editable 1
  163.         $dlgName popUp
  164.     }
  165.     {checkconfig} {
  166.         require "custcheckd.tcl"
  167.         global classCount
  168.         incr classCount
  169.         set dlgName .main.custCheckDialog$classCount
  170.         CustCheckDialog new $dlgName
  171.         $dlgName edit [[ClientContext::global] currentCustomLevel]
  172.     }
  173.     {default} {
  174.         $this edit
  175.         set tmpFile [args_file {}]
  176.         $this downLoad $tmpFile
  177.         set cmd [list $this upLoad $tmpFile]
  178.         append cmd " ;"
  179.         append cmd " $this quit"
  180.         append cmd " ;"
  181.         append cmd [list BasicFS::removeFile $tmpFile]
  182.         $wmttoolObj startM4Command editor $tmpFile "$cmd" "[$this name]"
  183.     }
  184.     }
  185. }
  186.  
  187. method CustFVDbObj::hasChildren {this} {
  188.     return 0
  189. }
  190.  
  191. proc CustFVDbObj::infoProperties {} {
  192.     return [concat \
  193.     [BrowserProcs::infoProperties] \
  194.     {Status Version Comments Created Updated Frozen "Controlled Actions"
  195.      "Created By" "Updated By"} \
  196.     ]
  197. }
  198.  
  199. method CustFVDbObj::makeUpToDate {this} {
  200.     $this VersionObj::makeUpToDate
  201. }
  202.  
  203. method CustFVDbObj::name {this} {
  204.     return "[[$this customFile] name]"
  205. }
  206.  
  207. method CustFVDbObj::openFile {this} {
  208.     case [$this getInfo Status] in {
  209.     backGround {
  210.         set treeNode [$this treeNode]
  211.         if {"$treeNode" != ""} {
  212.         $treeNode open
  213.         } else {
  214.         [$this infoObject] open
  215.         }
  216.     }
  217.     working {
  218.         $this editFile
  219.     }
  220.     default {
  221.         $this showFile
  222.     }
  223.     } 
  224. }
  225.  
  226. method CustFVDbObj::removeVersion {this} {
  227.     set versionList ""
  228.     foreach version [[$this customFile] customFileVersions] {
  229.     if [$version isLeaf] {
  230.         lappend versionList $version
  231.     }
  232.     }
  233.     BrowserProcs::removeVersion \
  234.     "[$this getParent CustomLevelVersion]" \
  235.     "[$this customFile]" "$versionList"
  236. }
  237.  
  238. method CustFVDbObj::showFile {this} {
  239.     case "[$this browserType]" in {
  240.     {mnu vie objtype opendefs openlocs
  241.      propdefs proplocs modules copyspecs} {
  242.         set script "SystemUtilities::fork otk uce -r \
  243.         -c [list [get_comm_name]] \
  244.         -id [$this getInfo Identity]"
  245.         $wmttoolObj startCommand tcl \
  246.         "$script" "" \
  247.         "Starting uce for '[$this name].[$this browserType]'" \
  248.         {0 0} 1
  249.     }
  250.     {pnl} {
  251.         require "ctrlpnldia.tcl"
  252.         global classCount
  253.         incr classCount
  254.         set dlgName .main.ctrlPnlDialog$classCount
  255.         CtrlPnlDialog new $dlgName \
  256.         -helpPressed ".main helpOnName ctrlPnlDialog" \
  257.         -lvlObj [[ClientContext::global] currentCustomLevel] \
  258.         -fileName [$this name] \
  259.         -fileType [$this browserType] \
  260.         -editable 0
  261.         $dlgName popUp
  262.     }
  263.     {gdr} {
  264.         require "groupdefin.tcl"
  265.         global classCount
  266.         incr classCount
  267.         set dlgName .main.groupDefinitionFileDialog$classCount
  268.         GroupDefinitionFileDialog new $dlgName $this \
  269.         -helpPressed ".main helpOnName groupDefinitionFileDialog" \
  270.         -fileName [$this name] \
  271.         -editable 0
  272.         $dlgName popUp
  273.     }
  274.     {checkconfig} {
  275.         require "custcheckd.tcl"
  276.         global classCount
  277.         incr classCount
  278.         set dlgName .main.custCheckDialog$classCount
  279.         CustCheckDialog new $dlgName
  280.         $dlgName show [[ClientContext::global] currentCustomLevel]
  281.     }
  282.     {default} {
  283.         set tmpFile [args_file {}]
  284.         $this downLoad $tmpFile
  285.         set cmd [list BasicFS::removeFile $tmpFile]
  286.         $wmttoolObj startM4Command viewer $tmpFile "$cmd" "[$this name]"
  287.     }
  288.     }
  289. }
  290.  
  291. method CustFVDbObj::typeInLabel {this} {
  292.     return 1
  293. }
  294.  
  295. # Do not delete this line -- regeneration end marker
  296.  
  297.