home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / msimportco.tcl < prev    next >
Text File  |  1997-06-03  |  5KB  |  133 lines

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