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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)fileprdbob.tcl    /main/titanic/7
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)fileprdbob.tcl    /main/titanic/7   16 Oct 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.  
  16. Class FilePRDbObj : {BrowsDbObj FilePropertyReference} {
  17.     method destructor
  18.     constructor
  19.     method promoter
  20.     method browserObjType
  21.     method browserType
  22.     method customLevelVersion
  23.     method editFile
  24.     method hasChildren
  25.     method initializeInfo
  26.     method makeUpToDate
  27.     method pathName
  28.     method previewFile
  29.     method selectFixed
  30.     method showFile
  31.     method versionName
  32. }
  33.  
  34. method FilePRDbObj::destructor {this} {
  35.     # Start destructor user section
  36.     # End destructor user section
  37.     $this BrowsDbObj::destructor
  38. }
  39.  
  40. constructor FilePRDbObj {class this name} {
  41.     set this [FilePropertyReference::constructor $class $this $name]
  42.     set this [BrowsDbObj::constructor $class $this $name]
  43.     return $this
  44. }
  45.  
  46. method FilePRDbObj::promoter {this} {
  47.     $this BrowsDbObj::promoter
  48.  
  49.     module_promoter FilePRDbObj $this
  50. }
  51.  
  52. selfPromoter FilePropertyReference {this} {
  53.     FilePRDbObj promote $this
  54. }
  55.  
  56. proc FilePRDbObj::associations {} {
  57.     return {}
  58. }
  59.  
  60. method FilePRDbObj::browserObjType {this} {
  61.     return "FilePRDbObj"
  62. }
  63.  
  64. method FilePRDbObj::browserType {this} {
  65.     return [$this type]
  66. }
  67.  
  68. proc FilePRDbObj::childTypes {assoc} {
  69.     if {[lsearch -exact "[FilePRDbObj::associations]" "$assoc"] == -1} {
  70.     return ""
  71.     }
  72.     return "[BrowserProcs::childTypes $assoc]"
  73. }
  74.  
  75. proc FilePRDbObj::controlledLists {} {
  76.     return ""
  77. }
  78.  
  79. method FilePRDbObj::customLevelVersion {this} {
  80.     return [$this systemVersion]
  81. }
  82.  
  83. method FilePRDbObj::editFile {this} {
  84.     $this edit
  85. }
  86.  
  87. method FilePRDbObj::hasChildren {this} {
  88.     return 0
  89. }
  90.  
  91. proc FilePRDbObj::infoProperties {} {
  92.     return [concat \
  93.     [BrowserProcs::infoProperties] \
  94.     {Status Version "Controlled Actions" Path} \
  95.     ]
  96. }
  97.  
  98. method FilePRDbObj::initializeInfo {this confV} {
  99.     [$this info] contents ""
  100.     $this setInfo FileVersion [$this referredFileVersion $confV]
  101. }
  102.  
  103. method FilePRDbObj::makeUpToDate {this} {
  104.     # dummy call to server
  105.     $this referredFileVersion [$this getParent ConfigVersion]
  106. }
  107.  
  108. method FilePRDbObj::pathName {this} {
  109.     return "[path_name concat \
  110.     [[$this document] directory] [$this getPropertyValue fileSystemPath] \
  111.     ]"
  112. }
  113.  
  114. method FilePRDbObj::previewFile {this} {
  115.     $this preview
  116. }
  117.  
  118. method FilePRDbObj::selectFixed {this} {
  119.     set versionList ""
  120.     set file [$this referredFile]
  121.     set fileV [[$this info] set FileVersion]
  122.     foreach version [$file fileVersions] {
  123.     if {"$version" == "$fileV"} continue
  124.     lappend versionList $version
  125.     }
  126.  
  127.     if [lempty $versionList] {
  128.     wmtkinfo "There are no other versions to select from"
  129.     return
  130.     }
  131.  
  132.     set headerSpecList {
  133.     {Version 25 ascii {increasing 1}}
  134.     {Status 14 ascii {increasing 2}}
  135.     {"Frozen date" 30 ascii {none}}
  136.     {Comments 50 ascii {none}}
  137.     }
  138.     set objectSpecList ""
  139.     foreach version $versionList {
  140.     set typeSpec [getObjectSpec [$wmttoolObj objectHdlr] \
  141.         [$version uiClass] [$version browserType] \
  142.     ]
  143.     if {"$typeSpec" != ""} {
  144.         set icon [$typeSpec smallIcon]
  145.     } else {
  146.         set icon ""
  147.     }
  148.     lappend objectSpecList [list $icon \
  149.         [$version versionName] \
  150.         [$version status] \
  151.         [$version freezeTime2String] \
  152.         [$version comments] \
  153.     ]
  154.     }
  155.  
  156.     require "browsviewd.tcl"
  157.     set box $wmttoolObj.selectFixed
  158.     ClassMaker::extend BrowsViewDialog SelectFixedBrowsViewDialog dbObj
  159.     SelectFixedBrowsViewDialog new $box \
  160.     -title "Select Fixed" \
  161.     -message "File '[$file name].[$file type]'" \
  162.     -headerSpecList $headerSpecList \
  163.     -objectSpecList $objectSpecList \
  164.     -objectList $versionList \
  165.     -dbObj $this \
  166.     -cancelPressed {%this delete} \
  167.     -okPressed {
  168.         set dbObj [%this dbObj]
  169.         set version [[lindex [[%this view] selectedSet] 0] object]
  170.         set script "$dbObj fixate $version"
  171.         set confVId [[$dbObj getParent ConfigVersion] identity]
  172.         set sysVId [[$dbObj getParent SystemVersion] identity]
  173.         set argsfile [args_file [$dbObj identity]]
  174.         set args "updateDocDir $confVId $sysVId [list $argsfile]"
  175.         set cmd "$wmttoolObj startDocbatch mtool [list $args] \"\" {0 0} 0"
  176.         $wmttoolObj startCommand tcl "$script" "$cmd" "" {1 0} 1
  177.         %this delete
  178.     }
  179.     [$box view] selectionPolicy BROWSE
  180.     $box popUp
  181. }
  182.  
  183. method FilePRDbObj::showFile {this} {
  184.     $this show
  185. }
  186.  
  187. method FilePRDbObj::versionName {this} {
  188.     set fileV [[$this info] set FileVersion]    
  189.     if [$fileV isNil] {
  190.     return ""
  191.     }
  192.     return [$fileV versionName]
  193. }
  194.  
  195. # Do not delete this line -- regeneration end marker
  196.  
  197.