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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)cbsupercla.tcl    1.4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbsupercla.tcl    1.4   19 Oct 1995 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "cbclassinf.tcl"
  15.  
  16. Class CBSuperClassTextList : {CBClassInfoTextList} {
  17.     constructor
  18.     method destructor
  19.     method updateView
  20.     method collectSuperClasses
  21.     method browser
  22.     attribute _browser
  23. }
  24.  
  25. constructor CBSuperClassTextList {class this name} {
  26.     set this [CBClassInfoTextList::constructor $class $this $name]
  27.     # Start constructor user section
  28.     # End constructor user section
  29.     return $this
  30. }
  31.  
  32. method CBSuperClassTextList::destructor {this} {
  33.     set ref [$this _browser]
  34.     if {$ref != ""} {
  35.         $ref _superClassTL ""
  36.     }
  37.     # Start destructor user section
  38.     # End destructor user section
  39.     $this CBClassInfoTextList::destructor
  40. }
  41.  
  42. method CBSuperClassTextList::updateView {this currentClass} {
  43.     $this removeTextListEntries
  44.     $this removeEntries
  45.  
  46.     set inViewList [List new]
  47.     $this collectSuperClasses $currentClass $inViewList
  48.  
  49.     $this sortTextListEntries
  50.     $this fillEntries
  51.     $this deselectEntries
  52. }
  53.  
  54. method CBSuperClassTextList::collectSuperClasses {this aClass inViewList} {
  55.     foreach superClass [$aClass getSuperClasses] {
  56.         if {[$superClass name] == ""} {
  57.             continue
  58.         }
  59.         if {[lsearch [$inViewList contents] $superClass] != -1} {
  60.             continue
  61.         }
  62.         $this addTextListEntry $superClass
  63.         $inViewList insert $superClass
  64.         if {[[$this browser] isInFlatViewMode]} {
  65.             $this collectSuperClasses $superClass $inViewList
  66.         }
  67.     }
  68. }
  69.  
  70. # Do not delete this line -- regeneration end marker
  71.  
  72. method CBSuperClassTextList::browser {this args} {
  73.     if {$args == ""} {
  74.         return [$this _browser]
  75.     }
  76.     set ref [$this _browser]
  77.     if {$ref != ""} {
  78.         $ref _superClassTL ""
  79.     }
  80.     set obj [lindex $args 0]
  81.     if {$obj != ""} {
  82.         $obj _superClassTL $this
  83.     }
  84.     $this _browser $obj
  85. }
  86.  
  87.