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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)represtdia.tcl    /main/titanic/11
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)represtdia.tcl    /main/titanic/11   28 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "repdbdialo.tcl"
  15.  
  16. Class RepRestDialog : {RepDbDialog} {
  17.     constructor
  18.     method destructor
  19.     method popUp
  20.     method checkOk
  21.     method pressedOk
  22.     method restoreFinished
  23.     method browseDirectory
  24.     method setDirectory
  25.     method unarchivedDirectory
  26.     attribute dirLabel
  27.     attribute dirField
  28.     attribute dirBrowse
  29.     attribute nameLabel
  30.     attribute nameField
  31.     attribute extraColumn
  32.     attribute checkColumn
  33.     attribute dbColumn
  34.     attribute shutdownButton
  35.     attribute dirBrowser
  36. }
  37.  
  38. constructor RepRestDialog {class this name view} {
  39.     set this [RepDbDialog::constructor $class $this $name $view]
  40.     # Start constructor user section
  41.  
  42.         $this autoPopDown 0
  43.  
  44.     interface DlgColumn $this.c {
  45.         Label dirLabel { text "Directory" }
  46.         DlgRow r {
  47.         spaceType NONE
  48.         DlgColumn n {
  49.             spaceType EVEN
  50.             horStretchFactor 100
  51.             SingleLineText dir {
  52.             text ""
  53.             columnCount 30
  54.             horStretchFactor 100
  55.             }
  56.         }
  57.         DlgColumn b {
  58.             spaceType EVEN
  59.             horStretchFactor 0
  60.             PushButton browse {
  61.             horStretchFactor 0
  62.             label "Browse..."
  63.             }
  64.         }
  65.         }
  66.         Label nameLabel { text "New Name" }
  67.         DlgRow n {
  68.         spaceType NONE
  69.         DlgColumn n {
  70.             spaceType EVEN
  71.             horStretchFactor 100
  72.             SingleLineText name {
  73.             text ""
  74.             columnCount 30
  75.             horStretchFactor 100
  76.             }
  77.         }
  78.         }
  79.         DlgColumn extra {
  80.             }
  81.         DlgColumn check {
  82.                 verStretchFactor 0
  83.         CheckButton shut {
  84.             label "Shutdown dbservers before restoring."
  85.             state 1
  86.         }
  87.             }
  88.         DlgColumn db {
  89.                 verStretchFactor 0
  90.             }
  91.     }
  92.  
  93.         $this dirLabel $this.c.dirLabel
  94.         $this dirField $this.c.r.n.dir
  95.         $this dirBrowse $this.c.r.b.browse
  96.         $this nameLabel $this.c.nameLabel
  97.         $this nameField $this.c.n.n.name
  98.         $this extraColumn $this.c.extra
  99.         $this checkColumn $this.c.check
  100.         $this dbColumn $this.c.db
  101.         $this shutdownButton $this.c.check.shut
  102.  
  103.         $this okPressed "$this pressedOk"
  104.         [$this dirField] textModified "$this checkOk"
  105.         [$this dirField] text [pwd]
  106.     [$this dirBrowse] activated "$this browseDirectory"
  107.         [$this nameField] textModified "$this checkOk"
  108.  
  109.     # End constructor user section
  110.     return $this
  111. }
  112.  
  113. method RepRestDialog::destructor {this} {
  114.     # Start destructor user section
  115.     # End destructor user section
  116.     $this RepDbDialog::destructor
  117. }
  118.  
  119. method RepRestDialog::popUp {this} {
  120.     set unarchivedDir [$this unarchivedDirectory]
  121.     if {$unarchivedDir != ""} {
  122.     $this setDirectory $unarchivedDir
  123.     }
  124.  
  125.     $this checkOk
  126.     $this RepDbDialog::popUp
  127. }
  128.  
  129. method RepRestDialog::checkOk {this} {
  130.     $this okSensitive [expr {
  131.       [[$this dirField] text] != "" &&
  132.       [string length [[$this dbname] text]] &&
  133.       [$this passwordOk]
  134.     }]
  135. }
  136.  
  137. method RepRestDialog::pressedOk {this} {
  138.     $this busy 1
  139.     if ![$this getDbFields dbInfo] {
  140.         $this restoreFinished 1
  141.         return
  142.     }
  143.  
  144.     set rep [[$this view] rep]
  145.     if [[$this shutdownButton] state] {
  146.     set name [$rep currentName]
  147.     if {$name != "" && ![$rep shutdownDbServers $name]} {
  148.         $this busy 0
  149.             return
  150.         }
  151.     }    
  152.  
  153.     if ![$this restore dbInfo] {
  154.     $this busy 0
  155.     }
  156. }
  157.  
  158. method RepRestDialog::restoreFinished {this exitCode} {
  159.     $this busy 0
  160.     if {$exitCode == 0} {
  161.         $this popDown
  162.         [$this view] message "Restored [$this objDescription] successfully."
  163.     } else {
  164.         [$this view] message "Failed to restore [$this objDescription]."
  165.     }
  166. }
  167.  
  168. method RepRestDialog::browseDirectory {this} {
  169.     if {[$this dirBrowser] == ""} {
  170.     global classCount
  171.     set dirbrowser [$this view].dirbrowser$classCount
  172.     incr classCount
  173.         $this dirBrowser [RepDirBrowser new $dirbrowser 0 1 \
  174.             -title "Select [$this objType] Directory" \
  175.             -okPressed "%this handleOk ; $this setDirectory \[%this selected]"]
  176.     }
  177.  
  178.     [$this dirBrowser] selected [[$this dirField] text]
  179.     [$this dirBrowser] popUp
  180. }
  181.  
  182. method RepRestDialog::setDirectory {this dir} {
  183.     [$this dirField] text $dir
  184.     $this checkOk
  185. }
  186.  
  187. method RepRestDialog::unarchivedDirectory {this} {
  188.     set type [$this objType]
  189.     set view [$this view]
  190.     set unarDialog $view.RepUnar${type}Dialog
  191.     if [isCommand $unarDialog] {
  192.         return [$unarDialog unarchivedDirectory]
  193.     }
  194.     return ""
  195. }
  196.  
  197. # Do not delete this line -- regeneration end marker
  198.  
  199.