home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / cbmethod.tcl < prev    next >
Text File  |  1997-08-29  |  4KB  |  173 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)cbmethod.tcl    /main/titanic/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbmethod.tcl    /main/titanic/1   29 Aug 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require "cbpropname.tcl"
  13. require "cbparamete.tcl"
  14.  
  15. require "cbpropcomp.tcl"
  16. require "cbproplabe.tcl"
  17. require "cbpropitem.tcl"
  18. # End user added include file section
  19.  
  20. require "cadmethod.tcl"
  21. require "cbcdmcomp.tcl"
  22. require "cbtlentry.tcl"
  23.  
  24. Class CBMethod : {CBCDMComp CADMethod CBTLEntry} {
  25.     method destructor
  26.     constructor
  27.     method createParameter
  28.     method getCBClass
  29.     method collectClasses
  30.     method collectWorkItems
  31.     method collectPropComps
  32.     method getVisibility
  33.     method format
  34.     method getFilter
  35. }
  36.  
  37. method CBMethod::destructor {this} {
  38.     # Start destructor user section
  39.     # End destructor user section
  40.     $this CBCDMComp::destructor
  41.     $this CADMethod::destructor
  42.     $this CBTLEntry::destructor
  43. }
  44.  
  45. constructor CBMethod {class this theClass row} {
  46.     set this [CADMethod::constructor $class $this $theClass $row]
  47.     set this [CBTLEntry::constructor $class $this $this]
  48.     set this [CBCDMComp::constructor $class $this $this]
  49.     return $this
  50. }
  51.  
  52. method CBMethod::createParameter {this cell} {
  53.     return [CBParameter new $cell $this]
  54. }
  55.  
  56. method CBMethod::getCBClass {this} {
  57.     return [$this theClass]
  58. }
  59.  
  60. method CBMethod::collectClasses {this classList} {
  61.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  62.         $classList append [$this theClass]
  63.     }
  64.  
  65.     $this CBCDMComp::collectClasses $classList
  66.  
  67.     [$this parameterSet] foreach param {
  68.         $param collectClasses $classList
  69.     }
  70. }
  71.  
  72. method CBMethod::collectWorkItems {this workItemList} {
  73.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  74.         [$this theClass] collectWorkItems $workItemList
  75.     }
  76.  
  77.     $this CBCDMComp::collectWorkItems $workItemList
  78.  
  79.     [$this parameterSet] foreach param {
  80.         $param collectWorkItems $workItemList
  81.     }
  82. }
  83.  
  84. method CBMethod::collectPropComps {this propCompList} {
  85.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  86.         [$this theClass] collectPropComps $propCompList
  87.     }
  88.  
  89.     $this CBCDMComp::collectPropComps $propCompList
  90.  
  91.     [$this parameterSet] foreach param {
  92.         $param collectPropComps $propCompList
  93.     }
  94. }
  95.  
  96. method CBMethod::getVisibility {this} {
  97.     if ![[$this getClassBrowser] showVisibility] {
  98.         return ""
  99.     }
  100.  
  101.     set access [[$this row] getPropertyValue $COMP_METHOD_ACCESS]
  102.     if {$access == "" || $access == "Public"} {
  103.         # 'Public' is assumed to be the default ...
  104.         return "+"
  105.     }
  106.     if {$access == "Protected"} {
  107.         return "#"
  108.     }
  109.     if {$access == "Private"} {
  110.         return "-"
  111.     }
  112.     return ""
  113. }
  114.  
  115. method CBMethod::format {this} {
  116.     set prefix ""
  117.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  118.         set prefix "[[$this theClass] name]: "
  119.     }
  120.     if {[$this formattedText] != ""} {
  121.         return $prefix[$this formattedText]
  122.     }
  123.  
  124.     set result [$this getVisibility]
  125.  
  126.     set isClassFeature [[$this row] getPropertyValue $COMP_CLASS_ATTR]
  127.     if {$isClassFeature == "1"} {
  128.         set result "${result}\$"
  129.     }
  130.  
  131.     set result "${result}[$this name]"
  132.  
  133.     set nrOfParams [[$this parameterSet] length]
  134.     if {$nrOfParams == 0} {
  135.         if {!([$this name] == "create" && \
  136.             $isClassFeature == "1" && [[$this row] \
  137.                 getPropertyValue $COMP_HAS_PARAMLIST] != "1")} {
  138.             set result "${result}()"
  139.         }
  140.     } else {
  141.         set result "${result}("
  142.         set firstParam 1
  143.         [$this parameterSet] foreach param {
  144.             if {$firstParam} {
  145.                 set firstParam 0
  146.             } else {
  147.                 set result "${result}, "
  148.             }
  149.             set result "${result}[$param format]"
  150.         }
  151.         set result "${result})"
  152.     }
  153.  
  154.     if {[$this type] != ""} {
  155.         set result "${result}: [$this type]"
  156.     }
  157.  
  158.     set isAbstract [[$this row] getPropertyValue $COMP_ABSTRACT]
  159.     if {$isAbstract == "1"} {
  160.         set result "${result} {abstract}"
  161.     }
  162.  
  163.     $this formattedText $result
  164.     return $prefix$result
  165. }
  166.  
  167. method CBMethod::getFilter {this} {
  168.     return ${ClassBrowser::operFilter}
  169. }
  170.  
  171. # Do not delete this line -- regeneration end marker
  172.  
  173.