home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / cachedmatr.tcl < prev    next >
Text File  |  1996-06-11  |  2KB  |  80 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)cachedmatr.tcl    /main/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cachedmatr.tcl    /main/2   11 Jun 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. require cadmodeltp.tcl
  13. require cachedcell.tcl
  14. require cachedrow.tcl
  15. # End user added include file section
  16.  
  17.  
  18. Class CachedMatrix : {Matrix} {
  19.     method destructor
  20.     constructor
  21.     method promoter
  22.     method loadCachedMatrix
  23.     method addCachedRow
  24.     method removeCachedRow
  25.     attribute cachedRowSet
  26. }
  27.  
  28. method CachedMatrix::destructor {this} {
  29.     # Start destructor user section
  30.     # End destructor user section
  31. }
  32.  
  33. constructor CachedMatrix {class this name_1 name} {
  34.     set this [Matrix::constructor $class $this $name_1 $name]
  35.     $this cachedRowSet [List new]
  36.     # Start constructor user section
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method CachedMatrix::promoter {this} {
  42.     $this cachedRowSet [List new]
  43. }
  44.  
  45. selfPromoter Matrix {this} {
  46.     if {[[$this file] type] == $CDM_TYPE} {
  47.         CachedMatrix promote $this
  48.     }
  49. }
  50.  
  51. method CachedMatrix::loadCachedMatrix {this} {
  52.     $this loadRowData $LT_NAME_TYPE rowDataList
  53.  
  54.     foreach row $rowDataList {
  55.         set theRow [lindex $row 0]
  56.         CachedRow promote $theRow [lindex $row 1] [lindex $row 2]
  57.         $this addCachedRow $theRow
  58.  
  59.         set cells [lindex $row 3]
  60.         foreach cell $cells {
  61.             set theCell [lindex $cell 0]
  62.             CachedCell promote $theCell \
  63.                 [lindex $cell 1] [lindex $cell 2]
  64.             $theRow addCachedCell $theCell
  65.         }
  66.     }
  67. }
  68.  
  69. # Do not delete this line -- regeneration end marker
  70.  
  71. method CachedMatrix::addCachedRow {this newCachedRow} {
  72.     [$this cachedRowSet] append $newCachedRow
  73.  
  74. }
  75.  
  76. method CachedMatrix::removeCachedRow {this oldCachedRow} {
  77.     [$this cachedRowSet] removeValue $oldCachedRow
  78. }
  79.  
  80.