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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)msimportco.tcl    /main/titanic/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)msimportco.tcl    /main/titanic/5   28 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. #require "msrepchoos.tcl"
  15.  
  16. Class MsImportControl : {MsRepChooser} {
  17.     constructor
  18.     method destructor
  19.     method handleOk
  20.     method selectModel
  21.     method selectPackage
  22.     method modelSelected
  23.     attribute modelDict
  24.     attribute type
  25.     attribute packageDict
  26. }
  27.  
  28. constructor MsImportControl {class this name userName password i_type} {
  29.     set this [MsRepChooser::constructor $class $this $name $userName $password]
  30.     $this type $i_type 
  31.     # Start constructor user section
  32.     $this config \
  33.         -title "Repository to import from"
  34.     $this modelDict [Dictionary new]
  35.     $this packageDict [Dictionary new]
  36.     # End constructor user section
  37.     return $this
  38. }
  39.  
  40. method MsImportControl::destructor {this} {
  41.     # Start destructor user section
  42.     # End destructor user section
  43.     $this MsRepChooser::destructor
  44. }
  45.  
  46. method MsImportControl::handleOk {this} {
  47.     $this MsRepChooser::handleOk
  48.     if {[$this repFound] && [$this hasUml]} {
  49.         $this selectModel 
  50.     }
  51. }
  52.  
  53. method MsImportControl::selectModel {this} {
  54.     set modelDict [$this modelDict]
  55.     set models ""
  56.     set sv [[ClientContext::global] currentSystem]
  57.     set root [$this root]
  58.         for {set elNo  1} {$elNo <=[$root getNoOfElements]} {incr elNo} {
  59.             set element [$root getElement $elNo]
  60.             set elementName [$element property name]
  61.             $modelDict set $elementName $elNo
  62.             lappend models $elementName
  63.         }
  64.         set box .main.msSelectModel
  65.         if ![isCommand $box] {
  66.         ClassMaker::extend ListDialog ModelsListDialog "control sv root"
  67.         #cancelPressed {%this delete} 
  68.                 ModelsListDialog new $box \
  69.                         -modal yes \
  70.                         -title "UML model selection" \
  71.                         -message "Select UML Model to import:" \
  72.                         -rowCount 8 \
  73.                         -helpPressed {.main helpOnName importMSRep} \
  74.                         -okPressed {
  75.                 set control [%this control] 
  76.                                 set modelNo [[$control  modelDict] set [%this selectedSet]]
  77.                 $control modelSelected $modelNo
  78.                         }
  79.  
  80.         }
  81.     $box control $this
  82.     $box root $root
  83.     $box sv $sv
  84.     $box entrySet $models 
  85.     $box popUp
  86. }
  87.  
  88. method MsImportControl::selectPackage {this model modelNo} {
  89.     set packageDict [$this packageDict]
  90.     set packages ""
  91.         for {set elNo  1} {$elNo <=[$model getNoOfPackages]} {incr elNo} {
  92.             set element [$model getPackage $elNo]
  93.             set elementName [$element property name]
  94.             $packageDict set $elementName $elNo
  95.             lappend packages $elementName
  96.         }
  97.         set box .main.msSelectPackage
  98.         if ![isCommand $box] {
  99.         ClassMaker::extend ListDialog PackageListDialog "control modelNo"
  100.                 PackageListDialog new $box \
  101.                         -modal yes \
  102.                         -title "UML package selection" \
  103.                         -message "Select UML Package to import:" \
  104.                         -rowCount 8 \
  105.                         -okPressed {
  106.                 set control [%this control] 
  107.                                 set packNo [[$control  packageDict] set [lindex [%this selectedSet] 0]]
  108.                                 $control modelSelected [%this modelNo] $packNo
  109.                         }
  110.  
  111.         }
  112.     $box modelNo $modelNo
  113.     $box control $this
  114.     $box entrySet $packages 
  115.     $box popUp
  116. }
  117.  
  118. method MsImportControl::modelSelected {this modelNo {packNo ""}} {
  119.     set tmpFile [args_file {}]
  120.     if {[$this type] == "RT"} {
  121.     set otprintScr "[m4_path_name bin otsh$EXE_EXT] -f "
  122.     } else {
  123.     set otprintScr "[m4_path_name bin otprint$EXE_EXT] "
  124.     }
  125.     set otprintScr "$otprintScr \
  126.     \"[m4_path_name tcl msumlimport.tcl]\" -- \
  127.     $tmpFile $modelNo [$this repName] $packNo "
  128.     .main startCommand mtool $otprintScr "" \
  129.                 "Importing from MS Repository" {1 0} 0
  130.     $this delete
  131. }
  132.  
  133. # Do not delete this line -- regeneration end marker
  134.  
  135.