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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)contfileui.tcl    /main/titanic/8
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)contfileui.tcl    /main/titanic/8   29 Aug 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require_module_file "contfile.tcl" continuus
  15. require_module_file "vsfileobj.tcl" vcm
  16.  
  17. # This class represents a Continuus file in the browser.
  18.  
  19. Class ContFileUiObj : {ContFile VSFileObj} {
  20.     constructor
  21.     method destructor
  22.     method initializeInfo
  23.     method showDiff
  24.     method getInfo
  25.     method path
  26.     method previousVersion
  27.     method promoter
  28.     method otherVersions
  29. }
  30.  
  31. constructor ContFileUiObj {class this name type system i_name} {
  32.     set this [ContFile::constructor $class $this $name $type $system]
  33.     set this [VSFileObj::constructor $class $this $i_name]
  34.     # Start constructor user section
  35.     # End constructor user section
  36.     return $this
  37. }
  38.  
  39. method ContFileUiObj::destructor {this} {
  40.     # Start destructor user section
  41.     # End destructor user section
  42.     $this ContFile::destructor
  43.     $this VSFileObj::destructor
  44. }
  45.  
  46. proc ContFileUiObj::associations {} {
  47.     return "[VSFileObj::associations]"
  48. }
  49.  
  50. proc ContFileUiObj::childTypes {assoc} {
  51.     return "[VSFileObj::childTypes $assoc]"
  52. }
  53.  
  54. proc ContFileUiObj::controlledLists {} {
  55.     return "[VSFileObj::controlledLists]"
  56. }
  57.  
  58. proc ContFileUiObj::infoProperties {} {
  59.         return [concat \
  60.         [VSFileObj::infoProperties] \
  61.         {Version Status Owner Modified Created Comment \
  62.         "Continuus Type" Path Instance Platform Release Task} \
  63.         ]
  64. }
  65.  
  66.  
  67. # Initialize all info except Comment.
  68. #
  69. method ContFileUiObj::initializeInfo {this dummy} {
  70.     $this VSFileObj::initializeInfo $dummy
  71.     set fileName [$this path]
  72.     $this setInfo Text "Continuus File [file tail $fileName]"
  73.     $this setInfo Path [$this vsPath]
  74.  
  75.     # get infoList from system and transfer information
  76.     set infoList [[[$this systemVersion] continuusFileInfoDict] set $fileName]
  77.     if { ![lempty $infoList] } {
  78.     $this setInfo Version [lindex $infoList 0]
  79.     $this setInfo Owner [lindex $infoList 1]
  80.     $this setInfo Status [lindex $infoList 2]
  81.     $this setInfo "Continuus Type" [lindex $infoList 3]
  82.     $this setInfo Created [lindex $infoList 4]
  83.     $this setInfo Modified [lindex $infoList 5]
  84.     $this setInfo Platform [lindex $infoList 6]
  85.     $this setInfo Release [lindex $infoList 7]
  86.     $this setInfo Task [lindex $infoList 8]
  87.     $this setInfo "Generated From Class" [lindex $infoList 9]
  88.     $this setInfo Instance [lindex $infoList 10]
  89.     } else {
  90.     # clear Info and indicate not found status
  91.     $this setInfo Version ""
  92.     $this setInfo Owner ""
  93.     $this setInfo Status "<not found>"
  94.     $this setInfo "Continuus Type" ""
  95.     $this setInfo Created ""
  96.     $this setInfo Modified ""
  97.     $this setInfo Platform ""
  98.     $this setInfo Release ""
  99.     $this setInfo Task ""
  100.     $this setInfo "Generated From Class" ""
  101.     $this setInfo Instance ""
  102.     }
  103. }
  104.  
  105.  
  106. # Show diff in mtool using the Continuus diff command.
  107. #
  108. method ContFileUiObj::showDiff {this version {options ""}} {
  109.     # execute diff in directory of the file
  110.     set diffDir [path_name directory [$this path]]
  111.  
  112.     set diffCommand [ContCommand::diff [$this path] $version]
  113.     vsCommandHandler executeExternal $diffCommand mtool "" $diffDir
  114. }
  115.  
  116.  
  117. # If the requested info is Comment get it, and set
  118. # initializedAllInfo to true.
  119. # Return the requested info.
  120. #
  121. method ContFileUiObj::getInfo {this header} {
  122.     if { [$this initializedAllInfo] != "1" } {
  123.     if { "$header" == "Comment" } {
  124.         # get the description items and add them to info
  125.         busy {
  126.         $this setInfo Comment [ContCommand::getComment [$this path]]
  127.         $this initializedAllInfo 1
  128.         }
  129.     }
  130.     }
  131.  
  132.     set info [[$this info] set $header]
  133.     if { $info != ""} {
  134.     return $info
  135.     }
  136.  
  137.     return "[$this BrowsUiObj::getInfo $header]"
  138. }
  139.  
  140.  
  141. # Returns result of path of ContFile.
  142. #
  143. method ContFileUiObj::path {this} {
  144.     return [$this ContFile::path]
  145. }
  146.  
  147. method ContFileUiObj::previousVersion {this} {
  148.     return [ContCommand::getPredecessor [$this path] [$this getInfo Version]]
  149. }
  150.  
  151. method ContFileUiObj::promoter {this} {
  152.     $this VSFileObj::promoter
  153. }
  154.  
  155. method ContFileUiObj::otherVersions {this} {
  156.     set versions [ContCommand::candidates [$this path]]
  157.  
  158.     # remove current version
  159.     set currentVersion [$this getInfo Version]
  160.     set currentVersionIndex [lsearch -exact $versions $currentVersion]
  161.     if { $currentVersionIndex == -1 } {
  162.     return $versions
  163.     }
  164.     return [join [lreplace $versions $currentVersionIndex $currentVersionIndex ""]]
  165. }
  166.  
  167. # Do not delete this line -- regeneration end marker
  168.  
  169.