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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)cbpropfilt.tcl    /main/titanic/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbpropfilt.tcl    /main/titanic/1   3 Sep 1997 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "cbfilterel.tcl"
  15.  
  16. Class CBPropFilterElement : {CBFilterElement} {
  17.     constructor
  18.     method destructor
  19.     method letsPass
  20.     method addPropHolder
  21.     method removePropHolder
  22.     attribute propHolderSet
  23. }
  24.  
  25. constructor CBPropFilterElement {class this name propDefinition} {
  26.     set this [CBFilterElement::constructor $class $this $name $propDefinition]
  27.     $this propHolderSet [List new]
  28.     # Start constructor user section
  29.     # End constructor user section
  30.     return $this
  31. }
  32.  
  33. method CBPropFilterElement::destructor {this} {
  34.     # Start destructor user section
  35.     # End destructor user section
  36.     $this CBFilterElement::destructor
  37. }
  38.  
  39. method CBPropFilterElement::letsPass {this feature} {
  40.     if {![$this enabled]} {
  41.         return 1
  42.     }
  43.  
  44.     set propName [[$this propDefinition] name]
  45.     [$this propHolderSet] foreach prpHldr {
  46.         set propObject [eval $prpHldr]
  47.         set value ""
  48.         if {$propObject != "" && ![$propObject isNil]} {
  49.             set propVal [$propObject findProperty $propName]
  50.             if {[$propVal isNil]} {
  51.                 set value [[$this propDefinition] defaultValue]
  52.             } else {
  53.                 set value [$propVal value]
  54.             }
  55.         }
  56.         if {![$this match $value]} {
  57.             return 0
  58.         }
  59.     }
  60.     return 1
  61. }
  62.  
  63. # Do not delete this line -- regeneration end marker
  64.  
  65. method CBPropFilterElement::addPropHolder {this newPropHolder} {
  66.     [$this propHolderSet] append $newPropHolder
  67.  
  68. }
  69.  
  70. method CBPropFilterElement::removePropHolder {this oldPropHolder} {
  71.     [$this propHolderSet] removeValue $oldPropHolder
  72. }
  73.  
  74.