home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / textrefsec.tcl < prev    next >
Text File  |  1997-01-02  |  3KB  |  117 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)textrefsec.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)textrefsec.tcl    /main/titanic/2   2 Jan 1997 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require_module_file "filerefsec.tcl" docwriter
  15.  
  16. Class TextRefSection : {FileRefSection} {
  17.     constructor
  18.     method destructor
  19.     method isDocDirUpToDate
  20.     method show
  21.     method print
  22.     method preview
  23.     method updateDocDir
  24. }
  25.  
  26. constructor TextRefSection {class this name document} {
  27.     set this [FileRefSection::constructor $class $this $name $document]
  28.     # Start constructor user section
  29.     # End constructor user section
  30.     return $this
  31. }
  32.  
  33. method TextRefSection::destructor {this} {
  34.     # Start destructor user section
  35.     # End destructor user section
  36.     $this FileRefSection::destructor
  37. }
  38.  
  39. method TextRefSection::isDocDirUpToDate {this} {
  40.  
  41.     # do not update if document is frozen
  42.     if {"[[$this document] getInfo Status]" == "frozen"} {
  43.         return 1
  44.     }
  45.  
  46.     # if the timestamp of the docLocation is > then the
  47.     # one of the location the section is up to date
  48.     if {! [file exists [$this docLocation]]} {
  49.         return 0
  50.     }
  51.     set fileV [$this referredFileVersion]
  52.     if [$fileV isNil] {
  53.         return 0
  54.     }
  55.  
  56.     if [catch {set path [$fileV path]} msg] {
  57.         # fileV must be frozen, so take the update time
  58.         # this can be done with the regular (base) method
  59.         return [$this  FileRefSection::isDocDirUpToDate]
  60.     } else {
  61.         file stat [$this docLocation] destination
  62.         file stat [$fileV path] source
  63.         if {$source(mtime) > $destination(mtime)} {
  64.             return 0
  65.         }
  66.     }
  67.     return 1
  68. }
  69.  
  70. method TextRefSection::show {this} {
  71.  
  72.     set cmd [list viewer [$this docLocation] [$this uiName]]
  73.     $this execute "$cmd" m4
  74. }
  75.  
  76. method TextRefSection::print {this} {
  77.  
  78.     set cmd [list \
  79.         "[m4_var get M4_a_printer] [$this docLocation]" \
  80.         [$this uiName] \
  81.     ]
  82.     $this execute "$cmd"
  83. }
  84.  
  85. method TextRefSection::preview {this} {
  86.  
  87.     set cmd [list previewer [$this docLocation] [$this uiName]]
  88.     $this execute "$cmd" m4
  89. }
  90.  
  91. method TextRefSection::updateDocDir {this} {
  92.  
  93.     set fileV [$this referredFileVersion]
  94.     if [$fileV isNil] {
  95.         return 0
  96.     }
  97.  
  98.     case "[$fileV status]" in {
  99.         {backGround} {
  100.         $fileV activate
  101.         $fileV downLoadFrozenContents [$this docLocation]
  102.         $fileV deactivate
  103.         }
  104.         {frozen reused} {
  105.         $fileV downLoadFrozenContents [$this docLocation]
  106.         }
  107.         {default} {
  108.         copy_text_file [$fileV path] [$this docLocation]
  109.         }
  110.     }
  111.  
  112.     return 1
  113. }
  114.  
  115. # Do not delete this line -- regeneration end marker
  116.  
  117.