home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / genlinkext.tcl < prev    next >
Text File  |  1997-10-13  |  2KB  |  86 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 {prefix ""}} {
  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 $prefix]
  39.         set propertyLine [$this getPropertyLine $fv $properties 0 $prefix]
  40.         set structureLine $diagramLine
  41.         if {$propertyLine != ""} {
  42.         append structureLine "\n$propertyLine"
  43.         }
  44.         if $first {
  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 {prefix ""}} {
  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.     if {$prefix != ""} {
  75.     set line "${prefix}_$line"
  76.     }
  77.  
  78.     return $line
  79. }
  80.  
  81. method GenLinkExtended::getPropertyLine {this fileVersion properties first {prefix ""}} {
  82.  
  83.     return [GenFileProp::getStructureLine \
  84.     dummyThis $fileVersion $properties $first $prefix]
  85. }
  86.