home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / genlinkext.tcl < prev    next >
Text File  |  1996-10-29  |  2KB  |  83 lines

  1. Class GenLinkExtended : {Object} {
  2.     method destructor
  3.     constructor
  4.     method getDocStructure
  5.     method match
  6.     method getDiagramLine
  7.     method getPropertyLine
  8.     attribute document
  9. }
  10.  
  11. method GenLinkExtended::destructor {this} {
  12.     # Start destructor user section
  13.     # End destructor user section
  14. }
  15.  
  16. constructor GenLinkExtended {class this name document} {
  17.     set this [Object::constructor $class $this $name]
  18.     $this document $document
  19.     # Start constructor user section
  20.     # End constructor user section
  21.     return $this
  22. }
  23.  
  24. method GenLinkExtended::getDocStructure {this fileTypes properties} {
  25.  
  26.     set structure ""
  27.     set first 1
  28.  
  29.         set sv [[$this document] documentedSystem]
  30.  
  31.     if [$sv isNil] {
  32.         wmtkerror "Invalid documented system"
  33.         return $structure
  34.     }
  35.  
  36.     foreach fv [$sv localFileVersions] {
  37.         if [$this match $fileTypes $fv] {
  38.             set diagramLine [$this getDiagramLine $fv $first]
  39.             set propertyLine [$this getPropertyLine $fv \
  40.                 $properties 0]
  41.             if {$propertyLine != ""} {
  42.                 set structureLine "$diagramLine\n$propertyLine"
  43.             }
  44.             if {$first == "1"} {
  45.                 set structure $structureLine
  46.             } else {
  47.                 set structure "$structure\n$structureLine"
  48.             }
  49.             set first 0
  50.         }
  51.     }
  52.  
  53.     return $structure
  54. }
  55.  
  56. method GenLinkExtended::match {this fileTypes fileVersion} {
  57.  
  58.     if {[lsearch $fileTypes [[$fileVersion file] type]] == -1} {
  59.         return 0
  60.     }
  61.     return 1
  62. }
  63.  
  64. method GenLinkExtended::getDiagramLine {this fileVersion first} {
  65.  
  66.     set indent "="
  67.     if {$first == "1"} {
  68.         set indent "+"
  69.     }
  70.  
  71.     set name [[$fileVersion file] qualifiedName :]
  72.     set type [[$fileVersion file] type]
  73.     set line "${name}_$type | $indent | | $type | | | $fileVersion"
  74.  
  75.     return $line
  76. }
  77.  
  78. method GenLinkExtended::getPropertyLine {this fileVersion properties first} {
  79.  
  80.     return [GenFileProp::getStructureLine dummyThis $fileVersion \
  81.         $properties $first]
  82. }
  83.