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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)represtcor.tcl    /main/titanic/10
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)represtcor.tcl    /main/titanic/10   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 "represtdia.tcl"
  15.  
  16. Class RepRestCorporateDialog : {RepRestDialog} {
  17.     constructor
  18.     method destructor
  19.     method objType
  20.     method objDescription
  21.     method restore
  22.     method restoreFinished
  23.         attribute dbOptions
  24.         attribute optionDict
  25. }
  26.  
  27. constructor RepRestCorporateDialog {class this name view} {
  28.     set this [RepRestDialog::constructor $class $this $name $view]
  29.     # Start constructor user section
  30.  
  31.     $this config \
  32.             -title "Restore Entire Corporate" \
  33.             -helpPressed "$view helpOnName restoreCorporate"
  34.  
  35.         interface NamedGroup [$this dbColumn].g {
  36.         label "Database"
  37.             DlgColumn c {
  38.                 verStretchFactor 0
  39.         VerRadioGroup options {
  40.             entrySet { }
  41.         }
  42.             }
  43.         }
  44.  
  45.         if $win95 {
  46.         $this createDbInterface [$this dbColumn].g.c 35
  47.         } else {
  48.         $this createDbInterface [$this dbColumn].g.c 30
  49.         }
  50.     $this setDbFields
  51.         [$this dbname] textModified "$this checkOk"
  52.  
  53.         [$this dirLabel] text "From Corporate Directory\
  54.                                (created by unarchive command)"
  55.         [$this nameLabel] text "New Corporate Name\
  56.                                 (defaults to directory name)"
  57.  
  58.         set rep [[$this view] rep]
  59.         set corp [$rep currentCorporate]
  60.         if ![$corp isNil] {
  61.             [$this dirField] text [$rep currentRepDir]
  62.         }
  63.  
  64.         $this dbOptions [$this dbColumn].g.c.options
  65.  
  66.         set contents [list \
  67.         "Create new database." new \
  68.         "Delete existing database and create new database." replace ]
  69.  
  70.         $this optionDict [Dictionary new]
  71.         [$this optionDict] contents $contents
  72.  
  73.         set sel [lindex $contents 0]
  74.         while {![lempty $contents]} {
  75.             set option [lvarpop contents]
  76.             lappend options $option
  77.  
  78.             set short [lvarpop contents]
  79.             if {([$corp isNil] && $short == "new") ||
  80.                 (![$corp isNil] && $short == "replace")} {
  81.                 set sel $option
  82.             }
  83.         }
  84.     [$this dbOptions] entrySet $options
  85.     [$this dbOptions] selected $sel
  86.  
  87.     # End constructor user section
  88.     return $this
  89. }
  90.  
  91. method RepRestCorporateDialog::destructor {this} {
  92.     # Start destructor user section
  93.     # End destructor user section
  94.     $this RepRestDialog::destructor
  95. }
  96.  
  97. method RepRestCorporateDialog::objType {this} {
  98.     return "Corporate"
  99. }
  100.  
  101. method RepRestCorporateDialog::objDescription {this} {
  102.     set name [[$this nameField] text]
  103.     if {$name == ""} {
  104.         set name [file tail [[$this dirField] text]]
  105.     }
  106.     return "repository '$name'"
  107. }
  108.  
  109. method RepRestCorporateDialog::restore {this dbInfo} {
  110.     upvar $dbInfo info
  111.     set rep [[$this view] rep]
  112.     set opts {}
  113.  
  114.     switch [[$this optionDict] set [[$this dbOptions] selected]] {
  115.         new {
  116.         }
  117.         replace {
  118.             $rep deleteRepositoryDb info
  119.         }
  120.         default {
  121.             error "Bad database option."
  122.         }
  123.     }
  124.  
  125.     set repDir [[$this dirField] text]
  126.     set name [file tail $repDir]
  127.     set newName [[$this nameField] text]
  128.  
  129.     return [$rep restoreRepository "$this restoreFinished" info \
  130.                     $opts $repDir $newName]
  131. }
  132.  
  133. method RepRestCorporateDialog::restoreFinished {this {exitCode 0} } {
  134.     if {$exitCode != 0} {
  135.         $this RepRestDialog::restoreFinished $exitCode
  136.         return
  137.     }
  138.  
  139.     set name [[$this nameField] text]
  140.     if {$name == ""} {
  141.         set name [file tail [[$this dirField] text]]
  142.     }
  143.  
  144.     [$this view] updateRepositories
  145.     [$this view] selectRepository $name
  146.  
  147.     $this RepRestDialog::restoreFinished $exitCode
  148. }
  149.  
  150. # Do not delete this line -- regeneration end marker
  151.  
  152.