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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)propcontif.tcl    1.10
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)propcontif.tcl    1.10   13 Mar 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require propifpage.tcl
  14. require propif2col.tcl
  15. require ripolatass.tcl
  16. require propifcomb.tcl
  17. require rwaccessro.tcl
  18. require stextitrpr.tcl
  19.  
  20. # End user added include file section
  21.  
  22.  
  23. Class PropContIf : {NoteBook} {
  24.     method destructor
  25.     constructor
  26.     method getProperties
  27.     method setProperties
  28.     method addPage
  29.     method removePage
  30.     attribute index
  31.     attribute pageSet
  32. }
  33.  
  34. global PropContIf::interfaces
  35. set PropContIf::interfaces [Dictionary new]
  36.  
  37. global PropContIf::count
  38. set PropContIf::count 0
  39.  
  40.  
  41. method PropContIf::destructor {this} {
  42.     # Start destructor user section
  43.     # End destructor user section
  44. }
  45.  
  46. proc PropContIf::createInterface {guiParent cnt} {
  47.     global PropContIf::interfaces
  48.     set cntKey [$cnt propertyKey]
  49.     set if [${PropContIf::interfaces} set $cntKey]
  50.     if {$if == ""} {
  51.         set if [PropContIf new $guiParent $cnt]
  52.         ${PropContIf::interfaces} set $cntKey $if
  53.     }
  54.     $cnt propInterface $if
  55.     return $if
  56. }
  57.  
  58. constructor PropContIf {class this guiParent cnt} {
  59.     global PropContIf::count
  60.     incr PropContIf::count
  61.     set this [NoteBook::constructor $class $this \
  62.                 $guiParent.PropContIf:${PropContIf::count}]
  63.     $this config -pageSet [List new] -index ${PropContIf::count}
  64.  
  65.     set miscList ""
  66.     set pageList ""
  67.     [$cnt propDefinitionSet] foreach propDef {
  68.         set class [$propDef ifClass]
  69.         case $class in {
  70.             {PropIfPage RIPolAtAss} {
  71.                 lappend pageList $propDef
  72.             }
  73.             {default} {
  74.                 lappend miscList $propDef
  75.             }
  76.         }
  77.     }
  78.     if {$miscList != ""} {
  79.         set propDef [PropDefinition new -name misc -longName Misc \
  80.                         -ifClass PropIfPage \
  81.                         -memberSet $miscList]
  82.         $this addPage [PropIfPage new $this $propDef]
  83.     }
  84.     foreach page $pageList {
  85.         $this addPage [[$page ifClass] new $this $page]
  86.     }
  87.     return $this
  88. }
  89.  
  90. method PropContIf::getProperties {this cnt} {
  91.     [$this pageSet] foreach page {
  92.         $page getProperties $cnt
  93.     }
  94. }
  95.  
  96. method PropContIf::setProperties {this cnt} {
  97.     [$this pageSet] foreach page {
  98.         $page setProperties $cnt
  99.     }
  100. }
  101.  
  102. proc PropContIf::clearInterfaces {} {
  103.     global PropContIf::interfaces
  104.     set PropContIf::interfaces [Dictionary new]
  105.     global PropContIf::count
  106.     set PropContIf::count 0
  107. }
  108.  
  109. # Do not delete this line -- regeneration end marker
  110.  
  111. method PropContIf::addPage {this newPage} {
  112.     [$this pageSet] append $newPage
  113.  
  114. }
  115.  
  116. method PropContIf::removePage {this oldPage} {
  117.     [$this pageSet] removeValue $oldPage
  118. }
  119.  
  120.