home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / drsconf.tcl < prev    next >
Text File  |  1997-11-26  |  7KB  |  217 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/titanic/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.     string otkCommand = \"${M4_home}/bin/otk.exe ${M4_home}/modules/doors/tcl/drsude.tcl --  \" parents \"\"
  135.     system otkCommand
  136.     } else {
  137.     string Command = \"otk ${M4_home}/modules/doors/tcl/drsude.tcl --  \" parents
  138.         system (Command ,childCB)
  139.     }
  140. }
  141.  
  142. parents =  \"{\" prev.\"SelectedItems\"  \"} \"  parents
  143. if (orgType ==\"Class\") {
  144.     DB fileTypeBox =create \"FileTypes\"
  145.     string fileTypes\[\] = {\"cad\", \"ccd\", \"etd\", \"std\", \"cod\"}
  146.     DBE fileTypeList = list(fileTypeBox, \"Select Editor Type\", 4, fileTypes)
  147.     string origParents = parents
  148.     void getFileType(DBE fileTypeList)  {
  149.             int i = get fileTypeList
  150.             parents = origParents fileTypes\[i\]
  151.             hide fileTypeBox
  152.             startOTEditor
  153.     }
  154.     set(fileTypeList, getFileType)
  155.     show fileTypeBox
  156. } else {
  157.     if (orgType ==\"Event\") {
  158.     DB fileTypeBox =create \"FileTypes\"
  159.     string fileTypes\[\] = {\"cod\", \"std\", \"etd\", \"mgd\"}
  160.     DBE fileTypeList = list(fileTypeBox, \"Select Editor Type\", 3, fileTypes)
  161.     string origParents = parents
  162.     void getFileType(DBE fileTypeList)  {
  163.         int i = get fileTypeList
  164.         parents = origParents fileTypes\[i\]
  165.         hide fileTypeBox
  166.         startOTEditor
  167.     }
  168.     set(fileTypeList, getFileType)
  169.     show fileTypeBox
  170.     } else {
  171.     if (orgType ==\"Attribute\" || orgType==\"Operation\") {
  172.         parents = parents \"cad\"
  173.     } else {
  174.         string edTypes = orgCurr.\"OTEditorTypes\" \"\"
  175.         if (edTypes == \"\") {
  176.         ack \"No editor defined for this object\"
  177.         halt
  178.         }
  179.         parents = parents orgCurr.\"OTEditorTypes\" \"\"
  180.     }
  181.     startOTEditor
  182.     }
  183. }"
  184.  
  185. puts "The DOORS installation is configured for navigation to ObjectTeam"
  186. close $otDxlFile
  187. if $didExist {
  188.     # config is already done once so
  189.     # no extension of menu
  190.     # default start up of dxl server already available
  191.     return
  192. }
  193.  
  194. puts "The DOORS installation is configured with an extra ObjectTeam option in the user menu"
  195. set otDxlIndexFile [open $otDxlIndexName a]
  196. puts $otDxlIndexFile "ot   O _ Start ObjectTeam editor" 
  197. close $otDxlIndexFile
  198.  
  199. if $win95 {
  200.     exit
  201. }
  202.  
  203. set startupFileName [path_name concat $otDxlDirName startup.dxl]
  204. if ![file writable $startupFileName] {
  205.     puts "$startupFileName does not exist or is not writable by you!"
  206.     puts "Configuration of DOORS canceled"
  207.     exit
  208. }
  209.  
  210. # for default starting the dxl server
  211. puts "Configuration the DOORS installation so that the dxlserver is started automatic"
  212. set otStartUpFile [open $startupFileName a]
  213. puts "Configuration of DOORS completed"
  214. puts $otStartUpFile "// to start the server by default
  215. #include <standard/external/dxlserv.dxl>" 
  216. close $otStartUpFile
  217.