home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / vssysdialo.tcl < prev    next >
Text File  |  1997-03-18  |  2KB  |  96 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)vssysdialo.tcl    /main/hindenburg/3
  6. #      Author:         <generated>
  7. #      Description:    VCM integration file
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)vssysdialo.tcl    /main/hindenburg/3   18 Mar 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. # This class provides basic functionality for dialogs that result
  16. # in VS files being processed.
  17.  
  18. Class VSSysDialog : {Object} {
  19.     constructor
  20.     method destructor
  21.     method processFiles
  22.     method selectionDescription
  23.  
  24.     # Indicates whether the browser view must be updated after this action.
  25.     #
  26.     attribute needsUpdate
  27.  
  28.     # The selected files.
  29.     #
  30.     attribute selectedFiles
  31.  
  32.     # This script is evaluated for each selected file.
  33.     #
  34.     attribute vsMethod
  35. }
  36.  
  37. constructor VSSysDialog {class this name} {
  38.     set this [Object::constructor $class $this $name]
  39.     $this needsUpdate 1
  40.     # Start constructor user section
  41.     # End constructor user section
  42.     return $this
  43. }
  44.  
  45. method VSSysDialog::destructor {this} {
  46.     # Start destructor user section
  47.     # End destructor user section
  48. }
  49.  
  50.  
  51. # Process the selected files: evaluate vsMethod for
  52. # each selectedFile.
  53. #
  54. method VSSysDialog::processFiles {this} {
  55.     busy {
  56.     vsCommandHandler suspendOutput
  57.     set allOk 1
  58.     set someOk 0
  59.  
  60.     foreach file [$this selectedFiles] {
  61.         if { ![eval [$this vsMethod]] } {
  62.         set allOk 0
  63.         break 
  64.         }
  65.         set someOk 1
  66.     }
  67.  
  68.     vsCommandHandler showOutput
  69.  
  70.     if { [$this needsUpdate] && $someOk } {
  71.         .main updateView
  72.     }
  73.     wmtkmessage ""
  74.  
  75.     # if there were no errors delete the dialog
  76.     if $allOk {
  77.         $this delete
  78.     }
  79.     }
  80. }
  81.  
  82.  
  83. # Return description of the selected files.
  84. #
  85. method VSSysDialog::selectionDescription {this} {
  86.     if { [llength [$this selectedFiles]] > 1 } {
  87.     return "selected objects"
  88.     }
  89.  
  90.     set selectedFile [lindex [$this selectedFiles] 0]
  91.     return [path_name file [$selectedFile path]]
  92. }
  93.  
  94. # Do not delete this line -- regeneration end marker
  95.  
  96.