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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)cbpropcont.tcl    1.5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbpropcont.tcl    1.5   14 Mar 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "propcontai.tcl"
  15.  
  16. Class CBPropContainer : {PropContainer} {
  17.     constructor
  18.     method destructor
  19.     method existPropertyHolder
  20.     method loadProperties
  21.     method quitProperties
  22.     method getPropertyValue
  23.     method isPropertyEditable
  24.     method addSpecificPropDef
  25.     method fillPropInfoMethod
  26.     method startLabel
  27.     method endLabel
  28.     method getPropInfoMethod
  29.     method setPropInfoMethod
  30.     method removePropInfoMethod
  31.     attribute holderComp
  32.     attribute holderItemProperties
  33.     attribute propInfoMethod
  34. }
  35.  
  36. constructor CBPropContainer {class this} {
  37.     set this [PropContainer::constructor $class $this]
  38.     $this propInfoMethod [Dictionary new]
  39.     # Start constructor user section
  40.     # End constructor user section
  41.     return $this
  42. }
  43.  
  44. method CBPropContainer::destructor {this} {
  45.     # Start destructor user section
  46.     # End destructor user section
  47.     $this PropContainer::destructor
  48. }
  49.  
  50. method CBPropContainer::existPropertyHolder {this} {
  51.     if {[[$this holderItemProperties] isNil]} {
  52.         return 0
  53.     }
  54.     return 1
  55. }
  56.  
  57. method CBPropContainer::loadProperties {this} {
  58.     # Not applicable !!
  59. }
  60.  
  61. method CBPropContainer::quitProperties {this} {
  62.     # Not applicable !!
  63. }
  64.  
  65. method CBPropContainer::getPropertyValue {this name} {
  66.     set info [$this [$this getPropInfoMethod $name]]
  67.     if {![$info isNil]} {
  68.         return [$info getPropertyValue $name]
  69.     }
  70.     return ""
  71. }
  72.  
  73. method CBPropContainer::isPropertyEditable {this name} {
  74.     return 0
  75. }
  76.  
  77. method CBPropContainer::addSpecificPropDef {this def propInfoMethod} {
  78.     $this addPropDefinition $def
  79.     $this fillPropInfoMethod $def $propInfoMethod
  80. }
  81.  
  82. method CBPropContainer::fillPropInfoMethod {this def propInfoMethod} {
  83.     $this setPropInfoMethod [$def name] $propInfoMethod
  84.     foreach member [$def memberSet] {
  85.         $this fillPropInfoMethod $member $propInfoMethod
  86.     }
  87. }
  88.  
  89. method CBPropContainer::startLabel {this} {
  90.     set holderComp [$this holderComp]
  91.     if {![$holderComp isA Connector]} {
  92.         return Start
  93.     }
  94.     set startComp [$holderComp from]
  95.     set startItem [Component::getItem $startComp $LT_NAME]
  96.     if {[$startItem isNil] || [$startItem name] == ""} {
  97.         # need long name here !!
  98.         return [$startComp type]
  99.     }
  100.     return [$startItem name]
  101. }
  102.  
  103. method CBPropContainer::endLabel {this} {
  104.     set holderComp [$this holderComp]
  105.     if {![$holderComp isA Connector]} {
  106.         return End
  107.     }
  108.     set endComp [$holderComp to]
  109.     set endItem [Component::getItem $endComp $LT_NAME]
  110.     if {[$endItem isNil] || [$endItem name] == ""} {
  111.         # need long name here !!
  112.         return [$endComp type]
  113.     }
  114.     return [$endItem name]
  115. }
  116.  
  117. # Do not delete this line -- regeneration end marker
  118.  
  119. method CBPropContainer::getPropInfoMethod {this name} {
  120.     return [[$this propInfoMethod] set $name]
  121. }
  122.  
  123. method CBPropContainer::setPropInfoMethod {this name newPropInfoMethod} {
  124.     [$this propInfoMethod] set $name $newPropInfoMethod
  125. }
  126.  
  127. method CBPropContainer::removePropInfoMethod {this name} {
  128.     [$this propInfoMethod] unset $name
  129. }
  130.  
  131.