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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)extfvdbobj.tcl    /main/hindenburg/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)extfvdbobj.tcl    /main/hindenburg/1   12 Sep 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "filevobj.tcl"
  15.  
  16. Class ExtFVDbObj : {FileVObj ExternalFileVersion} {
  17.     method destructor
  18.     constructor
  19.     method browserObjType
  20.     method editFile
  21.     method showFile
  22.     method pathName
  23.     method previewFile
  24. }
  25.  
  26. method ExtFVDbObj::destructor {this} {
  27.     # Start destructor user section
  28.     # End destructor user section
  29.     $this FileVObj::destructor
  30. }
  31.  
  32. constructor ExtFVDbObj {class this name} {
  33.     set this [ExternalFileVersion::constructor $class $this $name]
  34.     set this [FileVObj::constructor $class $this $name]
  35.     return $this
  36. }
  37.  
  38. selfPromoter ExternalFileVersion {this} {
  39.     ExtFVDbObj promote $this
  40. }
  41.  
  42. proc ExtFVDbObj::associations {} {
  43.     return "[FileVObj::associations]"
  44. }
  45.  
  46. method ExtFVDbObj::browserObjType {this} {
  47.     return "ExtFVDbObj"
  48. }
  49.  
  50. proc ExtFVDbObj::childTypes {assoc} {
  51.     if {[lsearch -exact "[ExtFVDbObj::associations]" "$assoc"] == -1} {
  52.     return ""
  53.     }
  54.     return "[BrowserProcs::childTypes $assoc]"
  55. }
  56.  
  57. proc ExtFVDbObj::controlledLists {} {
  58.     return "[FileVObj::controlledLists]"
  59. }
  60.  
  61. proc ExtFVDbObj::infoProperties {} {
  62.     return [concat \
  63.     [FileVObj::infoProperties] \
  64.     {Path} \
  65.     ]
  66. }
  67.  
  68. method ExtFVDbObj::editFile {this} {
  69.     case "[$this uiClass]" in {
  70.     {LocalSection} {
  71.         set updateList {}
  72.         set indent [$this getIndentation]
  73.         incr indent
  74.         foreach obj [$this recursiveObjSet {NoneUiObj}] {
  75.         if {$indent >= [$obj getIndentation]} {
  76.                 if {! [$obj isDocDirUpToDate]} {
  77.             lappend updateList [$obj identity]
  78.             }
  79.         }
  80.         }
  81.         if {![lempty $updateList]} {
  82.         set confVId [[$this getParent ConfigVersion] identity]
  83.         set sysVId [[$this getParent SystemVersion] identity]
  84.         set argsfile [args_file $updateList]
  85.         set args "updateDocDir $confVId $sysVId [list $argsfile]"
  86.         set cmd "\
  87.             if \[lindex \[$wmttoolObj exitStatusList\] 0\] {\
  88.             $this edit\
  89.             }"
  90.         $wmttoolObj startDocbatch mtool "$args" "$cmd" {0 0} 0
  91.         } else {
  92.         $this edit
  93.         }
  94.     }
  95.     {default} {
  96.         busy {
  97.         $this synchWithFileSystem
  98.         set file [$this file]
  99.         $this edit
  100.         $wmttoolObj startM4Command editor \
  101.             "[$this path]" \
  102.             "$this quit" \
  103.             "[$file qualifiedName :].[$file type]"
  104.         }
  105.     }
  106.     }
  107. }
  108.  
  109. method ExtFVDbObj::showFile {this} {
  110.     case "[$this uiClass]" in {
  111.     {LocalSection} {
  112.         $this show
  113.     }
  114.     {default} {
  115.         busy {
  116.         $this synchWithFileSystem
  117.         set file [$this file]
  118.         $wmttoolObj startM4Command viewer \
  119.             "[$this path]" "" "[$file qualifiedName :].[$file type]"
  120.         }
  121.     }
  122.     }
  123. }
  124.  
  125. method ExtFVDbObj::pathName {this} {
  126.     if [catch {set path [$this path]}] {
  127.     global errorInfo
  128.     set errorInfo ""
  129.     global errorCode
  130.     set errorCode ""
  131.     return ""
  132.     }
  133.     return $path
  134. }
  135.  
  136. method ExtFVDbObj::previewFile {this} {
  137.     set updateList {}
  138.     set indent [$this getIndentation]
  139.     incr indent
  140.     foreach obj [$this recursiveObjSet {NoneUiObj}] {
  141.     if {$indent >= [$obj getIndentation]} {
  142.             if {! [$obj isDocDirUpToDate]} {
  143.         lappend updateList [$obj identity]
  144.         }
  145.     }
  146.     }
  147.     if {![lempty $updateList]} {
  148.     set confVId [[$this getParent ConfigVersion] identity]
  149.     set sysVId [[$this getParent SystemVersion] identity]
  150.     set argsfile [args_file $updateList]
  151.     set args "updateDocDir $confVId $sysVId [list $argsfile]"
  152.     set cmd "\
  153.         if \[lindex \[$wmttoolObj exitStatusList\] 0\] {\
  154.         $this preview\
  155.         }"
  156.     $wmttoolObj startDocbatch mtool "$args" "$cmd" {0 0} 0
  157.     } else {
  158.         $this preview
  159.     }
  160. }
  161.  
  162. # Do not delete this line -- regeneration end marker
  163.  
  164.