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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)selmodfilt.tcl    /main/titanic/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)selmodfilt.tcl    /main/titanic/3   3 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require "moduledb.tcl"
  13. # End user added include file section
  14.  
  15.  
  16. # This filter is used for filtering the entries in a SelectModuleDialog:
  17. # - name: only pass modules with name $name ("" means no filtering);
  18. # - type: only pass modules of type $type ("" means no filtering);
  19. # - isSupportingModule: if true do not pass modules that are supporting 
  20. #                       (false means no filtering);
  21.  
  22. Class SelModFilter : {GCObject} {
  23.     constructor
  24.     method destructor
  25.     method passes
  26.     method equals
  27.     method clone
  28.     attribute name
  29.     attribute type
  30.     attribute isSupportingModule
  31. }
  32.  
  33. constructor SelModFilter {class this} {
  34.     set this [GCObject::constructor $class $this]
  35.     $this name ""
  36.     $this type ""
  37.     $this isSupportingModule 0
  38.     # Start constructor user section
  39.     # End constructor user section
  40.     return $this
  41. }
  42.  
  43. method SelModFilter::destructor {this} {
  44.     # Start destructor user section
  45.     # End destructor user section
  46. }
  47.  
  48. method SelModFilter::passes {this modulePath} {
  49.     set moduleDB [ModuleDB::global]
  50.     if ![$moduleDB isValidModule $modulePath] {
  51.         return 0
  52.     }
  53.     set propDict [$moduleDB getModulePropDict $modulePath]
  54.  
  55.     set name [$propDict set "name"]
  56.     if {[$this name] != "" && [$this name] != $name} {
  57.         return 0
  58.     }
  59.  
  60.  
  61.     set type [$propDict set "type"]
  62.     if {[$this type] != "" && [$this type] != $type} {
  63.         return 0
  64.     }
  65.  
  66.     set isSupp [$propDict set "isSupportingModule"]
  67.     if {[$this isSupportingModule] && $isSupp == "yes"} {
  68.         return 0
  69.     }
  70.  
  71.     return 1
  72. }
  73.  
  74. method SelModFilter::equals {this otherFilter} {
  75.     set thisFilterStr "[$this name][$this type][\
  76.         $this isSupportingModule]"
  77.     set otherFilterStr "[$otherFilter name][$otherFilter type][\
  78.         $otherFilter isSupportingModule]"
  79.     if {$thisFilterStr == $otherFilterStr} {
  80.         return 1
  81.     }
  82.     return 0
  83. }
  84.  
  85. method SelModFilter::clone {this} {
  86.     set filter [SelModFilter new]
  87.  
  88.     $filter name [$this name]
  89.     $filter type [$this type]
  90.     $filter isSupportingModule [$this isSupportingModule]
  91.  
  92.     return $filter
  93. }
  94.  
  95. # Do not delete this line -- regeneration end marker
  96.  
  97.