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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)cbtextlist.tcl    1.4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbtextlist.tcl    1.4   31 Jan 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class CBTextList : {TextList} {
  16.     constructor
  17.     method destructor
  18.     method hasSelTextListEntry
  19.     method getSelTextListEntry
  20.     method removeTextListEntries
  21.     method sortTextListEntries
  22.     method selectEntry
  23.     method deselectEntries
  24.     method removeEntries
  25.     method fillEntries
  26.     method getContentsAsString
  27.     method sort
  28.     method addTextListEntry
  29.     method removeTextListEntry
  30.     attribute textListEntrySet
  31. }
  32.  
  33. constructor CBTextList {class this name} {
  34.     set this [TextList::constructor $class $this $name]
  35.     $this textListEntrySet [List new]
  36.     # Start constructor user section
  37.     $this config \
  38.         -selectionChanged {[%this browser] selTextListChanged %this} \
  39.         -activated {[%this browser] fileOpen}
  40.     # End constructor user section
  41.     return $this
  42. }
  43.  
  44. method CBTextList::destructor {this} {
  45.     # Start destructor user section
  46.     # End destructor user section
  47. }
  48.  
  49. method CBTextList::hasSelTextListEntry {this} {
  50.     set idx [$this selectedIndexSet]
  51.     if {[llength $idx] == 0} {
  52.         return 0
  53.     }
  54.     return 1
  55. }
  56.  
  57. method CBTextList::getSelTextListEntry {this} {
  58.     set idx [$this selectedIndexSet]
  59.     if {[llength $idx] == 0} {
  60.         return ""
  61.     }
  62.     return [[$this textListEntrySet] index [lindex $idx 0]]
  63. }
  64.  
  65. method CBTextList::removeTextListEntries {this} {
  66.     [$this textListEntrySet] contents ""
  67. }
  68.  
  69. method CBTextList::sortTextListEntries {this} {
  70.     set sortedList [lsort -command CBTLEntry::compare \
  71.         [[$this textListEntrySet] contents]]
  72.     [$this textListEntrySet] contents $sortedList
  73. }
  74.  
  75. method CBTextList::selectEntry {this entry} {
  76.     set contents [[$this textListEntrySet] contents]
  77.     set idx [lsearch -exact $contents $entry]
  78.     if {$idx == -1} {
  79.         $this selectedSet {}
  80.         return
  81.     }
  82.     $this selectedIndexSet $idx
  83.     $this makeIndexVisible $idx
  84. }
  85.  
  86. method CBTextList::deselectEntries {this} {
  87.     $this selectedIndexSet {}
  88. }
  89.  
  90. method CBTextList::removeEntries {this} {
  91.     $this entrySet ""
  92. }
  93.  
  94. method CBTextList::fillEntries {this} {
  95.     set lst ""
  96.     [$this textListEntrySet] foreach textListEntry {
  97.         lappend lst [$textListEntry format]
  98.     }
  99.     $this entrySet $lst
  100. }
  101.  
  102. method CBTextList::getContentsAsString {this} {
  103.     set result ""
  104.  
  105.     foreach entry [$this entrySet] {
  106.         set result "${result}${entry}\n"
  107.     }
  108.     return $result
  109. }
  110.  
  111. method CBTextList::sort {this} {
  112.     set selection [$this getSelTextListEntry]
  113.     $this sortTextListEntries
  114.     $this fillEntries
  115.     if {$selection != ""} {
  116.         $this selectEntry $selection
  117.     }
  118. }
  119.  
  120. # Do not delete this line -- regeneration end marker
  121.  
  122. method CBTextList::addTextListEntry {this newTextListEntry} {
  123.     [$this textListEntrySet] append $newTextListEntry
  124.  
  125. }
  126.  
  127. method CBTextList::removeTextListEntry {this oldTextListEntry} {
  128.     [$this textListEntrySet] removeValue $oldTextListEntry
  129. }
  130.  
  131.