home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / checkbrobj.tcl < prev    next >
Text File  |  1997-02-27  |  3KB  |  129 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)checkbrobj.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)checkbrobj.tcl    /main/titanic/2   27 Feb 1997 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. require classmaker.tcl
  13. # End user added include file section
  14.  
  15.  
  16. Class CheckBrObject : {BrowsObject} {
  17.     constructor
  18.     method destructor
  19.     method updateView
  20.     method newCheckValue
  21.     method define
  22.     attribute group
  23.     attribute configLevel
  24.     attribute checkValue
  25.     attribute prevCheckValues
  26. }
  27.  
  28. constructor CheckBrObject {class this name} {
  29.     set this [BrowsObject::constructor $class $this $name]
  30.     # Start constructor user section
  31.     $this activated "$this define"
  32.     # End constructor user section
  33.     return $this
  34. }
  35.  
  36. method CheckBrObject::destructor {this} {
  37.     # Start destructor user section
  38.     # End destructor user section
  39. }
  40.  
  41. method CheckBrObject::updateView {this} {
  42.  
  43.     set grpDesc ""
  44.     if [info exists groupArray([$this group])] {
  45.         set grpDesc "$groupArray([$this group])"
  46.     }
  47.     $this details "\"[$this configLevel]\" [$this checkValue] \"$grpDesc\""
  48. }
  49.  
  50. method CheckBrObject::newCheckValue {this value} {
  51.  
  52.     if {$value == [$this checkValue]} {return}
  53.     set prev [lindex [$this prevCheckValues] 0]
  54.     set curLevel [[ClientContext::global] currentLevel]
  55.     if {$value == "previous"} {
  56.         set value [lindex $prev 0]
  57.         if {$value == ""} {
  58.             return
  59.         }
  60.     }
  61.  
  62.     if {$prev != "" && [lindex $prev 0] == $value && 
  63.         [$this configLevel] == $curLevel} {
  64.         # previous value matches the new value, 'remove' current
  65.         $this prevCheckValues [lrange [$this prevCheckValues] 1 end]
  66.         $this checkValue [lindex $prev 0]
  67.         $this configLevel [lindex $prev 1]
  68.     } else {
  69.         # 'make' new object, or change value
  70.         if {[$this configLevel] == $curLevel} {
  71.             $this checkValue $value
  72.         } else {
  73.             # save previous checkvalue, and configLevel
  74.             $this prevCheckValues "\{[$this checkValue] \"[$this configLevel]\"\} [$this prevCheckValues]"
  75.             $this checkValue $value
  76.             $this configLevel $curLevel
  77.         }
  78.     }
  79.     $this updateView
  80.     #[$this view] sortit
  81.     $this makeVisible
  82. }
  83.  
  84. method CheckBrObject::define {this} {
  85.  
  86.     if [[[$this view] checkDialog] readOnly] {
  87.         # no define if readOnly
  88.         return
  89.     }
  90.  
  91.     set number [[[$this view] checkDialog] number]
  92.     set box .main.chckObjDlg$number
  93.     if {! [isCommand $box]} {
  94.         ClassMaker::extend TemplateDialog ChckObjDlg {CheckBrObject}
  95.         interface ChckObjDlg $box {
  96.             DlgColumn DC {
  97.             NamedGroup nameNG {
  98.                 DlgRow DR {
  99.                     spaceType EVEN
  100.                     Label L {
  101.                     text "Check value"
  102.                     }
  103.                     VerRadioGroup checkValueVRG {
  104.                     entrySet {warning default error off previous}
  105.                     }
  106.                 }
  107.             }
  108.             }
  109.         }
  110.         $box okPressed {
  111.             set value [%this.DC.nameNG.DR.checkValueVRG selected]
  112.             [%this CheckBrObject] newCheckValue $value
  113.         }
  114.         $box helpPressed {.main helpOnName checkConfigValueDialog}
  115.         $box modal 1
  116.     }
  117.  
  118.     $box CheckBrObject $this
  119.     $box title "Group: [$this label]"
  120.     set details [$this details]
  121.     $box.DC.nameNG.DR.checkValueVRG selected [lindex $details 1]
  122.     $box.DC.nameNG label "Description: [lindex $details 2]"
  123.  
  124.     $box popUp
  125. }
  126.  
  127. # Do not delete this line -- regeneration end marker
  128.  
  129.