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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)wbpropcont.tcl    1.8
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)wbpropcont.tcl    1.8   13 Mar 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "propcontai.tcl"
  15.  
  16. Class WbPropContainer : {PropContainer} {
  17.     constructor
  18.     method destructor
  19.     method existPropertyHolder
  20.     method loadProperties
  21.     method editProperties
  22.     method saveProperties
  23.     method quitProperties
  24.     method changeProperty
  25.     method getPropertyValue
  26.     method isPropertyEditable
  27.     method removeProperties
  28.     method removeProperty
  29.     attribute propInfo
  30.     attribute propHolder
  31. }
  32.  
  33. constructor WbPropContainer {class this} {
  34.     set this [PropContainer::constructor $class $this]
  35.     # Start constructor user section
  36.     $this propInfo [PIPropInfo new]
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method WbPropContainer::destructor {this} {
  42.     # Start destructor user section
  43.     [$this propInfo] delete
  44.     # End destructor user section
  45.     $this PropContainer::destructor
  46. }
  47.  
  48. method WbPropContainer::existPropertyHolder {this} {
  49.     return 1
  50. }
  51.  
  52. method WbPropContainer::loadProperties {this} {
  53.     [$this propInfo] load [$this propHolder]
  54. }
  55.  
  56. method WbPropContainer::editProperties {this} {
  57.     [$this propInfo] edit [$this propHolder]
  58. }
  59.  
  60. method WbPropContainer::saveProperties {this} {
  61.     [$this propInfo] save
  62. }
  63.  
  64. method WbPropContainer::quitProperties {this} {
  65.     [$this propInfo] quit
  66. }
  67.  
  68. method WbPropContainer::changeProperty {this name value defVal} {
  69.     if [string compare $value $defVal] {
  70.         [$this propInfo] changeProperty $name $value
  71.     } else {
  72.         [$this propInfo] removeProperty $name
  73.     }
  74. }
  75.  
  76. method WbPropContainer::getPropertyValue {this name} {
  77.     return [[$this propInfo] getProperty $name]
  78. }
  79.  
  80. method WbPropContainer::isPropertyEditable {this name} {
  81.     return [$this editable]
  82. }
  83.  
  84. method WbPropContainer::removeProperties {this} {
  85.     [$this propInfo] edit [$this propHolder]
  86.     [$this propDefinitionSet] foreach propDef {
  87.         $this removeProperty $propDef
  88.     }
  89.     [$this propInfo] save
  90.     [$this propInfo] quit
  91. }
  92.  
  93. method WbPropContainer::removeProperty {this def} {
  94.     set members [$def memberSet]
  95.     if {$members == ""} {
  96.         [$this propInfo] removeProperty [$def name]
  97.     } else {
  98.         foreach member $members {
  99.             $this removeProperty $member
  100.         }
  101.     }
  102. }
  103.  
  104. # Do not delete this line -- regeneration end marker
  105.  
  106.