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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)newdiagram.tcl    /main/titanic/10
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)newdiagram.tcl    /main/titanic/10   13 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require illegalcha.tcl
  14.  
  15. # End user added include file section
  16.  
  17. require "newobjentr.tcl"
  18.  
  19. Class NewDiagramDlg : {NewObjEntryDlg} {
  20.     constructor
  21.     method destructor
  22.     method handleEdit
  23.     method handleOk
  24.     method handleTextModified
  25.     method verifyText
  26.     method popUp
  27.     attribute type
  28.     attribute qualified
  29.     attribute prevQual
  30.     attribute prevName
  31.     attribute illegalQualChars
  32.     attribute illegalNameChars
  33.     attribute createInterface
  34. }
  35.  
  36. constructor NewDiagramDlg {class this name} {
  37.     set this [NewObjEntryDlg::constructor $class $this $name]
  38.     $this createInterface 1
  39.     # Start constructor user section
  40.  
  41.     $this config \
  42.         -okPressed "$this handleOk"
  43.     PushButton new $this.edit \
  44.         -label Edit \
  45.         -activated "$this handleEdit"
  46.  
  47.     # End constructor user section
  48.     return $this
  49. }
  50.  
  51. method NewDiagramDlg::destructor {this} {
  52.     # Start destructor user section
  53.     # End destructor user section
  54.     $this NewObjEntryDlg::destructor
  55. }
  56.  
  57. method NewDiagramDlg::handleEdit {this} {
  58.     $this popDown
  59.     $this handleOk
  60.     if [isCommand [$this createdObj]] {
  61.     [$this createdObj] editFile
  62.     }
  63. }
  64.  
  65. method NewDiagramDlg::handleOk {this} {
  66.     set fileType [$this type]
  67.     set itemType [file2itemtype $fileType]
  68.     set configV [[$this dbObj] getParent ConfigVersion]
  69.  
  70.     set message "Creating $fileType file version"
  71.     set script "$this createdObj \"\""
  72.     append script " ;"
  73.  
  74.     if [$this qualified] {
  75.     set className [$this entry]
  76.     set fileName [$this.top.name2 text]
  77.     set message "$message '${className}:${fileName}'..."
  78.  
  79.     append script " \
  80.         set sysItem [[[$this dbObj] itemKeeper] findDeclareItem \
  81.         -byName $className cl scopePhaseDef]"
  82.     append script " ;"
  83.     append script " \
  84.         set item \[\[\$sysItem item\] findCreateItem \
  85.         [list $fileName] $itemType\]"
  86.     append script " ;"
  87.     append script " \
  88.         $this createdObj \[[$this dbObj] createFileVersion \
  89.         \$item \
  90.         [fileHasScopePhase $fileType] $fileType graph $configV\]"
  91.     } else {
  92.     set fileName [$this entry]
  93.     set message "$message '$fileName'..."
  94.  
  95.     append script " \
  96.         $this createdObj \[[$this dbObj] createFileVersion \
  97.         [list $fileName] $itemType \
  98.         [fileHasScopePhase $fileType] $fileType graph $configV\]"
  99.     }
  100.     $wmttoolObj startCommand tcl "$script" "" $message {1 0} 1
  101. }
  102.  
  103. method NewDiagramDlg::handleTextModified {this} {
  104.     if [$this qualified] {
  105.     $this verifyText Qual name
  106.     $this verifyText Name name2
  107.     } else {
  108.     $this verifyText Name name
  109.     }
  110.     if {[$this qualified] && "[rmWhiteSpace [$this.top.name2 text]]" == ""} {
  111.     $this entry [$this.top.name text]
  112.     set selected 0
  113.     $this okSensitive $selected
  114.     $this.edit sensitive $selected
  115.     $this okDefault $selected
  116.     $this cancelDefault [expr 1 - $selected]
  117.     } else {
  118.     $this NewObjEntryDlg::handleTextModified
  119.     $this.edit sensitive [$this okSensitive]
  120.     }
  121. }
  122.  
  123. method NewDiagramDlg::verifyText {this kind field} {
  124.     if { ("[$this illegal${kind}Chars]" != "") && \
  125.     [regexp [$this illegal${kind}Chars] [$this.top.$field text]]} {
  126.     set cursorIndex [$this.top.$field cursorIndex]
  127.     $this.top.$field text [$this prev${kind}]
  128.     $this.top.$field cursorIndex [expr $cursorIndex - 1]
  129.     } else {
  130.     $this prev${kind} [$this.top.$field text]
  131.     }
  132. }
  133.  
  134. method NewDiagramDlg::popUp {this} {
  135.     global illegalCharacters
  136.     if [$this createInterface] {
  137.     $this createInterface 0
  138.     case [$this type] in {
  139.         {cod etd std} {
  140.         set message "Classifier:"
  141.         set qualified 1
  142.         }
  143.         default {
  144.         set message "Diagram Name:"
  145.         set qualified 0
  146.         }
  147.     }
  148.     set type [ShortLongName::longName [$this type]]
  149.     if {$type == ""} {
  150.         set type [$this type]
  151.     }
  152.     $this config \
  153.        -title "New $type" \
  154.        -qualified $qualified \
  155.        -illegalQualChars $illegalCharacters(cl) \
  156.        -illegalNameChars $illegalCharacters([file2itemtype [$this type]]) \
  157.        -message $message
  158.     if $qualified {
  159.         Label new $this.top.nameLab2 \
  160.         -text "Name:"
  161.         SingleLineText new $this.top.name2 \
  162.         -textModified "$this handleTextModified"
  163.     }
  164.     }
  165.     $this NewObjEntryDlg::popUp
  166. }
  167.  
  168. # Do not delete this line -- regeneration end marker
  169.  
  170.