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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)rwaccessro.tcl    /main/hindenburg/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)rwaccessro.tcl    /main/hindenburg/2   17 Dec 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 "propinterf.tcl"
  18.  
  19. Class RWAccessRow : {PropInterface} {
  20.     method destructor
  21.     constructor
  22.     method getProperty
  23.     method getProperties
  24.     method setProperties
  25.     method setValue
  26.     method getValue
  27.     attribute writeAcc
  28.     attribute readAcc
  29. }
  30.  
  31. method RWAccessRow::destructor {this} {
  32.     # Start destructor user section
  33.     # End destructor user section
  34.     $this PropInterface::destructor
  35. }
  36.  
  37. constructor RWAccessRow {class this guiParent propDef} {
  38.     set this [PropInterface::constructor $class $this]
  39.     set grp [NamedGroup new $guiParent.[$propDef name]Group \
  40.         -verStretchFactor 0 -label [$propDef longName]]
  41.     set row [DlgRow new $grp.[$propDef name]Row]
  42.     set rcol [DlgColumn new $row.[$propDef name]ReadColumn]
  43.     set wcol [DlgColumn new $row.[$propDef name]WriteColumn]
  44.     Label new $rcol.OptMnuLab -text Read
  45.     Label new $wcol.OptMnuLab -text Write
  46.     $this config -definition $propDef -ifElement $grp \
  47.         -readAcc  [eval OptionMenu new $rcol.OptMnu [$propDef ifOptions]] \
  48.         -writeAcc [eval OptionMenu new $wcol.OptMnu [$propDef ifOptions]]
  49.     return $this
  50. }
  51.  
  52. method RWAccessRow::getProperty {this elm value sensitive} {
  53.     if {$value == ""} {
  54.         set value [PropIfElement::defaultValue "OptionMenu" $elm]
  55.     }
  56.     $elm selected $value
  57.     $elm sensitive $sensitive
  58. }
  59.  
  60. method RWAccessRow::getProperties {this propContainer} {
  61.     set key [[$this definition] name]
  62.     set value [$propContainer getPropertyValue $key]
  63.     set sensitive [$propContainer isPropertyEditable $key]
  64.     $this setValue $value $sensitive
  65. }
  66.  
  67. method RWAccessRow::setProperties {this propContainer} {
  68.     set key [[$this definition] name]
  69.     set rDef [PropIfElement::defaultValue "OptionMenu" [$this readAcc]]
  70.     set wDef [PropIfElement::defaultValue "OptionMenu" [$this writeAcc]]
  71.     $propContainer changeProperty $key "[$this getValue]" "${rDef}-$wDef"
  72. }
  73.  
  74. method RWAccessRow::setValue {this value {sensitive 1}} {
  75.     set rVal ""
  76.     set wVal ""
  77.     if {"$value" != ""} {
  78.         set sep [string last "-" $value]
  79.         set rVal [string range $value 0 [expr $sep - 1]]
  80.         set wVal [string range $value [expr $sep + 1] end]
  81.     }
  82.     $this getProperty [$this readAcc]  $rVal $sensitive
  83.     $this getProperty [$this writeAcc] $wVal $sensitive
  84. }
  85.  
  86. method RWAccessRow::getValue {this} {
  87.     return "[[$this readAcc] selected]-[[$this writeAcc] selected]"
  88. }
  89.  
  90. # Do not delete this line -- regeneration end marker
  91.  
  92.