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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)cbnaryasso.tcl    1.6
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbnaryasso.tcl    1.6   03 Nov 1995 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. require "cbpropname.tcl"
  13.  
  14. require "cbpropcomp.tcl"
  15. require "cbproplabe.tcl"
  16. require "cbpropitem.tcl"
  17. # End user added include file section
  18.  
  19. require "cadnassocc.tcl"
  20. require "cbassociat.tcl"
  21.  
  22. Class CBNaryAssoc : {CADNAssocConn CBAssociation} {
  23.     method destructor
  24.     constructor
  25.     method collectClasses
  26.     method collectWorkItems
  27.     method collectPropComps
  28.     method format
  29. }
  30.  
  31. method CBNaryAssoc::destructor {this} {
  32.     # Start destructor user section
  33.     # End destructor user section
  34.     $this CADNAssocConn::destructor
  35.     $this CBAssociation::destructor
  36. }
  37.  
  38. constructor CBNaryAssoc {class this inModel} {
  39.     set this [CADNAssocConn::constructor $class $this $inModel]
  40.     set this [CBAssociation::constructor $class $this $this]
  41.     return $this
  42. }
  43.  
  44. method CBNaryAssoc::collectClasses {this classList} {
  45.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  46.         $classList append [$this class]
  47.     }
  48.     foreach pNaryAssoc [$this getPartnerNAssocConns] {
  49.         $classList append [$pNaryAssoc class]
  50.     }
  51. }
  52.  
  53. method CBNaryAssoc::collectWorkItems {this workItemList} {
  54.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  55.         [$this class] collectWorkItems $workItemList
  56.     }
  57.  
  58.     set workItem [[$this nAssocNode] getNameWorkItem]
  59.     if {![$workItem isNil]} {
  60.         $workItemList append $workItem
  61.     }
  62.     foreach pNaryAssoc [$this getPartnerNAssocConns] {
  63.         set workItem [$pNaryAssoc getRoleWorkItem]
  64.         if {![$workItem isNil]} {
  65.             $workItemList append $workItem
  66.         }
  67.         [$pNaryAssoc class] collectWorkItems $workItemList
  68.     }
  69. }
  70.  
  71. method CBNaryAssoc::collectPropComps {this propCompList} {
  72.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  73.         [$this class] collectPropComps $propCompList
  74.     }
  75.  
  76.     set nAssocNode [$this nAssocNode]
  77.     $propCompList addComponent [lindex [$nAssocNode getComponents] 0] \
  78.         [$nAssocNode getNameLabel] [$nAssocNode getNameItem] \
  79.         [$nAssocNode getNameWorkItem]
  80.  
  81.     foreach pNaryAssoc [$this getPartnerNAssocConns] {
  82.         # Partner role
  83.         $propCompList addComponent \
  84.             [lindex [$pNaryAssoc getComponents] 0] \
  85.             [$pNaryAssoc getRoleLabel] [$pNaryAssoc getRoleItem] \
  86.             [$pNaryAssoc getRoleWorkItem]
  87.  
  88.         # Partner class
  89.         [$pNaryAssoc class] collectPropComps $propCompList
  90.     }
  91. }
  92.  
  93. method CBNaryAssoc::format {this} {
  94.     set prefix ""
  95.     if {[[$this getClassBrowser] isInFlatViewMode]} {
  96.         set prefix "[[$this class] name]: "
  97.     }
  98.     set result "---[[$this nAssocNode] name]"
  99.  
  100.     set firstPartner 1
  101.     foreach pNaryAssoc [$this getPartnerNAssocConns] {
  102.         if {$firstPartner} {
  103.             set firstPartner 0
  104.         } else {
  105.             set result "${result},"
  106.         }
  107.  
  108.         set result "${result} "
  109.         set propVal [$pNaryAssoc getPropertyValue $COMP_START_MULT_KIND]
  110.         set result "${result}[CBAssociation::multKindToString $propVal]"
  111.         set result "${result}--"
  112.  
  113.         # Partner role
  114.         set role [$pNaryAssoc role]
  115.         if {$role != ""} {
  116.             set result "${result}<$role>"
  117.         }
  118.  
  119.         set result "${result}---"
  120.  
  121.         # Partner name
  122.         set result "${result} [[$pNaryAssoc class] name]"
  123.     }
  124.  
  125.     $this formattedText $result
  126.     return $prefix$result
  127. }
  128.  
  129. # Do not delete this line -- regeneration end marker
  130.  
  131.