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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)propifgrou.tcl    1.6
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)propifgrou.tcl    1.6   13 Mar 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require "propifelem.tcl"
  14.  
  15. # End user added include file section
  16.  
  17. require "propifpare.tcl"
  18.  
  19. Class PropIfGroup : {PropIfParent} {
  20.     method destructor
  21.     constructor
  22.     method getProperties
  23.     method setProperties
  24. }
  25.  
  26. method PropIfGroup::destructor {this} {
  27.     # Start destructor user section
  28.     # End destructor user section
  29.     $this PropIfParent::destructor
  30. }
  31.  
  32. constructor PropIfGroup {class this guiParent propDef} {
  33.     set this [PropIfParent::constructor $class $this]
  34.     $this config -definition $propDef \
  35.              -ifElement [DlgColumn new $guiParent.[$propDef name]]
  36.     set guiParent [$this ifElement]
  37.     foreach member [$propDef memberSet] {
  38.         set class [$member ifClass]
  39.         if [PropIfElement::canHandle $class] {
  40.             set child [PropIfElement new $guiParent $member]
  41.         } else {
  42.             if [catch {
  43.                 set child [$class new $guiParent $member]
  44.             }] {
  45.                 error "Invalid interface class '$class'"
  46.             }
  47.         }
  48.         $this addChild $child
  49.     }
  50.     return $this
  51. }
  52.  
  53. method PropIfGroup::getProperties {this propContainer} {
  54.     [$this childSet] foreach propIf {
  55.         $propIf getProperties $propContainer
  56.     }
  57. }
  58.  
  59. method PropIfGroup::setProperties {this propContainer} {
  60.     [$this childSet] foreach propIf {
  61.         $propIf setProperties $propContainer
  62.     }
  63. }
  64.  
  65. # Do not delete this line -- regeneration end marker
  66.  
  67.