home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / repsubdirb.tcl < prev    next >
Text File  |  1997-11-21  |  4KB  |  145 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)repsubdirb.tcl    /main/titanic/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)repsubdirb.tcl    /main/titanic/5   21 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require browstable.tcl
  13. # End user added include file section
  14.  
  15.  
  16. Class RepSubDirBrowser : {TemplateDialog} {
  17.     constructor
  18.     method destructor
  19.     method message
  20.     method popUp
  21.     method checkOk
  22.     method doubleClicked
  23.     method handleOk
  24.     method showDumpInfo
  25.     attribute directory
  26.     attribute selectedSet
  27. }
  28.  
  29. constructor RepSubDirBrowser {class this name} {
  30.     set this [TemplateDialog::constructor $class $this $name]
  31.     # Start constructor user section
  32.  
  33.         $this config \
  34.             -modal 1 \
  35.             -title "Repository Directory Browser" \
  36.             -okPressed "$this handleOk"
  37.  
  38.         interface DlgColumn $this.c {
  39.             Label message {
  40.                 text "Select a directory from the repository directory:"
  41.             }
  42.         BrowsTable list {
  43.         verStretchFactor 100
  44.         verShrinkFactor 100
  45.         mode DETAIL
  46.         selectionPolicy BROWSE
  47.         columnCount 36
  48.         rowCount 10
  49.             }
  50.         }
  51.  
  52.         if $win95 {
  53.         set widths {24 32}
  54.         } else {
  55.         set widths {20 32}
  56.         }
  57.     $this.c.list setHeaderLabels {Subdirectory "Modification Date"} $widths
  58.         $this.c.list selectionChanged "$this checkOk"
  59.  
  60.     PushButton new $this.info \
  61.             -label "Info" \
  62.         -activated "$this showDumpInfo"
  63.  
  64.         $this delHelpButton
  65.  
  66.     # End constructor user section
  67.     return $this
  68. }
  69.  
  70. method RepSubDirBrowser::destructor {this} {
  71.     # Start destructor user section
  72.     # End destructor user section
  73. }
  74.  
  75. method RepSubDirBrowser::message {this msg} {
  76.     $this.c.message text $msg
  77. }
  78.  
  79. method RepSubDirBrowser::popUp {this} {
  80.     $this.c.list removeAllObjects
  81.  
  82.     set selectedSet {}
  83.     set count 0
  84.     foreach subDir [BasicFS::readDir [$this directory]] {
  85.         set full [location [$this directory] $subDir]
  86.         if ![file isdir $full] {
  87.             continue
  88.         }
  89.  
  90.         set date [clock format [file mtime $full] -format %c]
  91.  
  92.         incr count
  93.         set obj $this.c.list.entry$count
  94.         BrowsObject new $obj \
  95.         -label $subDir \
  96.         -details [list $date] \
  97.             -activated "$this doubleClicked"
  98.  
  99.         if {[lsearch [$this selectedSet] $subDir] != -1} {
  100.             lappend selectedSet $obj
  101.         }
  102.     }
  103.  
  104.     $this.c.list selectedSet $selectedSet
  105.  
  106.     $this checkOk
  107.     $this TemplateDialog::popUp
  108. }
  109.  
  110. method RepSubDirBrowser::checkOk {this} {
  111.     set set [$this.c.list selectedSet]
  112.     if [lempty $set] {
  113.         $this.info sensitive 0
  114.         $this okSensitive 0
  115.     } else {
  116.         $this.info sensitive 1
  117.         $this okSensitive 1
  118.     }
  119. }
  120.  
  121. method RepSubDirBrowser::handleOk {this} {
  122.     set set {}
  123.     foreach obj [$this.c.list selectedSet] {
  124.         lappend set [$obj label]
  125.     }
  126.     $this selectedSet $set
  127. }
  128.  
  129. method RepSubDirBrowser::doubleClicked {this} {
  130.     $this checkOk
  131.     if [$this okSensitive] {
  132.         eval [$this okPressed]
  133.     }
  134.     $this popDown
  135. }
  136.  
  137. method RepSubDirBrowser::showDumpInfo {this} {
  138.     set subDir [[lindex [$this.c.list selectedSet] 0] label]
  139.     set full [location [$this directory] $subDir]
  140.     Repository::showDumpInfo $full
  141. }
  142.  
  143. # Do not delete this line -- regeneration end marker
  144.  
  145.