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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)uce.tcl    /main/titanic/5
  6. #      Author:         voyager
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)uce.tcl    /main/titanic/5   16 Jul 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. OtkRegister::extGui
  12.  
  13. source [m4_path_name tcl libocl.tcl]
  14.  
  15. require platform.tcl
  16. require procs.tcl
  17. require messagehdl.tcl
  18.  
  19. global classCount
  20. set classCount 0
  21.  
  22. proc usage {} {
  23.     error "Usage: otk uce.tcl -- \
  24.         \[-c caller\] \
  25.         \[-r\] \
  26.         \[-fi level file.editorType\] \
  27.         \[-id customFileVersionId\]"
  28. }
  29.  
  30. proc editorReadOnly {menuEntry} {
  31.     if [.main currentlyReadOnly] {
  32.         $menuEntry sensitive 0
  33.         return 1
  34.     } else {
  35.         $menuEntry sensitive 1
  36.         return 0
  37.     }
  38. }
  39.  
  40. proc objectReadOnly {menuEntry} {
  41.  
  42.     if {[editorReadOnly $menuEntry]} {
  43.         return
  44.     }
  45.  
  46.     $menuEntry sensitive 1
  47.     foreach obj [[.main editorArea] selectedSet] {
  48.         if {![$obj editable]} {
  49.             $menuEntry sensitive 0
  50.         }
  51.     }
  52. }
  53.  
  54. set argc 0
  55. set status INITIAL
  56. set type ""
  57. set readOnly 0
  58. set caller ""
  59. foreach arg $argv {
  60.     case $arg in {
  61.         {-c} {
  62.         if {$status != "INITIAL"} {
  63.             usage
  64.         }
  65.         set status CALLER
  66.         }
  67.         {-r} {
  68.         if {$status != "INITIAL"} {
  69.             usage
  70.         }
  71.         set readOnly 1
  72.         }
  73.         {-fi} {
  74.         if {$status != "INITIAL"} {
  75.             usage
  76.         }
  77.         set type "fi" 
  78.         set status FILE
  79.         }
  80.         {-id} {
  81.         if {$status != "INITIAL"} {
  82.             usage
  83.         }
  84.         set type "id"
  85.         set status ID
  86.         }
  87.         {default} {
  88.         case $status in {
  89.             {CALLER} {
  90.             set caller $arg
  91.             set status INITIAL
  92.             }
  93.             {FILE} {
  94.             set level $arg
  95.             set status FILE_1
  96.             }
  97.             {FILE_1} {
  98.             set fileName [path_name base $arg]
  99.             set fileType [path_name type $arg]
  100.             set fv $fileName.$fileType
  101.             set editorType $fileType
  102.             set status END
  103.             }
  104.             {ID} {
  105.             if [catch {set fv [CustomFileVersion new $arg]}] {
  106.                 usage
  107.             }
  108.             set editorType [[$fv customFile] type]
  109.             set fileName [[$fv customFile] name]
  110.             set level ""
  111.             set status END
  112.             }
  113.             {default} {
  114.             usage
  115.             }
  116.         }
  117.         }
  118.     }
  119.     incr argc 1
  120. }
  121. if {$status != "END"} {
  122.     usage
  123. }
  124.  
  125. set iconTitle $fileName.$editorType
  126. case $editorType in {
  127.     {mnu} {
  128.         require "menueditor.tcl"
  129.         MenuEditor new .main \
  130.             -permanentReadOnly $readOnly \
  131.             -title "$fileName - Menu Customization Editor" \
  132.             -icon ctool_64 \
  133.             -iconTitle $iconTitle
  134.         set graphTypes [BrowserProcs::graphTypes]
  135.         if {[lsearch -exact $graphTypes $fileName] != -1} {
  136.             [.main editorArea] genericCurName diagram
  137.         } else {
  138.             [.main editorArea] genericCurName ""
  139.         }
  140.         lappend graphTypes "diagram"
  141.         if {[lsearch -exact $graphTypes $fileName] != -1} {
  142.             [.main editorArea] toolType editor
  143.         } elseif {$fileName == "class"} {
  144.             [.main editorArea] toolType class
  145.         }
  146.     }
  147.     {vie} {
  148.         require "vieweditor.tcl"
  149.         ViewEditor new .main \
  150.             -permanentReadOnly $readOnly \
  151.             -title "View Customization Editor" \
  152.             -icon ctool_64 \
  153.             -iconTitle $iconTitle
  154.     }
  155.     {objtype} {
  156.         require "objtypeedi.tcl"
  157.         ObjTypeEditor new .main \
  158.             -permanentReadOnly $readOnly \
  159.             -title "Object Type Customization Editor" \
  160.             -icon ctool_64 \
  161.             -iconTitle $iconTitle
  162.     }
  163.     {opendefs} {
  164.         require "opendefedi.tcl"
  165.         OpenDefEditor new .main \
  166.             -permanentReadOnly $readOnly \
  167.             -title "Open Strategy Definition Editor" \
  168.             -icon ctool_64 \
  169.             -iconTitle $iconTitle
  170.     }
  171.     {openlocs} {
  172.         require "openlocedi.tcl"
  173.         OpenLocEditor new .main \
  174.             -permanentReadOnly $readOnly \
  175.             -title "Open Strategy Availability Editor" \
  176.             -icon ctool_64 \
  177.             -iconTitle $iconTitle
  178.     }
  179.     {propdefs} {
  180.         require "propdefedi.tcl"
  181.         PropDefEditor new .main \
  182.             -permanentReadOnly $readOnly \
  183.             -title "Property Definition Editor" \
  184.             -icon ctool_64 \
  185.             -iconTitle $iconTitle
  186.     }
  187.     {proplocs} {
  188.         require "proplocedi.tcl"
  189.         PropLocEditor new .main \
  190.             -permanentReadOnly $readOnly \
  191.             -title "Property Availability Editor" \
  192.             -icon ctool_64 \
  193.             -iconTitle $iconTitle
  194.     }
  195.     {modules} {
  196.         require "moduleedit.tcl"
  197.         ModuleEditor new .main \
  198.             -permanentReadOnly $readOnly \
  199.             -title "Module Availability Editor" \
  200.             -icon ctool_64 \
  201.             -iconTitle $iconTitle
  202.     }
  203.     {copyspecs} {
  204.         require "copyspecse.tcl"
  205.         CopySpecsEditor new .main \
  206.             -permanentReadOnly $readOnly \
  207.             -title "Copy Specifications Editor" \
  208.             -icon ctool_64 \
  209.             -iconTitle $iconTitle
  210.     }
  211.     {default} {
  212.         wmtkfatal "Unknown customization file type specified"
  213.     }
  214. }
  215.  
  216. sourceOptional u_uce
  217.  
  218. global icaseLevelInt
  219. set icaseLevelInt(corporate)        0
  220. set icaseLevelInt(project)        1
  221. set icaseLevelInt(configuration)    2
  222. set icaseLevelInt(phase)        3
  223. set icaseLevelInt(system)        4
  224.  
  225. global icaseLevel
  226. set icaseLevel(0)            corporate
  227. set icaseLevel(1)            project
  228. set icaseLevel(2)            configuration
  229. set icaseLevel(3)            phase
  230. set icaseLevel(4)            system
  231.  
  232. .main setContext
  233. [.main menuHdlr] levelChanged
  234. if {"$level" != ""} {
  235.     [.main editorArea] _level $level
  236. }
  237. .main config -caller "$caller" -firstExposed ".main edit $fv"
  238. .main popUp
  239. .main ready
  240.  
  241.