home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / repinfosec.tcl < prev    next >
Text File  |  1996-10-03  |  3KB  |  133 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)repinfosec.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)repinfosec.tcl    /main/titanic/2   3 Oct 1996 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class RepInfoSection : {GCObject} {
  16.     constructor
  17.     method destructor
  18.     method clear
  19.     method format
  20.     method contents
  21.     method addHeader
  22.     method addLine
  23.     method addItem
  24.     method addParameter
  25.     attribute items
  26.     attribute text
  27.     attribute view
  28. }
  29.  
  30. constructor RepInfoSection {class this view} {
  31.     set this [GCObject::constructor $class $this]
  32.     $this view $view
  33.     # Start constructor user section
  34.  
  35.         $this items [List new]
  36.  
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method RepInfoSection::destructor {this} {
  42.     # Start destructor user section
  43.     # End destructor user section
  44. }
  45.  
  46. method RepInfoSection::clear {this} {
  47.     [$this items] contents {}
  48.     $this text ""
  49. }
  50.  
  51. method RepInfoSection::format {this} {
  52.     set maxLabel 0
  53.     [$this items] foreach item {
  54.         set t [lindex $item 0]
  55.         if {$t == "ITEM"} {
  56.             set len [string length [lindex $item 1]]
  57.             if {$len > $maxLabel} {
  58.                 set maxLabel $len
  59.             }
  60.         }
  61.     }
  62.  
  63.     set text [TextSection new]
  64.     $this text $text
  65.  
  66.     [$this items] foreach item {
  67.         switch [lindex $item 0] {
  68.             HDR {
  69.         $text append "[lindex $item 1]\n"
  70.             }
  71.             ITEM {
  72.         $text append "[format "    %-${maxLabel}s : %s\n" \
  73.                     [lindex $item 1] [lindex $item 2]]"
  74.             }
  75.             LINE {
  76.                 $text append "    [lindex $item 1]\n"
  77.             }
  78.         }
  79.     }
  80. }
  81.  
  82. method RepInfoSection::contents {this} {
  83.     set text [$this text]
  84.     if {$text != ""} {
  85.         return [$text contents]
  86.     }
  87.     return ""
  88. }
  89.  
  90. method RepInfoSection::addHeader {this title} {
  91.     set items [$this items]
  92.     if {[$items length] > 0} {
  93.     $items append [list HDR ""]
  94.     }
  95.     $items append [list HDR $title]
  96. }
  97.  
  98. method RepInfoSection::addLine {this line} {
  99.     [$this items] append [list LINE $line]
  100. }
  101.  
  102. method RepInfoSection::addItem {this label value} {
  103.     [$this items] append [list ITEM $label $value]
  104. }
  105.  
  106. method RepInfoSection::addParameter {this name value} {
  107.     switch [[$this view] paramMode] {
  108.         Meta4 {
  109.             set value "M4_${name}=${value};RW"
  110.         [$this items] append [list LINE $value]
  111.         }
  112.         Sh {
  113.             set value "M4_${name}='${value};RW'; export M4_${name}"
  114.         [$this items] append [list LINE $value]
  115.         }
  116.         Csh {
  117.             set value "setenv M4_${name} '${value};RW'"
  118.         [$this items] append [list LINE $value]
  119.         }
  120.         default {
  121.             set value [RepInfoSection::fmtNum $value]
  122.         [$this items] append [list ITEM $name $value]
  123.         }
  124.     }
  125. }
  126.  
  127. proc RepInfoSection::fmtNum {num} {
  128.     return [format "%10d" $num]
  129. }
  130.  
  131. # Do not delete this line -- regeneration end marker
  132.  
  133.