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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)itempropse.tcl    /main/titanic/7
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)itempropse.tcl    /main/titanic/7   5 Sep 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "itemprdbob.tcl" 
  15. require_module_file "propertyse.tcl" docwriter
  16.  
  17. Class ItempropSection : {ItemPRDbObj PropertySection} {
  18.     method destructor
  19.     constructor
  20.     method promoter
  21.     method edit
  22.     method makeCurrent
  23.     method makeSnapshot
  24.     method uiName
  25.     method docTitle
  26. }
  27.  
  28. method ItempropSection::destructor {this} {
  29.     # Start destructor user section
  30.     # End destructor user section
  31.     $this ItemPRDbObj::destructor
  32.     $this PropertySection::destructor
  33. }
  34.  
  35. constructor ItempropSection {class this name document} {
  36.     set this [ItemPRDbObj::constructor $class $this $name]
  37.     set this [PropertySection::constructor $class $this $name $document]
  38.     return $this
  39. }
  40.  
  41. proc ItempropSection::validDocument {obj} {
  42.  
  43.     set document [$obj systemVersion]
  44.     if {"[[$document system] type]" != "document"} {return 0}
  45.  
  46.     set editor [$document editor]
  47.     if {! [isCommand $editor]} {return 0}
  48.  
  49.     return 1
  50. }
  51.  
  52. method ItempropSection::promoter {this} {
  53.  
  54.     $this ItemPRDbObj::promoter
  55.  
  56.     if {![ItempropSection::validDocument $this]} {
  57.         return
  58.     }
  59.  
  60.     $this extension txt
  61.  
  62.     set document [$this systemVersion]
  63.     set editor [$document editor]
  64.  
  65.     $this document $document
  66.     $this uiType Itemprop
  67.     set editorName [$editor name]
  68.     set editorVersion [$editor version]
  69.     set class [Document::getClass $editorName $editorVersion Itemprop]
  70.  
  71.     if {$class != "" && ![$this isA $class]} {
  72.         $class promote $this
  73.     }
  74.  
  75.     # now promote to DocSection
  76.     DocSection::promoter $this
  77. }
  78.  
  79. method ItempropSection::edit {this} {
  80.      $this PropertySection::edit
  81. }
  82.  
  83. method ItempropSection::makeCurrent {this} {
  84.     set cv [[$this document] configVersion]
  85.     $this status current $cv
  86. }
  87.  
  88. method ItempropSection::makeSnapshot {this} {
  89.     set cv [[$this document] configVersion]
  90.     $this status snapshot $cv
  91. }
  92.  
  93. method ItempropSection::uiName {this args} {
  94.     return [$this PropertySection::uiName $args]
  95. }
  96.  
  97. method ItempropSection::docTitle {this} {
  98.  
  99.     set title "Properties of item"
  100.     set item [$this referredItem]
  101.     if {! [$item isNil]} {
  102.         set title "$title '[$item name].[$item type]'"
  103.         set cv [[$this document] configVersion]
  104.         set itemKeeper [$this referredItemKeeper $cv]
  105.         if {! [$itemKeeper isNil]} {
  106.             if [$itemKeeper isA SystemVersion] {
  107.                 set kind system
  108.                 set name [[$itemKeeper system] name]
  109.                 set title "$title from system '$name'"
  110.             } else {
  111.                 set name [[$itemKeeper file] name]
  112.                 set type [[$itemKeeper file] type]
  113.                 set title "$title from file '$name.$type'"
  114.             }
  115.         } else {
  116.             set title "$title from <unknown>"
  117.         }
  118.     } else {
  119.         set title "$title <unknown>"
  120.     }
  121.     return $title
  122. }
  123.  
  124. # Do not delete this line -- regeneration end marker
  125.  
  126.