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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)newdocvdlg.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)newdocvdlg.tcl    /main/titanic/2   20 Feb 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require "wmt_util.tcl"
  13. # End user added include file section
  14.  
  15. Class NewDocVDlg : {TemplateDialog} {
  16.     constructor
  17.     method destructor
  18.     method handleCancel
  19.     method handleHelp
  20.     method handleOk
  21.     method handleSelectionChanged
  22.     method popUp
  23.     attribute dbObj
  24. }
  25.  
  26. constructor NewDocVDlg {class this name} {
  27.     set this [TemplateDialog::constructor $class $this $name]
  28.     # Start constructor user section
  29.  
  30.     interface DlgColumn $this.top {
  31.         Label nameLab {
  32.         text "Document Name:"
  33.         }
  34.         SingleLineText name {}
  35.         Label docsysLab {
  36.         text "Documented System:"
  37.         }
  38.         ComboBox docsys {
  39.         rowCount 5
  40.         }
  41.         Label editorLab {
  42.         text "Editor:"
  43.         }
  44.         OptionMenu editor {
  45.         }
  46.     }
  47.     $this config \
  48.         -modal yes \
  49.         -title "New Document Version" \
  50.         -okPressed "$this handleOk" \
  51.         -cancelPressed "$this handleCancel" \
  52.         -helpPressed "$this handleHelp"
  53.  
  54.     # Selection-changed callback 
  55.     $this.top.docsys textModified {
  56.         set dialog [getParent [getParent %this]]
  57.         $dialog handleSelectionChanged
  58.     }
  59.     $this.top.name textModified "$this handleSelectionChanged"
  60.  
  61.     # End constructor user section
  62.     return $this
  63. }
  64.  
  65. method NewDocVDlg::destructor {this} {
  66.     # Start destructor user section
  67.     # End destructor user section
  68. }
  69.  
  70. method NewDocVDlg::handleCancel {this} {
  71. }
  72.  
  73. method NewDocVDlg::handleHelp {this} {
  74.     [getParent $this] helpOnName [nt_get_type $this]
  75. }
  76.  
  77. method NewDocVDlg::handleOk {this} {
  78.     set dbObj [$this dbObj]
  79.     set docsys [$this.top.docsys text]
  80.     set docname [$this.top.name text]
  81.     set doctype [lindex ${BrowserProcs::systemTypes} 1]
  82.     set editor [$this.top.editor selected]
  83.     global docwriterEditors
  84.     set selEditor ""
  85.     foreach name [array names docwriterEditors] {
  86.     if {$docwriterEditors($name) == $editor} {
  87.         set selEditor $name
  88.         break
  89.     }
  90.     }
  91.     if {$selEditor == ""} {
  92.     return
  93.     }
  94.  
  95.     set script "set docV \[$dbObj createSystemVersion \
  96.     [list $docname] cl [list $doctype] [$dbObj getParent ConfigVersion] 0\]"
  97.     append script " ;"
  98.     append script " \$docV setProperty editor [list $selEditor]"
  99.     append script " ;"
  100.     append script " \$docV setProperty doc_sys [list $docsys]"
  101.     append script " ;"
  102.     append script " set propInfo \[PIPropInfo new\]"
  103.     append script " ;"
  104.     append script " \$propInfo edit \$docV"
  105.     append script " ;"
  106.     append script " set prop \[\$propInfo findProperty doc_sys\]"
  107.     append script " ;"
  108.     append script " PIPropItemRef new \$prop cl scopePhase"
  109.     append script " ;"
  110.     append script " \$propInfo save"
  111.     append script " ;"
  112.     append script " \$propInfo delete"
  113.  
  114.     if [[$dbObj findSystemVersion -byNameAndType "$docsys" system] isNil] {
  115.     set endScript "wmtkwarning \
  116.         \"SystemVersion with name '$docsys' does not\
  117.           exist within the current PhaseVersion\""
  118.     } else {
  119.     set endScript ""
  120.     }
  121.  
  122.     $wmttoolObj startCommand tcl \
  123.     "$script" "$endScript" \
  124.     "Creating $doctype version '$docname'..." \
  125.     {1 0} 1
  126. }
  127.  
  128. method NewDocVDlg::handleSelectionChanged {this} {
  129.     if {"[rmWhiteSpace [$this.top.name text]]" == "" ||
  130.     "[rmWhiteSpace [$this.top.docsys text]]" == ""} {
  131.     set selected 0
  132.     } else {
  133.     set selected 1
  134.     }
  135.     $this okSensitive $selected
  136.     $this okDefault $selected
  137.     $this cancelDefault [expr 1 - $selected]
  138. }
  139.  
  140. method NewDocVDlg::popUp {this} {
  141.     # Fill list of documented systems
  142.     set entrySet ""
  143.     foreach sysV [[$this dbObj] getChildSet systemVersions] {
  144.     set sys [$sysV system]
  145.     if {"[$sys type]" != "system"} continue
  146.     lappend entrySet "[$sys name]"
  147.     }
  148.     set entrySet [lsort $entrySet]
  149.     set text [$this.top.docsys text]
  150.     if {"$text" == "" || [lsearch -exact $entrySet "$text"] == -1} {
  151.     set text [lindex $entrySet 0]
  152.     }
  153.     $this.top.docsys config \
  154.     -entrySet $entrySet \
  155.     -text $text
  156.  
  157.     set entrySet ""
  158.     # Fill list of available editors
  159.     global docwriterEditors
  160.     if [info exist docwriterEditors] {
  161.     foreach editor [array names docwriterEditors] {
  162.         if {$docwriterEditors($editor) != "" } {
  163.             lappend entrySet $docwriterEditors($editor)
  164.         }
  165.     }
  166.     } else {
  167.     set entrySet {{<no editors available>}}
  168.     }
  169.     $this.top.editor config \
  170.     -entrySet $entrySet \
  171.     -selected [lindex $entrySet 0]
  172.  
  173.     $this handleSelectionChanged
  174.     $this TemplateDialog::popUp
  175. }
  176.  
  177. # Do not delete this line -- regeneration end marker
  178.  
  179.