home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / drsconf.tcl < prev    next >
Text File  |  1997-05-21  |  7KB  |  216 lines

  1. # Copyright (c) 1997 by Cayenne Software Inc.
  2. #
  3. # This software is furnished under a license and may be used only in
  4. # accordance with the terms of such license and with the inclusion of
  5. # the above copyright notice. This software or any other copies thereof
  6. # may not be provided or otherwise made available to any other person.
  7. # No title to and ownership of the software is hereby transferred.
  8. #
  9. # The information in this software is subject to change without notice
  10. # and should not be construed as a commitment by Cayenne Software Inc
  11. #
  12. #---------------------------------------------------------------------------
  13. #
  14. #       File            : @(#)drsconf.tcl    /main/hindenburg/8 23 Jan 1997
  15. #       Author          : H. Broeze
  16. #       Original date   : 14 Januari 1997
  17. #       Description     : Configuration of the DOORS installation
  18. #
  19. #---------------------------------------------------------------------------
  20. #
  21.  
  22.  
  23. source [m4_path_name tcl cginit.tcl]
  24. require platform.tcl
  25. if $win95 {
  26.     if [catch {set regBinDir [registry get HKEY_CLASSES_ROOT \
  27.             "CLSID\\\{5b97da40-622e-11cf-a002-524153480003\}\\DIR" \
  28.             "(Default)"] }] {
  29.     puts "DOORS installation not found"
  30.     return
  31.     } 
  32.     set doorsHome [path_name concat $regBinDir ..]
  33. } else {
  34.     set doorsHome $env(DOORSHOME)
  35.     if ![llength $doorsHome] {
  36.         puts "environment variable DOORSHOME not set"
  37.         exit
  38.     }
  39. }
  40.  
  41. if ![file isdir $doorsHome] {
  42.     puts "DOORSHOME: $doorsHome is not a valid directory"
  43.     exit
  44. }
  45.  
  46.  
  47. set otDxlFileName [path_name concat $doorsHome lib]
  48. set otDxlFileName [path_name concat $otDxlFileName dxl]
  49. set otDxlDirName $otDxlFileName
  50. set otDxlFileName [path_name concat $otDxlFileName addins]
  51. set otDxlFileName [path_name concat $otDxlFileName user]
  52. set otDxlFileName [path_name concat $otDxlFileName ot.dxl]
  53.  
  54. set otDxlIndexName [path_name concat $otDxlDirName addins]
  55. set otDxlIndexName [path_name concat $otDxlIndexName user]
  56. set otDxlIndexName [path_name concat $otDxlIndexName user.idx]
  57.  
  58. set didExist 0
  59.  
  60. if [file exists $otDxlFileName]  {
  61.         set didExist 1
  62. }
  63.  
  64. if {[file exists $otDxlFileName] && ![file writable $otDxlFileName]} {
  65.     puts "$otDxlFileName not writable by you!"
  66.     puts "Configuration of DOORS canceled"
  67.     exit
  68. }
  69. if {[file exists $otDxlIndexName] && ![file writable $otDxlIndexName]} {
  70.     puts "$otDxlIndexName not writable by you!"
  71.     puts "Configuration of DOORS canceled"
  72.     exit
  73. }
  74. set otDxlFile [open $otDxlFileName w]
  75.  
  76. set M4_home [m4_var get M4_home]
  77.  
  78. if $win95 {
  79.     regsub -all {\\} $M4_home "/" M4_home
  80. }
  81. puts $otDxlFile  "// User Function
  82.  
  83. //  Copyright (c) Cayenne Software INC
  84.  
  85. /*
  86.   Example User Function
  87. */
  88.  
  89. /*      Modification history:
  90.  
  91.         Date:           Who:    Henk Broeze
  92. */
  93.  
  94.  
  95. void childCB(int cbNo) {
  96.     status (current Module, \"An ObjectTeam editor is closed\") 
  97. }
  98.  
  99. Object orgCurr = current Object
  100. string orgType = orgCurr.\"OTType\"
  101. int orgTypeLength = length orgType
  102. if ((orgTypeLength == 0) || (orgType==\"Project\") || (orgType == \"Phase\") || (orgType == \"System\" )) {
  103.         ack \"To start an ObjectTeam editor select a Diagram, a Diagram Object, Class Attribute or Operation\"
  104.         halt
  105. }
  106.  
  107. Object cur = orgCurr
  108. Object prev = orgCurr
  109. string  parents = \"\"
  110. while (!null cur) {
  111.         string  parentOTVersions  =  cur.\"ParentOTVersions\"
  112.         parentOTVersions = \"{\" parentOTVersions \"} \" 
  113.     string otType = cur.\"OTType\"
  114.         if (otType == \"Attribute\" || otType == \"Operation\") {
  115.             prev = cur
  116.             cur = cur parent
  117.             prev = cur
  118.             cur = cur parent
  119.             otType = cur.\"OTType\"
  120.             orgCurr = cur
  121.         }
  122.         string curObjectHeading = cur.\"Object Heading\"
  123.         if (otType == \"\")
  124.             parents = prev.\"OTType\"   \" \" parentOTVersions  parents
  125.         else
  126.             parents = curObjectHeading   \" \" parentOTVersions  parents
  127.         prev = cur
  128.         cur = cur parent
  129. }
  130. string otType = orgCurr.\"OTType\"
  131. void startOTEditor () {
  132.     status (current Module, \"Starting ObjectTeam editor\")
  133.     if (platform==\"WIN32\") {
  134.     system \"${M4_home}/bin/otk.exe ${M4_home}/tcl/drsude.tcl --  \" parents
  135.     } else {
  136.     string Command = \"otk ${M4_home}/tcl/drsude.tcl --  \" parents
  137.         system (Command ,childCB)
  138.     }
  139. }
  140.  
  141. parents =  \"{\" prev.\"SelectedItems\"  \"} \"  parents
  142. if (orgType ==\"Class\") {
  143.     DB fileTypeBox =create \"FileTypes\"
  144.     string fileTypes\[\] = {\"cad\", \"ccd\", \"etd\", \"std\"}
  145.     DBE fileTypeList = list(fileTypeBox, \"Select Editor Type\", 4, fileTypes)
  146.     string origParents = parents
  147.     void getFileType(DBE fileTypeList)  {
  148.             int i = get fileTypeList
  149.             parents = origParents fileTypes\[i\]
  150.             hide fileTypeBox
  151.             startOTEditor
  152.     }
  153.     set(fileTypeList, getFileType)
  154.     show fileTypeBox
  155. } else {
  156.     if (orgType ==\"Event\") {
  157.     DB fileTypeBox =create \"FileTypes\"
  158.     string fileTypes\[\] = {\"std\", \"etd\", \"mgd\"}
  159.     DBE fileTypeList = list(fileTypeBox, \"Select Editor Type\", 3, fileTypes)
  160.     string origParents = parents
  161.     void getFileType(DBE fileTypeList)  {
  162.         int i = get fileTypeList
  163.         parents = origParents fileTypes\[i\]
  164.         hide fileTypeBox
  165.         startOTEditor
  166.     }
  167.     set(fileTypeList, getFileType)
  168.     show fileTypeBox
  169.     } else {
  170.     if (orgType ==\"Attribute\" || orgType==\"Operation\") {
  171.         parents = parents \"cad\"
  172.     } else {
  173.         string edTypes = orgCurr.\"OTEditorTypes\" \"\"
  174.         if (edTypes == \"\") {
  175.         ack \"No editor defined for this object\"
  176.         halt
  177.         }
  178.         parents = parents orgCurr.\"OTEditorTypes\" \"\"
  179.     }
  180.     startOTEditor
  181.     }
  182. }"
  183.  
  184. puts "The DOORS installation is configured for navigation to ObjectTeam"
  185. close $otDxlFile
  186. if $didExist {
  187.     # config is already done once so
  188.     # no extension of menu
  189.     # default start up of dxl server already available
  190.     return
  191. }
  192.  
  193. puts "The DOORS installation is configured with an extra ObjectTeam option in the user menu"
  194. set otDxlIndexFile [open $otDxlIndexName a]
  195. puts $otDxlIndexFile "ot   O _ Start ObjectTeam editor" 
  196. close $otDxlIndexFile
  197.  
  198. if $win95 {
  199.     exit
  200. }
  201.  
  202. set startupFileName [path_name concat $otDxlDirName startup.dxl]
  203. if ![file writable $startupFileName] {
  204.     puts "$startupFileName does not exist or is not writable by you!"
  205.     puts "Configuration of DOORS canceled"
  206.     exit
  207. }
  208.  
  209. # for default starting the dxl server
  210. puts "Configuration the DOORS installation so that the dxlserver is started automatic"
  211. set otStartUpFile [open $startupFileName a]
  212. puts "Configuration of DOORS completed"
  213. puts $otStartUpFile "// to start the server by default
  214. #include <standard/external/dxlserv.dxl>" 
  215. close $otStartUpFile
  216.