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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)mergeobjec.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)mergeobjec.tcl    /main/titanic/2   28 Aug 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class MergeObject : {Object} {
  16.     constructor
  17.     method destructor
  18.     method parent
  19.     method childSet
  20.     method addChild
  21.     method removeChild
  22.     attribute _parent
  23.     attribute fromRepObj
  24.     attribute baseRepObj
  25.     attribute toRepObj
  26.     attribute _childSet
  27. }
  28.  
  29. constructor MergeObject {class this name fromRepObj toRepObj} {
  30.     set this [Object::constructor $class $this $name]
  31.     $this fromRepObj $fromRepObj
  32.     $this toRepObj $toRepObj
  33.     $this _childSet [List new]
  34.     # Start constructor user section
  35.     # End constructor user section
  36.     return $this
  37. }
  38.  
  39. method MergeObject::destructor {this} {
  40.     set ref [$this _parent]
  41.     if {$ref != ""} {
  42.         [$ref _childSet] removeValue $this
  43.     }
  44.     foreach ref [[$this _childSet] contents] {
  45.         $ref _parent ""
  46.     }
  47.     # Start destructor user section
  48.     # End destructor user section
  49. }
  50.  
  51. # Do not delete this line -- regeneration end marker
  52.  
  53. method MergeObject::parent {this args} {
  54.     if {$args == ""} {
  55.         return [$this _parent]
  56.     }
  57.     set ref [$this _parent]
  58.     if {$ref != ""} {
  59.         [$ref _childSet] removeValue $this
  60.     }
  61.     set obj [lindex $args 0]
  62.     if {$obj != ""} {
  63.         [$obj _childSet] append $this
  64.     }
  65.     $this _parent $obj
  66. }
  67.  
  68. method MergeObject::childSet {this} {
  69.     return [$this _childSet]
  70. }
  71.  
  72. method MergeObject::addChild {this newChild} {
  73.     [$this _childSet] append $newChild
  74.     $newChild _parent $this
  75. }
  76.  
  77. method MergeObject::removeChild {this oldChild} {
  78.     $oldChild _parent ""
  79.     [$this _childSet] removeValue $oldChild
  80. }
  81.  
  82.