home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / desk.mnu < prev    next >
Text File  |  1997-05-01  |  90KB  |  4,013 lines

  1. registerObject {
  2.     type    CustMenuBarButton
  3.     name    .file
  4.     objSpec {
  5.     label        File
  6.     mnemonic    F
  7.     }
  8. }
  9.  
  10. registerObject {
  11.     type    CustMenu
  12.     name    .file.menu
  13.     objSpec {
  14.     pinnable    1
  15.     }
  16. }
  17.  
  18. registerObject {
  19.     type    CustCascadeButton
  20.     name    .file.menu.new
  21.     objSpec {
  22.     hintText    "Contains commands for creating new items."
  23.     label        "New"
  24.     mnemonic    N
  25.     }
  26. }
  27.  
  28. registerObject {
  29.     type    CustMenu
  30.     name    .file.menu.new.menu
  31.     objSpec {
  32.     pinnable    0
  33.     }
  34. }
  35.  
  36. registerObject {
  37.     type    CustMenuPushButton
  38.     name    .file.menu.new.menu.customizationfileversion
  39.     visible    {0 1 1 1 1}
  40.     objSpec {
  41.     hintText    "Creates a new customization file version."
  42.     label        "Customization File Version..."
  43.     mnemonic    z
  44.     checkOn        levelChange
  45.     enableScript    {
  46.  
  47.     if {! [BrowserProcs::currentObjIsA CustFVUiObj]} {
  48.         %this sensitive 0
  49.         return
  50.     }
  51.     set version [[[.main currentObj] browsUiObj] getParent BrowsDbObj]
  52.     set status [$version getInfo Status]
  53.     if {$status != "" && $status != "working"} {
  54.         %this sensitive 0
  55.         return
  56.     }
  57.     %this sensitive 1
  58.  
  59.     }
  60.     activated    {[[.main currentObj] browsUiObj] addCustomFileV}
  61.     }
  62. }
  63.  
  64. registerObject {
  65.     type    CustMenuPushButton
  66.     name    .file.menu.new.menu.externalfile
  67.     visible    {1 0 0 0 0}
  68.     objSpec {
  69.     hintText    "Creates a new external file."
  70.     label        "External File..."
  71.     mnemonic    E
  72.     checkOn        levelChange
  73.     enableScript    {
  74.  
  75.     %this sensitive [BrowserProcs::currentObjIsA {ExtFUiObj UCustFUiObj}]
  76.  
  77.     }
  78.     activated    {[[.main currentObj] browsUiObj] addExternalFile}
  79.     }
  80. }
  81.  
  82. registerObject {
  83.     type    CustMenuPushButton
  84.     name    .file.menu.new.menu.role
  85.     visible    {1 0 0 0 0}
  86.     objSpec {
  87.     hintText    "Creates a new role."
  88.     label        "Role..."
  89.     mnemonic    R
  90.     checkOn        levelChange
  91.     enableScript    {
  92.  
  93.     %this sensitive [BrowserProcs::currentObjIsA RoleUiObj]
  94.  
  95.     }
  96.     activated    {[.main corporateObj] addRole}
  97.     }
  98. }
  99.  
  100. registerObject {
  101.     type    CustMenuPushButton
  102.     name    .file.menu.new.menu.user
  103.     visible    {1 0 0 0 0}
  104.     objSpec {
  105.     hintText    "Creates a new user."
  106.     label        "User..."
  107.     mnemonic    U
  108.     checkOn        levelChange
  109.     enableScript    {
  110.  
  111.     %this sensitive [BrowserProcs::currentObjIsA UsrUiObj]
  112.  
  113.     }
  114.     activated    {[[.main currentObj] browsUiObj] addUser}
  115.     }
  116. }
  117.  
  118. registerObject {
  119.     type    CustMenuPushButton
  120.     name    .file.menu.new.menu.userrolelink(s)
  121.     visible    {1 1 0 0 0}
  122.     objSpec {
  123.     hintText    "Creates a new user role link."
  124.     label        "User Role Link(s)..."
  125.     mnemonic    L
  126.     checkOn        levelChange
  127.     enableScript    {
  128.  
  129.     %this sensitive [BrowserProcs::currentObjIsA {Role User}]
  130.  
  131.     }
  132.     activated    {[[.main currentObj] browsUiObj] addUserRoleLinks}
  133.     }
  134. }
  135.  
  136. registerObject {
  137.     type    CustMenuSeparator
  138.     name    .file.menu.new.menu.separator1
  139. }
  140.  
  141. registerObject {
  142.     type    CustMenuPushButton
  143.     name    .file.menu.new.menu.project
  144.     visible    {1 0 0 0 0}
  145.     objSpec {
  146.     hintText    "Creates a new project."
  147.     label        "Project..."
  148.     mnemonic    P
  149.     checkOn        levelChange
  150.     enableScript    {
  151.  
  152.     %this sensitive [BrowserProcs::currentObjIsA Corporate]
  153.  
  154.     }
  155.     activated    {[[.main currentObj] browsUiObj] addProject}
  156.     }
  157. }
  158.  
  159. registerObject {
  160.     type    CustMenuPushButton
  161.     name    .file.menu.new.menu.configurationversion
  162.     visible    {0 1 0 0 0}
  163.     objSpec {
  164.     hintText    "Creates a new configuration version."
  165.     label        "Configuration Version..."
  166.     mnemonic    C
  167.     checkOn        levelChange
  168.     enableScript    {%this sensitive [BrowserProcs::currentObjIsA Project]}
  169.     activated    {[[.main currentObj] browsUiObj] addConfigVersion}
  170.     }
  171. }
  172.  
  173. registerObject {
  174.     type    CustMenuPushButton
  175.     name    .file.menu.new.menu.phaseversion(s)
  176.     visible    {0 0 1 0 0}
  177.     objSpec {
  178.     hintText    "Creates a new phase version."
  179.     label        "Phase Version(s)..."
  180.     mnemonic    P
  181.     checkOn        levelChange
  182.     enableScript    {
  183.  
  184.     if {! [BrowserProcs::currentObjIsA ConfigVersion]} {
  185.         %this sensitive 0
  186.         return
  187.     }
  188.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  189.         %this sensitive 0
  190.         return
  191.     }
  192.     %this sensitive 1
  193.  
  194.     }
  195.     activated    {[[.main currentObj] browsUiObj] addPhaseVersions}
  196.     }
  197. }
  198.  
  199. registerObject {
  200.     type    CustMenuPushButton
  201.     name    .file.menu.new.menu.documentversion
  202.     visible    {0 0 0 1 0}
  203.     objSpec {
  204.     hintText    "Creates a new document version."
  205.     label        "Document Version..."
  206.     mnemonic    D
  207.     checkOn        levelChange
  208.     enableScript    {
  209.  
  210.     if {! [BrowserProcs::currentObjIsA PhaseVersion]} {
  211.         %this sensitive 0
  212.         return
  213.     }
  214.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  215.         %this sensitive 0
  216.         return
  217.     }
  218.     %this sensitive 1
  219.  
  220.     }
  221.     activated    {[[.main currentObj] browsUiObj] addDocumentVersion}
  222.     }
  223. }
  224.  
  225. registerObject {
  226.     type    CustMenuPushButton
  227.     name    .file.menu.new.menu.systemversion
  228.     visible    {0 0 0 1 0}
  229.     objSpec {
  230.     hintText    "Creates a new system version."
  231.     label        "System Version..."
  232.     mnemonic    S
  233.     checkOn        levelChange
  234.     enableScript    {
  235.  
  236.     if {! [BrowserProcs::currentObjIsA PhaseVersion]} {
  237.         %this sensitive 0
  238.         return
  239.     }
  240.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  241.         %this sensitive 0
  242.         return
  243.     }
  244.     %this sensitive 1
  245.  
  246.     }
  247.     activated    {[[.main currentObj] browsUiObj] addSystemVersion}
  248.     }
  249. }
  250.  
  251. registerObject {
  252.     type    CustMenuPushButton
  253.     name    .file.menu.new.menu.classassociationdiagram
  254.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  255.     objSpec {
  256.     hintText    "Creates a new class association diagram."
  257.     label        "Class Association Diagram..."
  258.     mnemonic    C
  259.     checkOn        levelChange
  260.     enableScript    {
  261.  
  262.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  263.         %this sensitive 0
  264.         return
  265.     }
  266.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  267.         %this sensitive 0
  268.         return
  269.     }
  270.     %this sensitive 1
  271.  
  272.     }
  273.     activated    {[[.main currentObj] browsUiObj] addFileVersion cad}
  274.     }
  275. }
  276.  
  277. registerObject {
  278.     type    CustMenuPushButton
  279.     name    .file.menu.new.menu.classcommunicationdiagram
  280.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  281.     objSpec {
  282.     hintText    "Creates a new class communication diagram."
  283.     label        "Class Communication Diagram..."
  284.     mnemonic    l
  285.     checkOn        levelChange
  286.     enableScript    {
  287.  
  288.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  289.         %this sensitive 0
  290.         return
  291.     }
  292.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  293.         %this sensitive 0
  294.         return
  295.     }
  296.     %this sensitive 1
  297.  
  298.     }
  299.     activated    {[[.main currentObj] browsUiObj] addFileVersion ccd}
  300.     }
  301. }
  302.  
  303. registerObject {
  304.     type    CustMenuPushButton
  305.     name    .file.menu.new.menu.dataflowdiagram
  306.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  307.     objSpec {
  308.     hintText    "Creates a new data flow diagram."
  309.     label        "Data Flow Diagram..."
  310.     mnemonic    F
  311.     checkOn        levelChange
  312.     enableScript    {
  313.  
  314.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  315.         %this sensitive 0
  316.         return
  317.     }
  318.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  319.         %this sensitive 0
  320.         return
  321.     }
  322.     %this sensitive 1
  323.  
  324.     }
  325.     activated    {[[.main currentObj] browsUiObj] addFileVersion dfd}
  326.     }
  327. }
  328.  
  329. registerObject {
  330.     type    CustMenuPushButton
  331.     name    .file.menu.new.menu.documentstructurematrix
  332.     scope    {* * * document}
  333.     objSpec {
  334.     hintText    "Creates a new document structure matrix."
  335.     label        "Document Structure Matrix"
  336.     mnemonic    o
  337.     checkOn        levelChange
  338.     enableScript    {
  339.  
  340.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  341.         %this sensitive 0
  342.         return
  343.     }
  344.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  345.         %this sensitive 0
  346.         return
  347.     }
  348.     %this sensitive 1
  349.  
  350.     }
  351.     activated    {[[.main currentObj] browsUiObj] addDocStructure}
  352.     }
  353. }
  354.  
  355. registerObject {
  356.     type    CustMenuPushButton
  357.     name    .file.menu.new.menu.eventtracediagram
  358.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  359.     objSpec {
  360.     hintText    "Creates a new event trace diagram."
  361.     label        "Event Trace Diagram..."
  362.     mnemonic    E
  363.     checkOn        levelChange
  364.     enableScript    {
  365.  
  366.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  367.         %this sensitive 0
  368.         return
  369.     }
  370.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  371.         %this sensitive 0
  372.         return
  373.     }
  374.     %this sensitive 1
  375.  
  376.     }
  377.     activated    {[[.main currentObj] browsUiObj] addFileVersion etd}
  378.     }
  379. }
  380.  
  381. registerObject {
  382.     type    CustMenuPushButton
  383.     name    .file.menu.new.menu.externalfileversion
  384.     scope    {* * Implementation system}
  385.     visible    {0 0 0 0 1}
  386.     objSpec {
  387.     hintText    "Creates a new external file version."
  388.     label        "External File Version..."
  389.     mnemonic    t
  390.     checkOn        levelChange
  391.     enableScript    {
  392.  
  393.     if {! [BrowserProcs::currentObjIsA PSysVDbObj]} {
  394.         %this sensitive 0
  395.         return
  396.     }
  397.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  398.         %this sensitive 0
  399.         return
  400.     }
  401.     %this sensitive 1
  402.  
  403.     }
  404.     activated    {[[.main currentObj] browsUiObj] addFileVersion}
  405.     }
  406. }
  407.  
  408. registerObject {
  409.     type    CustMenuPushButton
  410.     name    .file.menu.new.menu.messagegeneralizationdiagram
  411.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  412.     objSpec {
  413.     hintText    "Creates a new message generalization diagram."
  414.     label        "Message Generalization Diagram..."
  415.     mnemonic    M
  416.     checkOn        levelChange
  417.     enableScript    {
  418.  
  419.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  420.         %this sensitive 0
  421.         return
  422.     }
  423.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  424.         %this sensitive 0
  425.         return
  426.     }
  427.     %this sensitive 1
  428.  
  429.     }
  430.     activated    {[[.main currentObj] browsUiObj] addFileVersion mgd}
  431.     }
  432. }
  433.  
  434. registerObject {
  435.     type    CustMenuPushButton
  436.     name    .file.menu.new.menu.statetransitiondiagram
  437.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  438.     objSpec {
  439.     hintText    "Creates a new state transition diagram."
  440.     label        "State Transition Diagram..."
  441.     mnemonic    T
  442.     checkOn        levelChange
  443.     enableScript    {
  444.  
  445.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  446.         %this sensitive 0
  447.         return
  448.     }
  449.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  450.         %this sensitive 0
  451.         return
  452.     }
  453.     %this sensitive 1
  454.  
  455.     }
  456.     activated    {[[.main currentObj] browsUiObj] addFileVersion std}
  457.     }
  458. }
  459.  
  460. registerObject {
  461.     type    CustMenuPushButton
  462.     name    .file.menu.new.menu.usecasediagram
  463.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  464.     objSpec {
  465.     hintText    "Creates a new use case diagram."
  466.     label        "Use Case Diagram..."
  467.     mnemonic    U
  468.     checkOn        levelChange
  469.     enableScript    {
  470.  
  471.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  472.         %this sensitive 0
  473.         return
  474.     }
  475.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  476.         %this sensitive 0
  477.         return
  478.     }
  479.     %this sensitive 1
  480.  
  481.     }
  482.     activated    {[[.main currentObj] browsUiObj] addFileVersion ucd}
  483.     }
  484. }
  485.  
  486. registerObject {
  487.     type    CustMenuSeparator
  488.     name    .file.menu.new.menu.separator2
  489.     visible    {0 0 0 0 1}
  490.     scope    {* * * system}
  491. }
  492.  
  493. registerObject {
  494.     type    CustMenuPushButton
  495.     name    .file.menu.new.menu.externallink(s)
  496.     scope    {* * Implementation system}
  497.     objSpec {
  498.     hintText    "Creates new external links."
  499.     label        "External Link(s)..."
  500.     mnemonic    E
  501.     checkOn        levelChange
  502.     enableScript    {
  503.  
  504.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  505.         %this sensitive 0
  506.         return
  507.     }
  508.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  509.         %this sensitive 0
  510.         return
  511.     }
  512.     %this sensitive 1
  513.  
  514.     }
  515.     activated    {[[.main currentObj] browsUiObj] addExternalLinks}
  516.     }
  517. }
  518.  
  519. registerObject {
  520.     type    CustMenuPushButton
  521.     name    .file.menu.new.menu.groupversion
  522.     scope    {* * * system}
  523.     objSpec {
  524.     hintText    "Creates a new group version."
  525.     label        "Group Version..."
  526.     mnemonic    G
  527.     checkOn        levelChange
  528.     enableScript    {
  529.  
  530.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  531.         %this sensitive 0
  532.         return
  533.     }
  534.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  535.         %this sensitive 0
  536.         return
  537.     }
  538.     %this sensitive 1
  539.  
  540.     }
  541.     activated    {[[.main currentObj] browsUiObj] addGroupVersion}
  542.     }
  543. }
  544.  
  545. registerObject {
  546.     type    CustMenuPushButton
  547.     name    .file.menu.new.menu.filesection(s)
  548.     scope    {* * * document}
  549.     objSpec {
  550.     hintText    "Creates new file sections."
  551.     label        "File Section(s)..."
  552.     mnemonic    F
  553.     checkOn        levelChange
  554.     enableScript    {
  555.  
  556.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  557.         %this sensitive 0
  558.         return
  559.     }
  560.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  561.         %this sensitive 0
  562.         return
  563.     }
  564.     %this sensitive 1
  565.  
  566.     }
  567.     activated    {[[.main currentObj] browsUiObj] addFileSections}
  568.     }
  569. }
  570.  
  571. registerObject {
  572.     type    CustMenuPushButton
  573.     name    .file.menu.new.menu.localsection
  574.     scope    {* * * document}
  575.     objSpec {
  576.     hintText    "Creates a new local section."
  577.     label        "Local Section..."
  578.     mnemonic    L
  579.     checkOn        levelChange
  580.     enableScript    {
  581.  
  582.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  583.         %this sensitive 0
  584.         return
  585.     }
  586.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  587.         %this sensitive 0
  588.         return
  589.     }
  590.     %this sensitive 1
  591.  
  592.     }
  593.     activated    {[[.main currentObj] browsUiObj] addLocalSection}
  594.     }
  595. }
  596.  
  597. registerObject {
  598.     type    CustMenuPushButton
  599.     name    .file.menu.new.menu.propertysection
  600.     scope    {* * * document}
  601.     objSpec {
  602.     hintText    "Creates a new property section."
  603.     label        "Property Section..."
  604.     mnemonic    P
  605.     checkOn        levelChange
  606.     enableScript    {
  607.  
  608.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  609.         %this sensitive 0
  610.         return
  611.     }
  612.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  613.         %this sensitive 0
  614.         return
  615.     }
  616.     %this sensitive 1
  617.  
  618.     }
  619.     activated    {[[.main currentObj] browsUiObj] addPropertySection}
  620.     }
  621. }
  622.  
  623. registerObject {
  624.     type    CustCascadeButton
  625.     name    .file.menu.define
  626.     scope    {* * * document}
  627.     objSpec {
  628.     hintText    "Contains commands for defining sections."
  629.     label        "Define"
  630.     mnemonic    f
  631.     }
  632. }
  633.  
  634. registerObject {
  635.     type    CustMenu
  636.     name    .file.menu.define.menu
  637.     scope    {* * * document}
  638.     objSpec {
  639.     pinnable    0
  640.     }
  641. }
  642.  
  643. registerObject {
  644.     type    CustMenuPushButton
  645.     name    .file.menu.define.menu.filesection
  646.     scope    {* * * document}
  647.     objSpec {
  648.     hintText    "Defines a file section."
  649.     label        "File Section..."
  650.     mnemonic    F
  651.     checkOn        selectionChange
  652.     selCount    1
  653.     selIsATypes    {NoneUiObj}
  654.     enableScript    {
  655.  
  656.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  657.         %this sensitive 0
  658.         return
  659.     }
  660.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  661.         %this sensitive 0
  662.         return
  663.     }
  664.     %this sensitive 1
  665.  
  666.     }
  667.     activated    {[lindex [.main selectedObjSet] 0] defineFileSection}
  668.     }
  669. }
  670.  
  671. registerObject {
  672.     type    CustMenuPushButton
  673.     name    .file.menu.define.menu.localsection
  674.     scope    {* * * document}
  675.     objSpec {
  676.     hintText    "Defines a local section."
  677.     label        "Local Section..."
  678.     mnemonic    L
  679.     checkOn        selectionChange
  680.     selCount    1
  681.     selIsATypes    {NoneUiObj}
  682.     enableScript    {
  683.  
  684.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  685.         %this sensitive 0
  686.         return
  687.     }
  688.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  689.         %this sensitive 0
  690.         return
  691.     }
  692.     %this sensitive 1
  693.  
  694.     }
  695.     activated    {[lindex [.main selectedObjSet] 0] defineLocalSection}
  696.     }
  697. }
  698.  
  699. registerObject {
  700.     type    CustMenuPushButton
  701.     name    .file.menu.define.menu.propertysection
  702.     scope    {* * * document}
  703.     objSpec {
  704.     hintText    "Defines a property section."
  705.     label        "Property Section..."
  706.     mnemonic    P
  707.     checkOn        selectionChange
  708.     selCount    1
  709.     selIsATypes    {NoneUiObj}
  710.     enableScript    {
  711.  
  712.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  713.         %this sensitive 0
  714.         return
  715.     }
  716.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  717.         %this sensitive 0
  718.         return
  719.     }
  720.     %this sensitive 1
  721.  
  722.     }
  723.     activated    {
  724.  
  725.     [lindex [.main selectedObjSet] 0] definePropertySection
  726.  
  727.     }
  728.     }
  729. }
  730.  
  731. registerObject {
  732.     type    CustMenuPushButton
  733.     name    .file.menu.delete
  734.     inToolBar    1
  735.     inPopUpMenu    1
  736.     objSpec {
  737.     hintText    "Deletes selected items."
  738.     label        "Delete..."
  739.     mnemonic    D
  740.     accelerator    Del
  741.     toolBarPixmap    delete_16
  742.     checkOn        selectionChange
  743.     selCount    many
  744.     selIsATypes    {Version CorporateGroupVersion SavedGroupVersion
  745.              ExternalLink SystemFileReference Project
  746.              PropertyReference Role User UserRoleLink ExtFUiObj}
  747.     enableScript    {
  748.  
  749.     set currentObj [[.main currentObj] browsUiObj]
  750.     set status [$currentObj getInfo Status]
  751.     if [$currentObj isA CorpGVDbObj] {
  752.         %this sensitive 0
  753.     } elseif \
  754.         [BrowserProcs::currentObjIsA {ExtFUiObj HCustFUiObj UCustFUiObj}] {
  755.         %this sensitive [BrowserProcs::typeObjectsAre "ExternalFile"]
  756.     } elseif {"$status" != "" && "$status" != "working"} {
  757.         %this sensitive 0
  758.     } elseif {[$currentObj isA RoleUiObj] &&
  759.           "[$currentObj getParent Project]" != ""} {
  760.         %this sensitive 0
  761.     } else {
  762.         %this sensitive 1
  763.     }
  764.  
  765.     }
  766.     activated    {[[.main currentObj] browsUiObj] removeObjects}
  767.     }
  768. }
  769.  
  770. registerObject {
  771.     type    CustMenuSeparator
  772.     name    .file.menu.separator1
  773. }
  774.  
  775. registerObject {
  776.     type    CustMenuPushButton
  777.     name    .file.menu.close
  778.     inToolBar    1
  779.     objSpec {
  780.     hintText    "Closes the current view, goes one level higher."
  781.     label        "Close"
  782.     mnemonic    C
  783.     toolBarPixmap    close_16
  784.     checkOn        levelChange
  785.     enableScript    {
  786.  
  787.     if {! [BrowserProcs::currentObjIsA BrowsUiObj]} {
  788.         %this sensitive 0
  789.     } elseif {"[[.main currentObj] parent]" == ""} {
  790.         %this sensitive 0
  791.     } else {
  792.         %this sensitive 1
  793.     }
  794.  
  795.     }
  796.     activated    {[[.main currentObj] parent] open}
  797.     }
  798. }
  799.  
  800. registerObject {
  801.     type    CustMenuPushButton
  802.     name    .file.menu.edit
  803.     inPopUpMenu    1
  804.     objSpec {
  805.     hintText    "Edits the selected item."
  806.     label        "Edit"
  807.     mnemonic    E
  808.     accelerator    Ctrl+e
  809.     checkOn        selectionChange
  810.     selCount    1
  811.     selIsATypes    {FileVersion SystemFileReference PropertyReference
  812.              ExternalLink CustomFileVersion ExtFUiObj GroupVersion}
  813.     enableScript    {
  814.  
  815.     set obj [lindex [.main selectedObjSet] 0]
  816.     if [$obj isA ExtFUiObj] {
  817.         if {[BrowserProcs::typeObjectsAre "ExternalFile"] &&
  818.         [file writable [$obj getInfo Path]]} {
  819.         %this sensitive [$obj isAscii]
  820.         } else {
  821.         %this sensitive 0
  822.         }
  823.     } elseif [$obj isA SystemFileReference] {
  824.         %this sensitive [BrowserProcs::statusObjectsAre "selected"]
  825.     } elseif [$obj isA PropertyReference] {
  826.         %this sensitive 1
  827.     } else {
  828.         %this sensitive [BrowserProcs::statusObjectsAre "working"]
  829.     }
  830.  
  831.     }
  832.     activated    {[lindex [.main selectedObjSet] 0] editFile}
  833.     }
  834. }
  835.  
  836. registerObject {
  837.     type    CustMenuPushButton
  838.     name    .file.menu.edit
  839.     scope    {* * Implementation system}
  840.     inPopUpMenu    1
  841.     objSpec {
  842.     hintText    "Edits the selected item."
  843.     label        "Edit"
  844.     mnemonic    E
  845.     accelerator    Ctrl+e
  846.     checkOn        selectionChange
  847.     selCount    1
  848.     selIsATypes    {FileVersion ExternalLink CustomFileVersion
  849.              GroupVersion}
  850.     enableScript    {
  851.  
  852.     set obj [lindex [.main selectedObjSet] 0]
  853.     set type [$obj getInfo Type]
  854.     if {[$obj isA FileVersion] &&
  855.         ("$type" == "executable" || "$type" == "library")} {
  856.         %this sensitive 0
  857.     } else {
  858.         %this sensitive [BrowserProcs::statusObjectsAre "working"]
  859.     }
  860.  
  861.     }
  862.     activated    {[lindex [.main selectedObjSet] 0] editFile}
  863.     }
  864. }
  865.  
  866. registerObject {
  867.     type    CustMenuPushButton
  868.     name    .file.menu.open
  869.     inToolBar    1
  870.     inPopUpMenu    1
  871.     objSpec {
  872.     hintText    "Opens the selected item."
  873.     label        "Open"
  874.     mnemonic    O
  875.     accelerator    Ctrl+o
  876.     toolBarPixmap    open_16
  877.     checkOn        selectionChange
  878.     selCount    1
  879.     activated    {
  880.  
  881.     eval [[[lindex [.main selectedObjSet] 0] infoObject] activated]
  882.  
  883.     }
  884.     }
  885. }
  886.  
  887. registerObject {
  888.     type    CustMenuPushButton
  889.     name    .file.menu.show
  890.     inPopUpMenu    1
  891.     objSpec {
  892.     hintText    "Shows the contents of the selected item."
  893.     label        "Show"
  894.     mnemonic    w
  895.     checkOn        selectionChange
  896.     selCount    1
  897.     selIsATypes    {FileVersion SystemFileReference PropertyReference
  898.              ExternalLink CustomFileVersion ExtFUiObj GroupVersion}
  899.     enableScript    {
  900.  
  901.     set obj [lindex [.main selectedObjSet] 0]
  902.     if {[$obj isA FileVersion] &&
  903.         "[$obj getParent SystemVersion]" == ""} {
  904.         %this sensitive 0
  905.     } elseif [$obj isA ExtFUiObj] {
  906.         if [BrowserProcs::typeObjectsAre "ExternalFile"] {
  907.         %this sensitive [$obj isAscii]
  908.         } else {
  909.         %this sensitive 0
  910.         }
  911.     } else {
  912.         %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  913.     }
  914.  
  915.     }
  916.     activated    {[lindex [.main selectedObjSet] 0] showFile}
  917.     }
  918. }
  919.  
  920. registerObject {
  921.     type    CustMenuSeparator
  922.     name    .file.menu.separator2
  923. }
  924.  
  925. registerObject {
  926.     type    CustMenuPushButton
  927.     name    .file.menu.generate
  928.     scope    {* * *}
  929.     visible    {0 0 0 1 0}
  930.     objSpec {
  931.     hintText    "Generates the selected document."
  932.     label        "Generate..."
  933.     mnemonic    G
  934.     checkOn        selectionChange
  935.     selCount    1
  936.     selIsATypes    {DSysVDbObj}
  937.     enableScript    {
  938.  
  939.     %this sensitive [BrowserProcs::statusObjectsAre "working"]
  940.  
  941.     }
  942.     activated    {[lindex [.main selectedObjSet] 0] generate}
  943.     }
  944. }
  945.  
  946. registerObject {
  947.     type    CustCascadeButton
  948.     name    .file.menu.generate
  949.     scope    {* * * document}
  950.     objSpec {
  951.     hintText    "Contains commands for generating sections."
  952.     label        "Generate"
  953.     mnemonic    G
  954.     }
  955. }
  956.  
  957. registerObject {
  958.     type    CustMenu
  959.     name    .file.menu.generate.menu
  960.     scope    {* * * document}
  961.     objSpec {
  962.     pinnable    0
  963.     }
  964. }
  965.  
  966. registerObject {
  967.     type    CustMenuPushButton
  968.     name    .file.menu.generate.menu.structure
  969.     scope    {* * * document}
  970.     objSpec {
  971.     hintText    "Generates the structure of the selected sections."
  972.     label        "Structure"
  973.     mnemonic    S
  974.     checkOn        selectionChange
  975.     selCount    many
  976.     selIsATypes    {LocalSection}
  977.     enableScript    {
  978.  
  979.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  980.         %this sensitive 0
  981.         return
  982.     }
  983.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  984.         %this sensitive 0
  985.         return
  986.     }
  987.     %this sensitive [BrowserProcs::statusObjectsAreNot "frozen"]
  988.  
  989.     }
  990.     activated    {
  991.  
  992.     [[.main currentObj] browsUiObj] generateObjects structure
  993.  
  994.     }
  995.     }
  996. }
  997.  
  998. registerObject {
  999.     type    CustMenuPushButton
  1000.     name    .file.menu.generate.menu.structureandcontents
  1001.     scope    {* * * document}
  1002.     objSpec {
  1003.     hintText    "Generates the contents of the selected sections."
  1004.     label        "Structure And Contents"
  1005.     mnemonic    C
  1006.     checkOn        selectionChange
  1007.     selCount    many
  1008.     selIsATypes    {LocalSection}
  1009.     enableScript    {
  1010.  
  1011.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  1012.         %this sensitive 0
  1013.         return
  1014.     }
  1015.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  1016.         %this sensitive 0
  1017.         return
  1018.     }
  1019.     %this sensitive [BrowserProcs::statusObjectsAreNot "frozen"]
  1020.  
  1021.     }
  1022.     activated    {
  1023.  
  1024.     [[.main currentObj] browsUiObj] generateObjects structureandcontents
  1025.  
  1026.     }
  1027.     }
  1028. }
  1029.  
  1030. registerObject {
  1031.     type    CustMenuPushButton
  1032.     name    .file.menu.preview
  1033.     scope    {* * * document}
  1034.     objSpec {
  1035.     hintText    "Previews the selected section."
  1036.     label        "Preview"
  1037.     mnemonic    r
  1038.     checkOn        selectionChange
  1039.     selCount    1
  1040.     selIsATypes    {DocSection}
  1041.     activated    {[lindex [.main selectedObjSet] 0] previewFile}
  1042.     }
  1043. }
  1044.  
  1045. registerObject {
  1046.     type    CustMenuPushButton
  1047.     name    .file.menu.updatedocumentdirectory
  1048.     scope    {* * *}
  1049.     visible    {0 0 0 1 0}
  1050.     objSpec {
  1051.     hintText    "Updates the document directory."
  1052.     label        "Update Document Directory"
  1053.     mnemonic    U
  1054.     checkOn        selectionChange
  1055.     selCount    1
  1056.     selIsATypes    {DSysVDbObj}
  1057.     enableScript    {
  1058.  
  1059.     %this sensitive [BrowserProcs::statusObjectsAre "working"]
  1060.  
  1061.     }
  1062.     activated    {[lindex [.main selectedObjSet] 0] updateDocDir all}
  1063.     }
  1064. }
  1065.  
  1066. registerObject {
  1067.     type    CustMenuPushButton
  1068.     name    .file.menu.updatedocumentdirectory
  1069.     scope    {* * * document}
  1070.     objSpec {
  1071.     hintText    "Synchronizes the document directory with the repository."
  1072.     label        "Update Document Directory"
  1073.     mnemonic    U
  1074.     checkOn        selectionChange
  1075.     selCount    many
  1076.     selIsATypes    {DocSection}
  1077.     enableScript    {
  1078.  
  1079.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  1080.         %this sensitive 0
  1081.         return
  1082.     }
  1083.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  1084.         %this sensitive 0
  1085.         return
  1086.     }
  1087.     %this sensitive [BrowserProcs::statusObjectsAreNot "frozen"]
  1088.  
  1089.     }
  1090.     activated    {[[.main currentObj] browsUiObj] updateDocDir selected}
  1091.     }
  1092. }
  1093.  
  1094. registerObject {
  1095.     type    CustMenuSeparator
  1096.     name    .file.menu.separator3
  1097.     scope    {* * *}
  1098.     visible    {0 0 0 1 0}
  1099. }
  1100.  
  1101. registerObject {
  1102.     type    CustMenuSeparator
  1103.     name    .file.menu.separator4
  1104.     scope    {* * * document}
  1105. }
  1106.  
  1107. registerObject {
  1108.     type    CustCascadeButton
  1109.     name    .file.menu.change
  1110.     objSpec {
  1111.     hintText    "Contains commands for changing objects."
  1112.     label        "Change"
  1113.     mnemonic    h
  1114.     }
  1115. }
  1116.  
  1117. registerObject {
  1118.     type    CustMenu
  1119.     name    .file.menu.change.menu
  1120.     objSpec {
  1121.     pinnable    0
  1122.     }
  1123. }
  1124.  
  1125. registerObject {
  1126.     type    CustMenuPushButton
  1127.     name    .file.menu.change.menu.linkstatus
  1128.     objSpec {
  1129.     hintText    "Changes the link status of the selected objects."
  1130.     label        "Link Status..."
  1131.     mnemonic    L
  1132.     checkOn        selectionChange
  1133.     selCount    many
  1134.     selIsATypes    {PhaseVersion SystemVersion FileVersion GroupVersion
  1135.              UserRoleLink}
  1136.     enableScript    {
  1137.  
  1138.     if [BrowserProcs::currentObjIsA SvdGVDbObj] {
  1139.         %this sensitive 0
  1140.         return
  1141.     }
  1142.     set status [[[.main currentObj] browsUiObj] getInfo Status]
  1143.     if {"$status" != "" && "$status" != "working"} {
  1144.         %this sensitive 0
  1145.         return
  1146.     }
  1147.     %this sensitive 1
  1148.  
  1149.     }
  1150.     activated    {[[.main currentObj] browsUiObj] changeLinks}
  1151.     }
  1152. }
  1153.  
  1154. registerObject {
  1155.     type    CustMenuPushButton
  1156.     name    .file.menu.change.menu.location
  1157.     scope    {* * * system}
  1158.     objSpec {
  1159.     hintText    "Changes the location (path) of the selected object."
  1160.     label        "Location..."
  1161.     mnemonic    L
  1162.     checkOn        selectionChange
  1163.     selCount    1
  1164.     selIsATypes    {ExternalLink}
  1165.     activated    {[lindex [.main selectedObjSet] 0] changeLocation}
  1166.     }
  1167. }
  1168.  
  1169. registerObject {
  1170.     type    CustMenuPushButton
  1171.     name    .file.menu.change.menu.name
  1172.     objSpec {
  1173.     hintText    "Changes the name of the selected object."
  1174.     label        "Name..."
  1175.     mnemonic    N
  1176.     checkOn        selectionChange
  1177.     selCount    1
  1178.     selIsATypes    {Project ConfigVersion SystemVersion FileVersion WorkItem ExternalLink}
  1179.     enableScript    {
  1180.  
  1181.     if {[BrowserProcs::currentObjIsA DSysVDbObj] &&
  1182.         [[lindex [.main selectedObjSet] 0] isA Matrix]} {
  1183.         %this sensitive 0
  1184.     } else {
  1185.         %this sensitive [BrowserProcs::statusObjectsAre "working"]
  1186.     }
  1187.  
  1188.     }
  1189.     activated    {BrowserProcs::changeName}
  1190.     }
  1191. }
  1192.  
  1193. registerObject {
  1194.     type    CustCascadeButton
  1195.     name    .file.menu.properties
  1196.     objSpec {
  1197.     hintText    "Contains commands to handle properties."
  1198.     label        "Properties"
  1199.     mnemonic    P
  1200.     }
  1201. }
  1202.  
  1203. registerObject {
  1204.     type    CustMenu
  1205.     name    .file.menu.properties.menu
  1206.     objSpec {
  1207.     pinnable    0
  1208.     }
  1209. }
  1210.  
  1211. registerObject {
  1212.     type    CustMenuPushButton
  1213.     name    .file.menu.properties.menu.edit
  1214.     inPopUpMenu    1
  1215.     objSpec {
  1216.     hintText    "Edits the properties of the selected objects."
  1217.     label        "Edit..."
  1218.     popUpLabel    "Edit properties..."
  1219.     mnemonic    E
  1220.     accelerator    Ctrl+d
  1221.     checkOn        selectionChange
  1222.     enableScript    {
  1223.  
  1224.     if [lempty [.main selectedObjSet]] {
  1225.         %this sensitive 1
  1226.         return
  1227.     }
  1228.     if {! [BrowserProcs::objectsAre PropertyObject]} {
  1229.         %this sensitive 0
  1230.         return
  1231.     }
  1232.     if {(! [BrowserProcs::statusObjectsAreNot "frozen"]) ||
  1233.         (! [BrowserProcs::statusObjectsAreNot "backGround"])} {
  1234.         %this sensitive 0
  1235.         return
  1236.     }
  1237.     %this sensitive [BrowserProcs::statusObjectsAreNot "reused"]
  1238.  
  1239.     }
  1240.     activated    {BrowserProcs::editProperties}
  1241.     }
  1242. }
  1243.  
  1244. registerObject {
  1245.     type    CustMenuPushButton
  1246.     name    .file.menu.properties.menu.show
  1247.     inPopUpMenu    1
  1248.     objSpec {
  1249.     hintText    "Shows the properties of the selected objects."
  1250.     label        "Show..."
  1251.     popUpLabel    "Show properties..."
  1252.     mnemonic    S
  1253.     checkOn        selectionChange
  1254.     enableScript    {
  1255.  
  1256.     if [lempty [.main selectedObjSet]] {
  1257.         %this sensitive 1
  1258.         return
  1259.     }
  1260.     %this sensitive [BrowserProcs::objectsAre PropertyObject]
  1261.  
  1262.     }
  1263.     activated    {BrowserProcs::showProperties}
  1264.     }
  1265. }
  1266.  
  1267. registerObject {
  1268.     type    CustMenuPushButton
  1269.     name    .file.menu.properties.menu.delete
  1270.     objSpec {
  1271.     hintText    "Deletes the properties of the selected objects."
  1272.     label        "Delete..."
  1273.     mnemonic    D
  1274.     checkOn        selectionChange
  1275.     enableScript    {
  1276.  
  1277.     if [lempty [.main selectedObjSet]] {
  1278.         %this sensitive 1
  1279.         return
  1280.     }
  1281.     if {! [BrowserProcs::objectsAre PropertyObject]} {
  1282.         %this sensitive 0
  1283.         return
  1284.     }
  1285.     if {(! [BrowserProcs::statusObjectsAreNot "frozen"]) ||
  1286.         (! [BrowserProcs::statusObjectsAreNot "backGround"])} {
  1287.         %this sensitive 0
  1288.         return
  1289.     }
  1290.     %this sensitive [BrowserProcs::statusObjectsAreNot "reused"]
  1291.  
  1292.     }
  1293.     activated    {BrowserProcs::removeProperties}
  1294.     }
  1295. }
  1296.  
  1297. registerObject {
  1298.     type    CustMenuSeparator
  1299.     name    .file.menu.separator5
  1300. }
  1301.  
  1302. registerObject {
  1303.     type    CustMenuPushButton
  1304.     name    .file.menu.effectiveroles
  1305.     inToolBar    1
  1306.     objSpec {
  1307.     hintText    "Shows the currently effective roles."
  1308.     label        "Effective Roles"
  1309.     mnemonic    s
  1310.     accelerator    Ctrl+s
  1311.     toolBarPixmap    role_16
  1312.     checkOn        levelChange
  1313.     enableScript    {
  1314.  
  1315.     %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  1316.  
  1317.     }
  1318.     activated    {BrowserProcs::showContext}
  1319.     }
  1320. }
  1321.  
  1322. registerObject {
  1323.     type    CustMenuPushButton
  1324.     name    .file.menu.info
  1325.     inToolBar    1
  1326.     inPopUpMenu    1
  1327.     objSpec {
  1328.     hintText    "Shows information about the selected object."
  1329.     label        "Info"
  1330.     mnemonic    I
  1331.     accelerator    Ctrl+i
  1332.     toolBarPixmap    info_16
  1333.     checkOn        selectionChange
  1334.     enableScript    {
  1335.  
  1336.     if {[llength [.main selectedObjSet]] > 1} {
  1337.         %this sensitive 0
  1338.     } else {
  1339.         %this sensitive 1
  1340.     }
  1341.  
  1342.     }
  1343.     activated    {BrowserProcs::showInfo}
  1344.     }
  1345. }
  1346.  
  1347. registerObject {
  1348.     type    CustMenuPushButton
  1349.     name    .file.menu.print
  1350.     inToolBar    1
  1351.     inPopUpMenu    1
  1352.     objSpec {
  1353.     hintText    "Prints the selected objects."
  1354.     label        "Print"
  1355.     mnemonic    t
  1356.     accelerator    Ctrl+p
  1357.     toolBarPixmap    print_16
  1358.     checkOn        selectionChange
  1359.     selCount    many
  1360.     selIsATypes    {ExternalFileVersion Graph SystemFileReference
  1361.              PropertyReference ExternalLink CustomFileVersion
  1362.              ExtFUiObj}
  1363.     enableScript    {
  1364.  
  1365.     if {"[[.main currentObj] getParent CorpGVDbObj]" != ""} {
  1366.         %this sensitive 0
  1367.     } elseif \
  1368.         [BrowserProcs::currentObjIsA {ExtFUiObj HCustFUiObj UCustFUiObj}] {
  1369.         if [BrowserProcs::typeObjectsAre "ExternalFile"] {
  1370.         %this sensitive [BrowserProcs::objectsReturn isAscii]
  1371.         } else {
  1372.         %this sensitive 0
  1373.         }
  1374.     } else {
  1375.         %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  1376.     }
  1377.  
  1378.     }
  1379.     activated    {[[.main currentObj] browsUiObj] printObjects}
  1380.     }
  1381. }
  1382.  
  1383. registerObject {
  1384.     type    CustMenuPushButton
  1385.     name    .file.menu.printview
  1386.     objSpec {
  1387.     hintText    "Prints the information view."
  1388.     label        "Print View"
  1389.     mnemonic    V
  1390.     activated    {[.main infoView] print}
  1391.     }
  1392. }
  1393.  
  1394. registerObject {
  1395.     type    CustMenuSeparator
  1396.     name    .file.menu.separator6
  1397. }
  1398.  
  1399. registerObject {
  1400.     type    CustMenuSeparator
  1401.     name    .file.menu.separator7
  1402. }
  1403.  
  1404. registerObject {
  1405.     type    CustMenuPushButton
  1406.     name    .file.menu.exit
  1407.     objSpec {
  1408.     hintText    "Exits the browser."
  1409.     label        "Exit"
  1410.     mnemonic    x
  1411.     toolBarPixmap    stop_16
  1412.     activated    {.main stop}
  1413.     }
  1414. }
  1415.  
  1416. registerObject {
  1417.     type    CustMenuBarButton
  1418.     name    .edit
  1419.     objSpec {
  1420.     label        Edit
  1421.     mnemonic    E
  1422.     }
  1423. }
  1424.  
  1425. registerObject {
  1426.     type    CustMenu
  1427.     name    .edit.menu
  1428.     objSpec {
  1429.     pinnable    1
  1430.     }
  1431. }
  1432.  
  1433. registerObject {
  1434.     type    CustMenuPushButton
  1435.     name    .edit.menu.undo
  1436.     objSpec {
  1437.     hintText    "Undoes the last edit action."
  1438.     label        "Undo"
  1439.     mnemonic    U
  1440.     accelerator    Ctrl+Z
  1441.     activated    {.main editUndo}
  1442.     }
  1443. }
  1444.  
  1445. registerObject {
  1446.     type    CustMenuSeparator
  1447.     name    .edit.menu.separator1
  1448. }
  1449.  
  1450. registerObject {
  1451.     type    CustMenuPushButton
  1452.     name    .edit.menu.cut
  1453.     inToolBar    1
  1454.     inPopUpMenu    1
  1455.     objSpec {
  1456.     hintText    "Moves the selected objects to the clipboard."
  1457.     label        "Cut"
  1458.     mnemonic    t
  1459.     accelerator    Ctrl+X
  1460.     toolBarPixmap   cut_16
  1461.     checkOn        selectionChange
  1462.     selCount    many
  1463.     selIsATypes    {SystemVersion FileVersion GroupVersion}
  1464.     enableScript    {
  1465.  
  1466.     set status [[[.main currentObj] browsUiObj] getInfo Status]
  1467.     if {(! [BrowserProcs::currentObjIsA {Version CustFVUiObj}]) ||
  1468.         [BrowserProcs::currentObjIsA GroupVDbObj]} {
  1469.         %this sensitive 0
  1470.     } elseif {"$status" != "" && "$status" != "working"} {
  1471.         %this sensitive 0
  1472.     } else {
  1473.         %this sensitive [BrowserProcs::objectsReturn canBeDragged]
  1474.     }
  1475.  
  1476.     }
  1477.     activated    {.main editCut}
  1478.     }
  1479. }
  1480.  
  1481. registerObject {
  1482.     type    CustMenuPushButton
  1483.     name    .edit.menu.copy
  1484.     inToolBar    1
  1485.     inPopUpMenu    1
  1486.     objSpec {
  1487.     hintText    "Copies the selected objects to the clipboard."
  1488.     label        "Copy"
  1489.     mnemonic    C
  1490.     accelerator    Ctrl+C
  1491.     toolBarPixmap    copy_16
  1492.     checkOn        selectionChange
  1493.     selCount    many
  1494.     enableScript    {
  1495.  
  1496.     %this sensitive [BrowserProcs::objectsReturn canBeDragged]
  1497.  
  1498.     }
  1499.     activated    {.main editCopy}
  1500.     }
  1501. }
  1502.  
  1503. registerObject {
  1504.     type    CustMenuPushButton
  1505.     name    .edit.menu.paste
  1506.     inToolBar    1
  1507.     inPopUpMenu    1
  1508.     objSpec {
  1509.     hintText    "Pastes the clipboard contents at the selected tree node."
  1510.     label        "Paste"
  1511.     mnemonic    P
  1512.     accelerator    Ctrl+V
  1513.     toolBarPixmap    paste_16
  1514.     activated    {.main editPaste}
  1515.     }
  1516. }
  1517.  
  1518. registerObject {
  1519.     type    CustMenuSeparator
  1520.     name    .edit.menu.separator2
  1521. }
  1522.  
  1523. registerObject {
  1524.     type    CustMenuPushButton
  1525.     name    .edit.menu.selectall
  1526.     objSpec {
  1527.     hintText    "Selects all the objects in the information view."
  1528.     label        "Select All"
  1529.     mnemonic    A
  1530.     accelerator    Ctrl+A
  1531.     activated    {.main editSelAll}
  1532.     }
  1533. }
  1534.  
  1535.  
  1536. registerObject {
  1537.     type    CustMenuPushButton
  1538.     name    .edit.menu.invertselection
  1539.     objSpec {
  1540.     hintText    "Inverts the information view selection."
  1541.     label        "Invert Selection"
  1542.     mnemonic    I
  1543.     activated    {.main editSelInv}
  1544.     }
  1545. }
  1546.  
  1547. registerObject {
  1548.     type    CustMenuBarButton
  1549.     name    .view
  1550.     objSpec {
  1551.     label        View
  1552.     mnemonic    V
  1553.     }
  1554. }
  1555.  
  1556. registerObject {
  1557.     type    CustMenu
  1558.     name    .view.menu
  1559.     objSpec {
  1560.     pinnable    1
  1561.     }
  1562. }
  1563.  
  1564. registerObject {
  1565.     type    CustMenuPushButton
  1566.     name    .view.menu.refresh
  1567.     objSpec {
  1568.     hintText    "Refreshes the information view."
  1569.     label        "Refresh"
  1570.     mnemonic    R
  1571.     activated    {.main updateView}
  1572.     }
  1573. }
  1574.  
  1575. registerObject {
  1576.     type    CustMenuSeparator
  1577.     name    .view.menu.separator1
  1578. }
  1579.  
  1580. registerObject {
  1581.     type    CustMenuCheckButton
  1582.     name    .view.menu.toolbar
  1583.     objSpec {
  1584.     hintText    "Shows or hides the toolbar."
  1585.     label        ToolBar
  1586.     mnemonic    T
  1587.     state        1
  1588.     stateChanged    {
  1589.         .main toolBarPresent [[.main menuBar].view.menu.toolbar state]
  1590.     }
  1591.     }
  1592. }
  1593.  
  1594. registerObject {
  1595.     type    CustMenuCheckButton
  1596.     name    .view.menu.contextarea
  1597.     objSpec {
  1598.     hintText    "Shows or hides the context area."
  1599.     label        "Context Area"
  1600.     mnemonic    C
  1601.     state        1
  1602.     stateChanged    {
  1603.         .main contextAreaPresent [[.main menuBar].view.menu.contextarea state]
  1604.     }
  1605.     }
  1606. }
  1607.  
  1608. registerObject {
  1609.     type    CustMenuCheckButton
  1610.     name    .view.menu.messagearea
  1611.     objSpec {
  1612.     hintText    "Shows or hides the message area."
  1613.     label        "Message Area"
  1614.     mnemonic    M
  1615.     state        1
  1616.     stateChanged    {
  1617.         .main messageAreaPresent [[.main menuBar].view.menu.messagearea state]
  1618.     }
  1619.     }
  1620. }
  1621.  
  1622. registerObject {
  1623.     type    CustMenuSeparator
  1624.     name    .view.menu.separator2
  1625. }
  1626.  
  1627. registerObject {
  1628.     type    CustMenuArbiter
  1629.     name    .view.menu.menuarbiter
  1630.     objSpec {
  1631.     currentButtonChanged    {.main setViewMode}
  1632.     }
  1633. }
  1634.  
  1635. registerObject {
  1636.     type    CustMenuRadioButton
  1637.     name    .view.menu.largeicons
  1638.     inToolBar    1
  1639.     arbiter    menuarbiter
  1640.     objSpec {
  1641.     hintText    "Switches view to large icon mode."
  1642.     label        "Large Icons"
  1643.     mnemonic    L
  1644.     toolBarPixmap    viewlicons_16
  1645.     }
  1646. }
  1647.  
  1648. registerObject {
  1649.     type    CustMenuRadioButton
  1650.     name    .view.menu.smallicons
  1651.     inToolBar    1
  1652.     arbiter    menuarbiter
  1653.     objSpec {
  1654.     hintText    "Switches view to small icon mode."
  1655.     label        "Small Icons"
  1656.     mnemonic    S
  1657.     toolBarPixmap    viewsicons_16
  1658.     }
  1659. }
  1660.  
  1661. registerObject {
  1662.     type    CustMenuRadioButton
  1663.     name    .view.menu.details
  1664.     inToolBar    1
  1665.     arbiter    menuarbiter
  1666.     objSpec {
  1667.     hintText    "Switches view to detail mode."
  1668.     label        "Details"
  1669.     mnemonic    D
  1670.     toolBarPixmap    viewdetails_16
  1671.     }
  1672. }
  1673.  
  1674. registerObject {
  1675.     type    CustMenuSeparator
  1676.     name    .view.menu.separator3
  1677. }
  1678.  
  1679. registerObject {
  1680.     type    CustMenuBarButton
  1681.     name    .options
  1682.     objSpec {
  1683.     label        Options
  1684.     mnemonic    O
  1685.     }
  1686. }
  1687.  
  1688. registerObject {
  1689.     type    CustMenu
  1690.     name    .options.menu
  1691.     objSpec {
  1692.     pinnable    1
  1693.     }
  1694. }
  1695.  
  1696. registerObject {
  1697.     type    CustMenuPushButton
  1698.     name    .options.menu.comparecommand
  1699.     objSpec {
  1700.     hintText    "Changes the compare command (M4_diff)."
  1701.     label        "Compare Command..."
  1702.     mnemonic    C
  1703.     activated    {[.main options] compareCmd}
  1704.     }
  1705. }
  1706.  
  1707. registerObject {
  1708.     type    CustMenuPushButton
  1709.     name    .options.menu.editor
  1710.     objSpec {
  1711.     hintText    "Changes the text editor command (M4_editor)."
  1712.     label        "Editor..."
  1713.     mnemonic    E
  1714.     activated    {[.main options] editor}
  1715.     }
  1716. }
  1717.  
  1718. registerObject {
  1719.     type    CustMenuPushButton
  1720.     name    .options.menu.font
  1721.     objSpec {
  1722.     hintText    "Changes the browser font (M4_font__desk)."
  1723.     label        "Font..."
  1724.     mnemonic    F
  1725.     activated    {[.main options] font}
  1726.     }
  1727. }
  1728.  
  1729. registerObject {
  1730.     type    CustMenuPushButton
  1731.     name    .options.menu.previewer
  1732.     objSpec {
  1733.     hintText    "Changes the preview command (M4_previewer)."
  1734.     label        "Previewer..."
  1735.     mnemonic    r
  1736.     activated    {[.main options] previewer}
  1737.     }
  1738. }
  1739.  
  1740. registerObject {
  1741.     type    CustCascadeButton
  1742.     name    .options.menu.printersetup
  1743.     objSpec {
  1744.     hintText    "Contains commands to setup the printers."
  1745.     label        "Printer Setup"
  1746.     mnemonic    P
  1747.     }
  1748. }
  1749.  
  1750. registerObject {
  1751.     type    CustMenu
  1752.     name    .options.menu.printersetup.menu
  1753.     objSpec {
  1754.     pinnable    0
  1755.     }
  1756. }
  1757.  
  1758. registerObject {
  1759.     type    CustMenuPushButton
  1760.     name    .options.menu.printersetup.menu.text
  1761.     objSpec {
  1762.     hintText    "Sets up the text printer."
  1763.     label        "Text..."
  1764.     mnemonic    T
  1765.     activated    {[.main options] aPrinterSetup}
  1766.     }
  1767. }
  1768.  
  1769. registerObject {
  1770.     type    CustMenuPushButton
  1771.     name    .options.menu.printersetup.menu.graphical
  1772.     objSpec {
  1773.     hintText    "Sets up the graphical printer."
  1774.     label        "Graphical..."
  1775.     mnemonic    G
  1776.     activated    {[.main options] psPrinterSetup}
  1777.     }
  1778. }
  1779.  
  1780. registerObject {
  1781.     type    CustMenuPushButton
  1782.     name    .options.menu.viewer
  1783.     objSpec {
  1784.     hintText    "Sets up the view command (M4_viewer)."
  1785.     label        "Viewer..."
  1786.     mnemonic    V
  1787.     activated    {[.main options] viewer}
  1788.     }
  1789. }
  1790.  
  1791. registerObject {
  1792.     type    CustCascadeButton
  1793.     name    .options.menu.copyuserenvironment
  1794.     objSpec {
  1795.     hintText    "Contains commands that copies the current meta4 environment."
  1796.     label        "Copy User Environment"
  1797.     mnemonic    o
  1798.     }
  1799. }
  1800.  
  1801. registerObject {
  1802.     type    CustMenu
  1803.     name    .options.menu.copyuserenvironment.menu
  1804.     objSpec {
  1805.     pinnable    0
  1806.     }
  1807. }
  1808.  
  1809. registerObject {
  1810.     type    CustMenuPushButton
  1811.     name    .options.menu.copyuserenvironment.menu.tocorporateenvironment
  1812.     objSpec {
  1813.     hintText    "Copies current meta4 environment to corporate environment."
  1814.     label        "To Corporate Environment..."
  1815.     mnemonic    C
  1816.     checkOn        levelChange
  1817.     enableScript    {
  1818.  
  1819.     %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  1820.  
  1821.     }
  1822.     activated    {BrowserProcs::copyUserEnv Corporate}
  1823.     }
  1824. }
  1825.  
  1826. registerObject {
  1827.     type    CustMenuPushButton
  1828.     name    .options.menu.copyuserenvironment.menu.toprojectenvironment
  1829.     visible    {0 1 1 1 1}
  1830.     objSpec {
  1831.     hintText    "Copies current meta4 environment to project environment."
  1832.     label        "To Project Environment..."
  1833.     mnemonic    P
  1834.     activated    {BrowserProcs::copyUserEnv Project}
  1835.     }
  1836. }
  1837.  
  1838. registerObject {
  1839.     type    CustMenuPushButton
  1840.     name    .options.menu.copyuserenvironment.menu.toconfigversionenvironment
  1841.     visible    {0 0 1 1 1}
  1842.     objSpec {
  1843.     hintText    "Copies current meta4 environment to configversion environment."
  1844.     label        "To ConfigVersion Environment..."
  1845.     mnemonic    f
  1846.     checkOn        levelChange
  1847.     enableScript    {
  1848.  
  1849.     set confV [[ClientContext::global] currentConfig]
  1850.     if {"[$confV getInfo Status]" != "working"} {
  1851.         %this sensitive 0
  1852.         return
  1853.     }
  1854.     %this sensitive 1
  1855.  
  1856.     }
  1857.     activated    {BrowserProcs::copyUserEnv ConfigVersion}
  1858.     }
  1859. }
  1860.  
  1861. registerObject {
  1862.     type    CustMenuPushButton
  1863.     name    .options.menu.copyuserenvironment.menu.tophaseversionenvironment
  1864.     visible    {0 0 0 1 1}
  1865.     objSpec {
  1866.     hintText    "Copies current meta4 environment to phaseversion environment"
  1867.     label        "To PhaseVersion Environment..."
  1868.     mnemonic    h
  1869.     checkOn        levelChange
  1870.     enableScript    {
  1871.  
  1872.     set phaseV [[ClientContext::global] currentPhase]
  1873.     if {"[$phaseV getInfo Status]" != "working"} {
  1874.         %this sensitive 0
  1875.         return
  1876.     }
  1877.     %this sensitive 1
  1878.  
  1879.     }
  1880.     activated    {BrowserProcs::copyUserEnv PhaseVersion}
  1881.     }
  1882. }
  1883.  
  1884. registerObject {
  1885.     type    CustMenuPushButton
  1886.     name    .options.menu.copyuserenvironment.menu.tosystemversionenvironment
  1887.     visible    {0 0 0 0 1}
  1888.     objSpec {
  1889.     hintText    "Copies current meta4 environment to systemversion environment."
  1890.     label        "To SystemVersion Environment..."
  1891.     mnemonic    S
  1892.     checkOn        levelChange
  1893.     enableScript    {
  1894.  
  1895.     set sysV [[ClientContext::global] currentSystem]
  1896.     if {"[$sysV getInfo Status]" != "working"} {
  1897.         %this sensitive 0
  1898.         return
  1899.     }
  1900.     %this sensitive 1
  1901.  
  1902.     }
  1903.     activated    {BrowserProcs::copyUserEnv SystemVersion}
  1904.     }
  1905. }
  1906.  
  1907. registerObject {
  1908.     type    CustMenuBarButton
  1909.     name    .check
  1910.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  1911.     objSpec {
  1912.     label        Check
  1913.     mnemonic    C
  1914.     }
  1915. }
  1916.  
  1917. registerObject {
  1918.     type    CustMenu
  1919.     name    .check.menu
  1920.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  1921.     objSpec {
  1922.     pinnable    1
  1923.     }
  1924. }
  1925.  
  1926. registerObject {
  1927.     type    CustMenuPushButton
  1928.     name    .check.menu.contents
  1929.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  1930.     objSpec {
  1931.     hintText    "Checks the contents of the selected objects."
  1932.     label        "Contents"
  1933.     mnemonic    C
  1934.     checkOn        selectionChange
  1935.     selCount    many
  1936.     selIsATypes    {Graph}
  1937.     enableScript    {
  1938.  
  1939.     %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  1940.  
  1941.     }
  1942.     activated    {
  1943.  
  1944.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] -c"
  1945.     foreach obj [.main selectedObjSet] {
  1946.         append script " [[$obj file] qualifiedName].[$obj getInfo Type]"
  1947.     }
  1948.     .main startCommand mtool \
  1949.         "$script" "" "Starting 'Check'" {0 0} 0
  1950.  
  1951.     }
  1952.     }
  1953. }
  1954.  
  1955. registerObject {
  1956.     type    CustMenuPushButton
  1957.     name    .check.menu.globalmodel
  1958.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  1959.     objSpec {
  1960.     hintText    "Checks the global model."
  1961.     label        {Global Model}
  1962.     mnemonic    G
  1963.     checkOn        levelChange
  1964.     enableScript    {
  1965.  
  1966.     set sysV [[ClientContext::global] currentSystem]
  1967.     if {"[$sysV getInfo Status]" == "backGround"} {
  1968.         %this sensitive 0
  1969.         return
  1970.     }
  1971.     %this sensitive 1
  1972.  
  1973.     }
  1974.     activated    {
  1975.  
  1976.     set args "-f check.tcl -- -global"
  1977.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] $args"
  1978.     .main startCommand mtool \
  1979.         "$script" "" "Starting 'Check'" {0 0} 0
  1980.  
  1981.     }
  1982.     }
  1983. }
  1984.  
  1985. registerObject {
  1986.     type    CustMenuPushButton
  1987.     name    .check.menu.usecasemodel
  1988.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  1989.     objSpec {
  1990.     hintText    "Checks the Use Case model."
  1991.     label        {Use Case Model}
  1992.     mnemonic    U
  1993.     checkOn        levelChange
  1994.     enableScript    {
  1995.  
  1996.     set sysV [[ClientContext::global] currentSystem]
  1997.     set status [$sysV getInfo Status]
  1998.     if {"$status" == "backGround"} {
  1999.         %this sensitive 0
  2000.         return
  2001.     }
  2002.     %this sensitive 1
  2003.  
  2004.     }
  2005.     activated    {
  2006.  
  2007.     set args "-f check.tcl -- -usecase"
  2008.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] $args"
  2009.     .main startCommand mtool \
  2010.         "$script" "" "Starting 'Check'" {0 0} 0
  2011.  
  2012.     }
  2013.     }
  2014. }
  2015.  
  2016. registerObject {
  2017.     type    CustMenuPushButton
  2018.     name    .check.menu.localmodel
  2019.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  2020.     objSpec {
  2021.     hintText    "Checks the local model of the selected objects."
  2022.     label        {Local Model}
  2023.     mnemonic    L
  2024.     checkOn        selectionChange
  2025.     selCount    many
  2026.     selIsATypes    {Graph Matrix}
  2027.     enableScript    {
  2028.  
  2029.     %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  2030.  
  2031.     }
  2032.     activated    {
  2033.  
  2034.     set args "-f check.tcl"
  2035.     foreach obj [.main selectedObjSet] {
  2036.         append args " -S [[$obj file] qualifiedName].[$obj getInfo Type]"
  2037.     }
  2038.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] $args"
  2039.     .main startCommand mtool \
  2040.         "$script" "" "Starting 'Check'" {0 0} 0
  2041.  
  2042.     }
  2043.     }
  2044. }
  2045.  
  2046. registerObject {
  2047.     type    CustMenuBarButton
  2048.     name    .version
  2049.     objSpec {
  2050.     label        Version
  2051.     mnemonic    r
  2052.     }
  2053. }
  2054.  
  2055. registerObject {
  2056.     type    CustMenu
  2057.     name    .version.menu
  2058.     objSpec {
  2059.     pinnable    1
  2060.     }
  2061. }
  2062.  
  2063. registerObject {
  2064.     type    CustMenuPushButton
  2065.     name    .version.menu.freeze
  2066.     objSpec {
  2067.     hintText    "Freezes the selected objects."
  2068.     label        "Freeze..."
  2069.     mnemonic    F
  2070.     checkOn        selectionChange
  2071.     selCount    many
  2072.     selIsATypes    {ConfigVersion PhaseVersion SystemVersion
  2073.              FileVersion CustomFileVersion GroupVersion}
  2074.  
  2075.     enableScript    {
  2076.  
  2077.     %this sensitive [BrowserProcs::statusObjectsAre "working"]
  2078.  
  2079.     }
  2080.     activated    {BrowserProcs::freezeObjects "[.main selectedObjSet]"}
  2081.     }
  2082. }
  2083.  
  2084. registerObject {
  2085.     type    CustMenuPushButton
  2086.     name    .version.menu.unfreeze
  2087.     objSpec {
  2088.     hintText    "Unfreezes the selected objects."
  2089.     label        "Unfreeze"
  2090.     mnemonic    U
  2091.     checkOn        selectionChange
  2092.     selCount    many
  2093.     selIsATypes    {ConfigVersion PhaseVersion SystemVersion
  2094.              FileVersion CustomFileVersion GroupVersion}
  2095.     enableScript    {
  2096.  
  2097.     set version [[.main currentObj] browsUiObj]
  2098.     if {! [$version isA BrowsDbObj]} {
  2099.         set version [$version getParent BrowsDbObj]
  2100.     }
  2101.     set status [$version getInfo Status]
  2102.     if {"$status" != "" && "$status" != "working"} {
  2103.         %this sensitive 0
  2104.         return
  2105.     }
  2106.     %this sensitive [BrowserProcs::statusObjectsAre "frozen"]
  2107.  
  2108.     }
  2109.     activated    {BrowserProcs::unfreezeObjects}
  2110.     }
  2111. }
  2112.  
  2113. registerObject {
  2114.     type    CustMenuPushButton
  2115.     name    .version.menu.new
  2116.     objSpec {
  2117.     hintText    "Creates a new version of the selected objects."
  2118.     label        "New"
  2119.     mnemonic    N
  2120.     checkOn        selectionChange
  2121.     selCount    many
  2122.     selIsATypes    {ConfigVersion PhaseVersion SystemVersion
  2123.              FileVersion CustomFileVersion GroupVersion}
  2124.     enableScript    {
  2125.  
  2126.     set version [[.main currentObj] browsUiObj]
  2127.     if {! [$version isA BrowsDbObj]} {
  2128.         set version [$version getParent BrowsDbObj]
  2129.     }
  2130.     set status [$version getInfo Status]
  2131.     if {"$status" != "" && "$status" != "working"} {
  2132.         %this sensitive 0
  2133.         return
  2134.     }
  2135.     %this sensitive 1
  2136.  
  2137.     }
  2138.     activated    {[[.main currentObj] browsUiObj] newObjects}
  2139.     }
  2140. }
  2141.  
  2142. registerObject {
  2143.     type    CustMenuPushButton
  2144.     name    .version.menu.delete
  2145.     objSpec {
  2146.     hintText    "Deletes versions of the selected object."
  2147.     label        "Delete..."
  2148.     mnemonic    D
  2149.     checkOn        selectionChange
  2150.     selCount    many
  2151.     selIsATypes    {ConfigVersion PhaseVersion SystemVersion FileVersion
  2152.              CustomFileVersion GroupVersion SavedGroupVersion
  2153.              CorporateGroupVersion}
  2154.     enableScript    {
  2155.  
  2156.     if [BrowserProcs::currentObjIsA CorpGVDbObj] {
  2157.         %this sensitive 0
  2158.         return
  2159.     }
  2160.     if [BrowserProcs::currentObjIsA {CorpGVUiObj SvdGVUiObj}] {
  2161.         %this sensitive 1
  2162.         return
  2163.     }
  2164.     if {[llength [.main selectedObjSet]] > 1} {
  2165.         %this sensitive 0
  2166.         return
  2167.     }
  2168.     set version [[.main currentObj] browsUiObj]
  2169.     if {! [$version isA BrowsDbObj]} {
  2170.         set version [$version getParent BrowsDbObj]
  2171.     }
  2172.     set status [$version getInfo Status]
  2173.     if {"$status" != "" && "$status" != "working"} {
  2174.         %this sensitive 0
  2175.         return
  2176.     }
  2177.     %this sensitive 1
  2178.  
  2179.     }
  2180.     activated    {[lindex [.main selectedObjSet] 0] removeVersion}
  2181.     }
  2182. }
  2183.  
  2184. registerObject {
  2185.     type    CustMenuPushButton
  2186.     name    .version.menu.copy
  2187.     objSpec {
  2188.     hintText    "Copies the contents of another version to the selected object."
  2189.     label        "Copy..."
  2190.     mnemonic    o
  2191.     checkOn        selectionChange
  2192.     selCount    1
  2193.     selIsATypes    {ConfigVersion PhaseVersion SystemVersion Graph
  2194.              ExternalFileVersion CustomFileVersion GroupVersion}
  2195.     enableScript    {
  2196.  
  2197.     %this sensitive [BrowserProcs::statusObjectsAre "working"]
  2198.  
  2199.     }
  2200.     activated    {[lindex [.main selectedObjSet] 0] copyVersion}
  2201.     }
  2202. }
  2203.  
  2204. registerObject {
  2205.     type    CustCascadeButton
  2206.     name    .version.menu.select
  2207.     objSpec {
  2208.     hintText    "Contains commands to select versions."
  2209.     label        "Select"
  2210.     mnemonic    S
  2211.     }
  2212. }
  2213.  
  2214. registerObject {
  2215.     type    CustMenu
  2216.     name    .version.menu.select.menu
  2217.     objSpec {
  2218.     pinnable    0
  2219.     }
  2220. }
  2221.  
  2222. registerObject {
  2223.     type    CustMenuPushButton
  2224.     name    .version.menu.select.menu.new
  2225.     objSpec {
  2226.     hintText    "Selects a version of not currently available objects."
  2227.     label        "New..."
  2228.     mnemonic    N
  2229.     checkOn        levelChange
  2230.     enableScript    {
  2231.  
  2232.     if {(! [BrowserProcs::currentObjIsA {Version CustFVUiObj}]) ||
  2233.         [BrowserProcs::currentObjIsA GroupVDbObj]} {
  2234.         %this sensitive 0
  2235.         return
  2236.     }
  2237.     set version [[.main currentObj] browsUiObj]
  2238.     if {! [$version isA BrowsDbObj]} {
  2239.         set version [$version getParent BrowsDbObj]
  2240.     }
  2241.     set status [$version getInfo Status]
  2242.     if {"$status" != "" && "$status" != "working"} {
  2243.         %this sensitive 0
  2244.         return
  2245.     }
  2246.     %this sensitive 1
  2247.  
  2248.     }
  2249.     activated    {[[.main currentObj] browsUiObj] selectObject new}
  2250.     }
  2251. }
  2252.  
  2253. registerObject {
  2254.     type    CustMenuPushButton
  2255.     name    .version.menu.select.menu.selected
  2256.     objSpec {
  2257.     hintText    "Selects another version of the selected object."
  2258.     label        "Selected..."
  2259.     mnemonic    S
  2260.     checkOn        selectionChange
  2261.     selCount    1
  2262.     enableScript    {
  2263.  
  2264.     if {! [BrowserProcs::objectsAre Version]} {
  2265.         %this sensitive 0
  2266.         return
  2267.     }
  2268.     if {(! [BrowserProcs::currentObjIsA {Version CustFVUiObj}]) ||
  2269.         [BrowserProcs::currentObjIsA GroupVDbObj]} {
  2270.         %this sensitive 0
  2271.         return
  2272.     }
  2273.     set version [[.main currentObj] browsUiObj]
  2274.     if {! [$version isA BrowsDbObj]} {
  2275.         set version [$version getParent BrowsDbObj]
  2276.     }
  2277.     set status [$version getInfo Status]
  2278.     if {"$status" != "" && "$status" != "working"} {
  2279.         %this sensitive 0
  2280.         return
  2281.     }
  2282.     %this sensitive 1
  2283.  
  2284.     }
  2285.     activated    {[[.main currentObj] browsUiObj] selectObject selected}
  2286.     }
  2287. }
  2288.  
  2289. registerObject {
  2290.     type    CustMenuPushButton
  2291.     name    .version.menu.deselect
  2292.     objSpec {
  2293.     hintText    "Deselects the selected objects."
  2294.     label        "Deselect"
  2295.     mnemonic    e
  2296.     checkOn        selectionChange
  2297.     selCount    many
  2298.     selIsATypes    {PhaseVersion SystemVersion FileVersion
  2299.              CustomFileVersion GroupVersion}
  2300.     enableScript    {
  2301.  
  2302.     if {(! [BrowserProcs::currentObjIsA {Version CustFVUiObj}]) ||
  2303.         [BrowserProcs::currentObjIsA GroupVDbObj]} {
  2304.         %this sensitive 0
  2305.         return
  2306.     }
  2307.     set version [[.main currentObj] browsUiObj]
  2308.     if {! [$version isA BrowsDbObj]} {
  2309.         set version [$version getParent BrowsDbObj]
  2310.     }
  2311.     set status [$version getInfo Status]
  2312.     if {"$status" != "" && "$status" != "working"} {
  2313.         %this sensitive 0
  2314.         return
  2315.     }
  2316.     %this sensitive 1
  2317.  
  2318.     }
  2319.     activated    {[[.main currentObj] browsUiObj] deselectObjects}
  2320.     }
  2321. }
  2322.  
  2323. registerObject {
  2324.     type    CustMenuPushButton
  2325.     name    .version.menu.compare
  2326.     objSpec {
  2327.     hintText    "Compares the selected object with an earlier version."
  2328.     label        "Compare..."
  2329.     mnemonic    C
  2330.     checkOn        selectionChange
  2331.     selCount    1
  2332.     selIsATypes    {SystemFileReference FileVersion CustomFileVersion}
  2333.     enableScript    {
  2334.  
  2335.     %this sensitive \
  2336.         [[lindex [.main selectedObjSet] 0] compareVersionAllowed]
  2337.  
  2338.     }
  2339.     activated    {[lindex [.main selectedObjSet] 0] compareVersion}
  2340.     }
  2341. }
  2342.  
  2343. registerObject {
  2344.     type    CustMenuPushButton
  2345.     name    .version.menu.activate
  2346.     scope    {*}
  2347.     visible    {0 1 0 0 0}
  2348.     objSpec {
  2349.     hintText    "Moves the selected configuration to the foreground."
  2350.     label        "Activate"
  2351.     mnemonic    A
  2352.     checkOn        selectionChange
  2353.     selCount    1
  2354.     selIsATypes    {ConfigVersion}
  2355.     enableScript    {
  2356.  
  2357.     %this sensitive [BrowserProcs::statusObjectsAre "backGround"]
  2358.  
  2359.     }
  2360.     activated    {[[.main currentObj] browsUiObj] activateObject}
  2361.     }
  2362. }
  2363.  
  2364. registerObject {
  2365.     type    CustMenuPushButton
  2366.     name    .version.menu.activate
  2367.     scope    {* * * system}
  2368.     objSpec {
  2369.     hintText    "Activates corporate groups."
  2370.     label        "Activate..."
  2371.     mnemonic    A
  2372.     checkOn        levelChange
  2373.     enableScript    {
  2374.  
  2375.     if {! [BrowserProcs::currentObjIsA SystemVersion]} {
  2376.         %this sensitive 0
  2377.         return
  2378.     }
  2379.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2380.         %this sensitive 0
  2381.         return
  2382.     }
  2383.     %this sensitive 1
  2384.  
  2385.     }
  2386.     activated    {[[.main currentObj] browsUiObj] activateObject}
  2387.     }
  2388. }
  2389.  
  2390. registerObject {
  2391.     type    CustMenuPushButton
  2392.     name    .version.menu.deactivate
  2393.     scope    {*}
  2394.     visible    {0 1 0 0 0}
  2395.     objSpec {
  2396.     hintText    "Moves the selected configuration to the background."
  2397.     label        "Deactivate"
  2398.     mnemonic    t
  2399.     checkOn        selectionChange
  2400.     selCount    1
  2401.     selIsATypes    {ConfigVersion}
  2402.     enableScript    {
  2403.  
  2404.     %this sensitive [BrowserProcs::statusObjectsAre "frozen"]
  2405.  
  2406.     }
  2407.     activated    {[[.main currentObj] browsUiObj] deactivateObject}
  2408.     }
  2409. }
  2410.  
  2411. registerObject {
  2412.     type    CustMenuPushButton
  2413.     name    .version.menu.deactivate
  2414.     scope    {* * * system}
  2415.     objSpec {
  2416.     hintText    "Deactivates corporate groups."
  2417.     label        "Deactivate..."
  2418.     mnemonic    t
  2419.     checkOn        levelChange
  2420.     enableScript    {
  2421.  
  2422.     if {! [BrowserProcs::currentObjIsA SystemVersion]} {
  2423.         %this sensitive 0
  2424.         return
  2425.     }
  2426.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2427.         %this sensitive 0
  2428.         return
  2429.     }
  2430.     %this sensitive 1
  2431.  
  2432.     }
  2433.     activated    {[[.main currentObj] browsUiObj] deactivateObject}
  2434.     }
  2435. }
  2436.  
  2437. registerObject {
  2438.     type    CustMenuSeparator
  2439.     name    .version.menu.separator1
  2440.     scope    {* * * document}
  2441.     visible    {0 0 0 0 1}
  2442. }
  2443.  
  2444. registerObject {
  2445.     type    CustMenuPushButton
  2446.     name    .version.menu.makefixed
  2447.     scope    {* * * document}
  2448.     visible    {0 0 0 0 1}
  2449.     objSpec {
  2450.     hintText    "Binds a section to the current version of the corresponding file."
  2451.     label        "Make Fixed"
  2452.     mnemonic    F
  2453.     checkOn        selectionChange
  2454.     selCount    many
  2455.     selIsATypes    {SystemFileReference FilepropSection}
  2456.     enableScript    {
  2457.  
  2458.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  2459.         %this sensitive 0
  2460.         return
  2461.     }
  2462.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2463.         %this sensitive 0
  2464.         return
  2465.     }
  2466.     %this sensitive [BrowserProcs::statusObjectsAre "selected"]
  2467.  
  2468.     }
  2469.     activated    {[[.main currentObj] browsUiObj] changeObjects "fixed"}
  2470.     }
  2471. }
  2472.  
  2473. registerObject {
  2474.     type    CustMenuPushButton
  2475.     name    .version.menu.selectfixed
  2476.     scope    {* * * document}
  2477.     visible    {0 0 0 0 1}
  2478.     objSpec {
  2479.     hintText    "Binds a section to a selected version of the corresponding file."
  2480.     label        "Select Fixed..."
  2481.     mnemonic    l
  2482.     checkOn        selectionChange
  2483.     selCount    1
  2484.     selIsATypes    {SystemFileReference FilepropSection}
  2485.     enableScript    {
  2486.  
  2487.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  2488.         %this sensitive 0
  2489.         return
  2490.     }
  2491.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2492.         %this sensitive 0
  2493.         return
  2494.     }
  2495.     %this sensitive 1
  2496.  
  2497.     }
  2498.     activated    {[lindex [.main selectedObjSet] 0] selectFixed}
  2499.     }
  2500. }
  2501.  
  2502. registerObject {
  2503.     type    CustMenuPushButton
  2504.     name    .version.menu.makeselected
  2505.     scope    {* * * document}
  2506.     visible    {0 0 0 0 1}
  2507.     objSpec {
  2508.     hintText    "Lets the section follow the selected version of the corresponding file."
  2509.     label        "Make Selected"
  2510.     mnemonic    M
  2511.     checkOn        selectionChange
  2512.     selCount    many
  2513.     selIsATypes    {SystemFileReference FilepropSection}
  2514.     enableScript    {
  2515.  
  2516.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  2517.         %this sensitive 0
  2518.         return
  2519.     }
  2520.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2521.         %this sensitive 0
  2522.         return
  2523.     }
  2524.     %this sensitive [BrowserProcs::statusObjectsAre "fixed"]
  2525.  
  2526.     }
  2527.     activated    {
  2528.  
  2529.     [[.main currentObj] browsUiObj] changeObjects "selected"
  2530.  
  2531.     }
  2532.     }
  2533. }
  2534.  
  2535. registerObject {
  2536.     type    CustMenuPushButton
  2537.     name    .version.menu.makecurrent
  2538.     scope    {* * * document}
  2539.     visible    {0 0 0 0 1}
  2540.     objSpec {
  2541.     hintText    "Lets the section follow the corresponding properties."
  2542.     label        "Make Current"
  2543.     mnemonic    e
  2544.     checkOn        selectionChange
  2545.     selCount    many
  2546.     selIsATypes    {ItempropSection}
  2547.     enableScript    {
  2548.  
  2549.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  2550.         %this sensitive 0
  2551.         return
  2552.     }
  2553.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2554.         %this sensitive 0
  2555.         return
  2556.     }
  2557.     %this sensitive [BrowserProcs::statusObjectsAre "snapshot"]
  2558.  
  2559.     }
  2560.     activated    {
  2561.  
  2562.     [[.main currentObj] browsUiObj] changeObjects "current"
  2563.  
  2564.     }
  2565.     }
  2566. }
  2567.  
  2568. registerObject {
  2569.     type    CustMenuPushButton
  2570.     name    .version.menu.makesnapshot
  2571.     scope    {* * * document}
  2572.     visible    {0 0 0 0 1}
  2573.     objSpec {
  2574.     hintText    "Updates the section by making a snapshot of the corresponding properties."
  2575.     label        "Make Snapshot"
  2576.     mnemonic    a
  2577.     checkOn        selectionChange
  2578.     selCount    many
  2579.     selIsATypes    {ItempropSection}
  2580.     enableScript    {
  2581.  
  2582.     if {! [BrowserProcs::currentObjIsA DSysVDbObj]} {
  2583.         %this sensitive 0
  2584.         return
  2585.     }
  2586.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2587.         %this sensitive 0
  2588.         return
  2589.     }
  2590.     %this sensitive [BrowserProcs::statusObjectsAre "current"]
  2591.  
  2592.     }
  2593.     activated    {
  2594.  
  2595.     [[.main currentObj] browsUiObj] changeObjects "snapshot"
  2596.  
  2597.     }
  2598.     }
  2599. }
  2600.  
  2601. registerObject {
  2602.     type    CustMenuSeparator
  2603.     name    .version.menu.separator2
  2604.     scope    {* * * system}
  2605. }
  2606.  
  2607. registerObject {
  2608.     type    CustMenuPushButton
  2609.     name    .version.menu.makecorporate
  2610.     scope    {* * * system}
  2611.     objSpec {
  2612.     hintText    "Makes a corporate group of the selected saved group."
  2613.     label        "Make Corporate..."
  2614.     mnemonic    C
  2615.     checkOn        selectionChange
  2616.     selCount    1
  2617.     selIsATypes    {SavedGroupVersion}
  2618.     enableScript    {
  2619.  
  2620.     %this sensitive \
  2621.         [[lindex [.main selectedObjSet] 0] makeCorporateAllowed]
  2622.  
  2623.     }
  2624.     activated    {[lindex [.main selectedObjSet] 0] makeCorporate}
  2625.     }
  2626. }
  2627.  
  2628. registerObject {
  2629.     type    CustMenuPushButton
  2630.     name    .version.menu.restore
  2631.     scope    {* * * system}
  2632.     objSpec {
  2633.     hintText    "Restores the contents of the selected saved groups."
  2634.     label        "Restore"
  2635.     mnemonic    R
  2636.     checkOn        selectionChange
  2637.     selCount    many
  2638.     selIsATypes    {SavedGroupVersion}
  2639.     enableScript    {
  2640.  
  2641.     set sysV [[[.main currentObj] browsUiObj] getParent SystemVersion]
  2642.     if {"[$sysV getInfo Status]" != "working"} {
  2643.         %this sensitive 0
  2644.     } else {
  2645.         %this sensitive 1
  2646.     }
  2647.  
  2648.     }
  2649.     activated    {[[.main currentObj] browsUiObj] restoreObjects}
  2650.     }
  2651. }
  2652.  
  2653. registerObject {
  2654.     type    CustMenuPushButton
  2655.     name    .version.menu.snapshot
  2656.     scope    {* * * system}
  2657.     objSpec {
  2658.     hintText    "Makes a saved group of the selected groups."
  2659.     label        "Snapshot..."
  2660.     mnemonic    h
  2661.     toolBarPixmap    sgroupv_16
  2662.     checkOn        selectionChange
  2663.     selCount    many
  2664.     selIsATypes    {GroupVersion}
  2665.     enableScript    {
  2666.  
  2667.     %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  2668.  
  2669.     }
  2670.     activated    {[[.main currentObj] browsUiObj] snapshotObjects}
  2671.     }
  2672. }
  2673.  
  2674. registerObject {
  2675.     type    CustMenuBarButton
  2676.     name    .security
  2677.     objSpec {
  2678.     label        Security
  2679.     mnemonic    S
  2680.     }
  2681. }
  2682.  
  2683. registerObject {
  2684.     type    CustMenu
  2685.     name    .security.menu
  2686.     objSpec {
  2687.     pinnable    1
  2688.     }
  2689. }
  2690.  
  2691. registerObject {
  2692.     type    CustMenuPushButton
  2693.     name    .security.menu.activaterole
  2694.     objSpec {
  2695.     hintText    "Activates roles."
  2696.     label        "Activate Role..."
  2697.     mnemonic    A
  2698.     checkOn        levelChange
  2699.     enableScript    {
  2700.  
  2701.     %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  2702.  
  2703.     }
  2704.     activated    {BrowserProcs::activateRole}
  2705.     }
  2706. }
  2707.  
  2708. registerObject {
  2709.     type    CustMenuPushButton
  2710.     name    .security.menu.deactivaterole
  2711.     objSpec {
  2712.     hintText    "Deactivates roles."
  2713.     label        "Deactivate Role..."
  2714.     mnemonic    D
  2715.     checkOn        levelChange
  2716.     enableScript    {
  2717.  
  2718.     %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  2719.  
  2720.     }
  2721.     activated    {BrowserProcs::deactivateRole}
  2722.     }
  2723. }
  2724.  
  2725. registerObject {
  2726.     type    CustMenuPushButton
  2727.     name    .security.menu.showaccessrights
  2728.     inToolBar    1
  2729.     objSpec {
  2730.     hintText    "Shows access rights of the selected objects."
  2731.     label        "Show Access Rights"
  2732.     mnemonic    S
  2733.     toolBarPixmap    right_16
  2734.     checkOn        selectionChange
  2735.     enableScript    {
  2736.  
  2737.     if [lempty [.main selectedObjSet]] {
  2738.         %this sensitive 1
  2739.         return
  2740.     }
  2741.     %this sensitive [BrowserProcs::objectsAre Controlled]
  2742.  
  2743.     }
  2744.     activated    {BrowserProcs::showAccessRights}
  2745.     }
  2746. }
  2747.  
  2748. registerObject {
  2749.     type    CustCascadeButton
  2750.     name    .security.menu.rolerights
  2751.     objSpec {
  2752.     hintText    "Contains commands for edit and show role rights. "
  2753.     label        "Role Rights"
  2754.     mnemonic    R
  2755.     }
  2756. }
  2757.  
  2758. registerObject {
  2759.     type    CustMenu
  2760.     name    .security.menu.rolerights.menu
  2761.     objSpec {
  2762.     pinnable    0
  2763.     }
  2764. }
  2765.  
  2766. registerObject {
  2767.     type    CustMenuPushButton
  2768.     name    .security.menu.rolerights.menu.edit
  2769.     objSpec {
  2770.     hintText    "Edits role rights of the selected objects."
  2771.     label        "Edit..."
  2772.     mnemonic    E
  2773.     checkOn        selectionChange
  2774.     enableScript    {
  2775.  
  2776.     if [lempty [.main selectedObjSet]] {
  2777.         %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  2778.         return
  2779.     }
  2780.     %this sensitive [BrowserProcs::objectsAre Controlled]
  2781.  
  2782.     }
  2783.     activated    {BrowserProcs::editRoleRights}
  2784.     }
  2785. }
  2786.  
  2787. registerObject {
  2788.     type    CustMenuPushButton
  2789.     name    .security.menu.rolerights.menu.show
  2790.     objSpec {
  2791.     hintText    "Shows role rights of the selected objects."
  2792.     label        "Show..."
  2793.     mnemonic    S
  2794.     checkOn        selectionChange
  2795.     enableScript    {
  2796.  
  2797.     if [lempty [.main selectedObjSet]] {
  2798.         %this sensitive [BrowserProcs::currentObjIsA BrowsUiObj]
  2799.         return
  2800.     }
  2801.     %this sensitive [BrowserProcs::objectsAre Controlled]
  2802.  
  2803.     }
  2804.     activated    {BrowserProcs::showRoleRights}
  2805.     }
  2806. }
  2807.  
  2808.  
  2809.  
  2810. registerObject {
  2811.     type    CustMenuBarButton
  2812.     name    .utilities
  2813.     objSpec {
  2814.     label        Utilities
  2815.     mnemonic    U
  2816.     }
  2817. }
  2818.  
  2819. registerObject {
  2820.     type    CustMenu
  2821.     name    .utilities.menu
  2822.     objSpec {
  2823.     pinnable    1
  2824.     }
  2825. }
  2826.  
  2827. registerObject {
  2828.     type    CustMenuPushButton
  2829.     name    .utilities.menu.clone
  2830.     objSpec {
  2831.     hintText    "Starts a new browser in the current environment."
  2832.     label        "Clone"
  2833.     mnemonic    l
  2834.     activated    {BrowserProcs::clone}
  2835.     }
  2836. }
  2837.  
  2838. registerObject {
  2839.     type    CustMenuPushButton
  2840.     name    .utilities.menu.classbrowser
  2841.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  2842.     objSpec {
  2843.     hintText    "Starts the class browser."
  2844.     label        "Class Browser"
  2845.     mnemonic    B
  2846.     checkOn        levelChange
  2847.     enableScript    {
  2848.  
  2849.     set phaseV [[ClientContext::global] currentPhase]
  2850.     if {"[$phaseV getInfo Status]" == "backGround"} {
  2851.         %this sensitive 0
  2852.         return
  2853.     }
  2854.     %this sensitive 1
  2855.  
  2856.     }
  2857.     activated    {
  2858.  
  2859.     set script \
  2860.         "SystemUtilities::fork otk clbrowser -c [list [get_comm_name]]"
  2861.     .main startCommand tcl \
  2862.         "$script" "" \
  2863.         "Starting Class Browser" {0 0} 1
  2864.  
  2865.     }
  2866.     }
  2867. }
  2868.  
  2869. registerObject {
  2870.     type    CustMenuPushButton
  2871.     name    .utilities.menu.monitoringwindow
  2872.     objSpec {
  2873.     hintText    "Starts a command in an output only device."
  2874.     label        "Monitoring Window..."
  2875.     mnemonic    M
  2876.     activated    {.main startExetool mtool}
  2877.     }
  2878. }
  2879.  
  2880. registerObject {
  2881.     type    CustMenuPushButton
  2882.     name    .utilities.menu.executionwindow
  2883.     objSpec {
  2884.     hintText    "Starts a command in an interactive device."
  2885.     label        "Execution Window..."
  2886.     mnemonic    x
  2887.     activated    {.main startExetool xtool}
  2888.     }
  2889. }
  2890.  
  2891. registerObject {
  2892.     type    CustMenuSeparator
  2893.     name    .utilities.menu.separator1
  2894.     visible    {0 0 0 1 1}
  2895. }
  2896.  
  2897. registerObject {
  2898.     type    CustMenuPushButton
  2899.     name    .utilities.menu.movedefinition
  2900.     scope    {* * * system}
  2901.     objSpec {
  2902.     hintText    "Moves the selected items to another system."
  2903.     label        "Move Definition..."
  2904.     mnemonic    D
  2905.     checkOn        selectionChange
  2906.     selCount    many
  2907.     selIsATypes    {WorkItem}
  2908.     enableScript    {
  2909.  
  2910.     if {! [BrowserProcs::currentObjIsA WItemUiObj]} {
  2911.         %this sensitive 0
  2912.         return
  2913.     }
  2914.     %this sensitive [BrowserProcs::objectsReturn canBeMoved]
  2915.  
  2916.     }
  2917.     activated    {[[.main currentObj] browsUiObj] moveDefinition}
  2918.     }
  2919. }
  2920.  
  2921. registerObject {
  2922.     type    CustMenuPushButton
  2923.     name    .utilities.menu.deleteunreferenceditems
  2924.     visible    {0 0 0 1 1}
  2925.     objSpec {
  2926.     hintText    "Deletes all work items without a reference in the selected objects."
  2927.     label        "Delete Unreferenced Items"
  2928.     mnemonic    U
  2929.     checkOn        selectionChange
  2930.     selCount    many
  2931.     selIsATypes    {Graph Matrix SystemVersion}
  2932.     enableScript    {
  2933.  
  2934.     %this sensitive [BrowserProcs::statusObjectsAreNot "backGround"]
  2935.  
  2936.     }
  2937.     activated    {
  2938.  
  2939.     busy {
  2940.         foreach obj [.main selectedObjSet] {
  2941.         $obj removeUnusedDeclarations
  2942.         }
  2943.     }
  2944.  
  2945.     }
  2946.     }
  2947. }
  2948.  
  2949. registerObject {
  2950.     type    CustCascadeButton
  2951.     name    .utilities.menu.importfrompreviousphase
  2952.     scope    {* * {SystemDesign ObjectDesign Implementation}}
  2953.     visible    {0 0 0 1 0}
  2954.     objSpec {
  2955.     hintText    "Contains commands to import from previous phase."
  2956.     label        "Import From Previous Phase"
  2957.     mnemonic    I
  2958.     }
  2959. }
  2960.  
  2961. registerObject {
  2962.     type    CustMenu
  2963.     name    .utilities.menu.importfrompreviousphase.menu
  2964.     scope    {* * {SystemDesign ObjectDesign Implementation}}
  2965.     visible    {0 0 0 1 0}
  2966.     objSpec {
  2967.     pinnable    0
  2968.     }
  2969. }
  2970.  
  2971. registerObject {
  2972.     type    CustMenuPushButton
  2973.     name    .utilities.menu.importfrompreviousphase.menu.newsystems
  2974.     scope    {* * {SystemDesign ObjectDesign Implementation}}
  2975.     visible    {0 0 0 1 0}
  2976.     objSpec {
  2977.     hintText    "Imports new systems from previous phase."
  2978.     label        "New Systems"
  2979.     mnemonic    N
  2980.     checkOn        levelChange
  2981.     enableScript    {
  2982.  
  2983.     if {! [BrowserProcs::currentObjIsA PhaseVersion]} {
  2984.         %this sensitive 0
  2985.         return
  2986.     }
  2987.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  2988.         %this sensitive 0
  2989.         return
  2990.     }
  2991.     %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  2992.  
  2993.     }
  2994.     activated    {
  2995.  
  2996.     [[.main currentObj] browsUiObj] importFromPrevPhase new
  2997.  
  2998.     }
  2999.     }
  3000. }
  3001.  
  3002. registerObject {
  3003.     type    CustMenuPushButton
  3004.     name    .utilities.menu.importfrompreviousphase.menu.specificsystems
  3005.     scope    {* * {SystemDesign ObjectDesign Implementation}}
  3006.     visible    {0 0 0 1 0}
  3007.     objSpec {
  3008.     hintText    "Imports selected systems from previous phase."
  3009.     label        "Specific Systems..."
  3010.     mnemonic    S
  3011.     checkOn        levelChange
  3012.     enableScript    {
  3013.  
  3014.     if {! [BrowserProcs::currentObjIsA PhaseVersion]} {
  3015.         %this sensitive 0
  3016.         return
  3017.     }
  3018.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  3019.         %this sensitive 0
  3020.         return
  3021.     }
  3022.     %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3023.  
  3024.     }
  3025.     activated    {
  3026.  
  3027.     [[.main currentObj] browsUiObj] importFromPrevPhase specific
  3028.  
  3029.     }
  3030.     }
  3031. }
  3032.  
  3033. registerObject {
  3034.     type    CustCascadeButton
  3035.     name    .utilities.menu.importfrompreviousphase
  3036.     scope    {* * {SystemDesign ObjectDesign Implementation} system}
  3037.     objSpec {
  3038.     hintText    "Contains commands to import from previous phase."
  3039.     label        "Import From Previous Phase"
  3040.     mnemonic    I
  3041.     }
  3042. }
  3043.  
  3044. registerObject {
  3045.     type    CustMenu
  3046.     name    .utilities.menu.importfrompreviousphase.menu
  3047.     scope    {* * {SystemDesign ObjectDesign Implementation} system}
  3048.     objSpec {
  3049.     pinnable    0
  3050.     }
  3051. }
  3052.  
  3053.  
  3054. registerObject {
  3055.     type    CustMenuPushButton
  3056.     name    .utilities.menu.importfrompreviousphase.menu.new
  3057.     scope    {* * {SystemDesign ObjectDesign Implementation} system}
  3058.     objSpec {
  3059.     hintText    "Imports new objects from previous phase."
  3060.     label        "New..."
  3061.     mnemonic    N
  3062.     checkOn        levelChange
  3063.     enableScript    {
  3064.  
  3065.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  3066.         %this sensitive 0
  3067.         return
  3068.     }
  3069.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  3070.         %this sensitive 0
  3071.         return
  3072.     }
  3073.     %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3074.  
  3075.     }
  3076.     activated    {
  3077.  
  3078.     set cc [ClientContext::global]
  3079.     if {[[[$cc currentPhase] phase] type] == "Implementation"} {
  3080.  
  3081.     set options "-S oopl -f import.tcl"
  3082.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] $options"
  3083.     .main startCommand mtool \
  3084.         "$script" "" "Starting 'Import From Previous Phase'..." {1 0} 0
  3085.  
  3086.     } else {
  3087.  
  3088.     [[.main currentObj] browsUiObj] importFromPrevPhase new
  3089.  
  3090.     }
  3091.  
  3092.     }
  3093.     }
  3094. }
  3095.  
  3096.  
  3097. registerObject {
  3098.     type    CustMenuPushButton
  3099.     name    .utilities.menu.importfrompreviousphase.menu.selected
  3100.     scope    {* * {SystemDesign ObjectDesign} system}
  3101.     objSpec {
  3102.     hintText    "Imports selected objects from previous phase."
  3103.     label        "Selected..."
  3104.     mnemonic    S
  3105.     checkOn        selectionChange
  3106.     selCount    many
  3107.     selIsATypes    {FileVersion SystemFileReference}
  3108.     enableScript    {
  3109.  
  3110.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  3111.         %this sensitive 0
  3112.         return
  3113.     }
  3114.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  3115.         %this sensitive 0
  3116.         return
  3117.     }
  3118.     %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3119.  
  3120.     }
  3121.     activated    {
  3122.  
  3123.     [[.main currentObj] browsUiObj] importFromPrevPhase selected
  3124.  
  3125.     }
  3126.     }
  3127. }
  3128.  
  3129. registerObject {
  3130.     type    CustMenuPushButton
  3131.     name    .utilities.menu.importfrompreviousphase.menu.selected
  3132.     scope    {* * Implementation system}
  3133.     objSpec {
  3134.     hintText    "Imports selected objects from previous phase."
  3135.     label        "Selected"
  3136.     mnemonic    S
  3137.     checkOn        selectionChange
  3138.     selCount    many
  3139.     selIsATypes    {FileVersion SystemFileReference}
  3140.     enableScript    {
  3141.  
  3142.     if {! [BrowserProcs::currentObjIsA SSysVDbObj]} {
  3143.         %this sensitive 0
  3144.         return
  3145.     }
  3146.     if {[[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  3147.         %this sensitive 0
  3148.         return
  3149.     }
  3150.     %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3151.  
  3152.     }
  3153.     activated    {
  3154.  
  3155.     [[.main currentObj] browsUiObj] importFromPrevPhase selected
  3156.  
  3157.     }
  3158.     }
  3159. }
  3160.  
  3161. registerObject {
  3162.     type    CustMenuPushButton
  3163.     name    .utilities.menu.comparewithpreviousphase
  3164.     scope    {* * {SystemDesign ObjectDesign}}
  3165.     visible    {0 0 0 1 0}
  3166.     objSpec {
  3167.     hintText    "Compares selected object with object in previous phase."
  3168.     label        "Compare With Previous Phase..."
  3169.     mnemonic    C
  3170.     checkOn        levelChange
  3171.     enableScript    {
  3172.  
  3173.     if {(! [BrowserProcs::currentObjIsA PhaseVersion]) ||
  3174.         [[[.main currentObj] browsUiObj] getInfo Status] == "backGround"} {
  3175.         %this sensitive 0
  3176.     } else {
  3177.         %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3178.     }
  3179.  
  3180.     }
  3181.     activated    {[[.main currentObj] browsUiObj] compareWithPrevPhase}
  3182.     }
  3183. }
  3184.  
  3185. registerObject {
  3186.     type    CustMenuPushButton
  3187.     name    .utilities.menu.comparewithpreviousphase
  3188.     scope    {* * {SystemDesign ObjectDesign} system}
  3189.     objSpec {
  3190.     hintText    "Compares selected object with object in previous phase."
  3191.     label        "Compare With Previous Phase..."
  3192.     mnemonic    C
  3193.     checkOn        levelChange
  3194.     enableScript    {
  3195.  
  3196.     if {(! [BrowserProcs::currentObjIsA SSysVDbObj]) ||
  3197.         [[[.main currentObj] browsUiObj] getInfo Status] == "backGround"} {
  3198.         %this sensitive 0
  3199.     } else {
  3200.         %this sensitive [[[.main currentObj] browsUiObj] prevPhaseExists]
  3201.     }
  3202.  
  3203.     }
  3204.     activated    {[[.main currentObj] browsUiObj] compareWithPrevPhase}
  3205.     }
  3206. }
  3207.  
  3208.  
  3209. registerObject {
  3210.     type    CustMenuPushButton
  3211.     name    .utilities.menu.objectload
  3212.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3213.     objSpec {
  3214.     hintText    "ObjectLoad for GroundWorks."
  3215.     label        "ObjectLoad..."
  3216.     mnemonic    O
  3217.     checkOn        levelChange
  3218.     enableScript    {
  3219.  
  3220.     if {! [BrowserProcs::currentObjIsA SSysVDbObj] ||
  3221.         [[[.main currentObj] browsUiObj] getInfo Status] != "working"} {
  3222.         %this sensitive 0
  3223.     } else {
  3224.         %this sensitive 1
  3225.     }
  3226.  
  3227.     }
  3228.     activated    {
  3229.  
  3230.         [[.main currentObj] browsUiObj] reverseEngineer "var" "VAR" "\[Vv]\[Aa]\[Rr]"
  3231.  
  3232.     }
  3233.     }
  3234. }
  3235.  
  3236. registerObject {
  3237.     type    CustCascadeButton
  3238.     name    .utilities.menu.reports
  3239.     objSpec {
  3240.     hintText    "Contains commands for generating reports."
  3241.     label        Reports
  3242.     mnemonic    R
  3243.     }
  3244. }
  3245.  
  3246. registerObject {
  3247.     type    CustMenu
  3248.     name    .utilities.menu.reports.menu
  3249.     objSpec {
  3250.     pinnable    1
  3251.     }
  3252. }
  3253.  
  3254. registerObject {
  3255.     type    CustMenuPushButton
  3256.     name    .utilities.menu.reports.menu.oncorporategroups
  3257.     visible    {1 0 0 0 0}
  3258.     objSpec {
  3259.     hintText    "Generates a report on corporate groups."
  3260.     label        "On Corporate Groups"
  3261.     mnemonic    o
  3262.     activated    { startReportInMtool crpgrp.tcl [%this label] }
  3263.     }
  3264. }
  3265.  
  3266. registerObject {
  3267.     type    CustMenuPushButton
  3268.     name    .utilities.menu.reports.menu.onprojects
  3269.     visible    {1 0 0 0 0}
  3270.     objSpec {
  3271.     hintText    "Generates a report on projects."
  3272.     label        "On Projects"
  3273.     mnemonic    P
  3274.     activated    { startReportInMtool projects.tcl [%this label] }
  3275.     }
  3276. }
  3277.  
  3278. registerObject {
  3279.     type    CustMenuPushButton
  3280.     name    .utilities.menu.reports.menu.onphases
  3281.     visible    {1 1 1 0 0}
  3282.     objSpec {
  3283.     hintText    "Generates a report on phases."
  3284.     label        "On Phases"
  3285.     mnemonic    h
  3286.     activated    { startReportInMtool phases.tcl [%this label] }
  3287.     }
  3288. }
  3289.  
  3290. registerObject {
  3291.     type    CustMenuPushButton
  3292.     name    .utilities.menu.reports.menu.onsystems
  3293.     visible    {1 1 1 1 0}
  3294.     objSpec {
  3295.     hintText    "Generates a report on systems."
  3296.     label        "On Systems"
  3297.     mnemonic    y
  3298.     activated    { startReportInMtool systems.tcl [%this label] }
  3299.     }
  3300. }
  3301.  
  3302. registerObject {
  3303.     type    CustMenuPushButton
  3304.     name    .utilities.menu.reports.menu.ondocuments
  3305.     visible    {1 1 1 1 0}
  3306.     objSpec {
  3307.     hintText    "Generates a report on documents."
  3308.     label        "On Documents"
  3309.     mnemonic    D
  3310.     activated    { startReportInMtool documents.tcl [%this label] }
  3311.     }
  3312. }
  3313.  
  3314. registerObject {
  3315.     type    CustMenuPushButton
  3316.     name    .utilities.menu.reports.menu.onsavedgroups
  3317.     visible    {1 1 1 1 0}
  3318.     objSpec {
  3319.     hintText    "Generates a report on saved groups."
  3320.     label        "On Saved Groups"
  3321.     mnemonic    a
  3322.     activated    { startReportInMtool svdgrp.tcl [%this label] }
  3323.     }
  3324. }
  3325.  
  3326. registerObject {
  3327.     type    CustMenuPushButton
  3328.     name    .utilities.menu.reports.menu.onsavedgroups
  3329.     scope    {* * * system}
  3330.     objSpec {
  3331.     hintText    "Generates a report on saved groups."
  3332.     label        "On Saved Groups"
  3333.     mnemonic    a
  3334.     activated    { startReportInMtool svdgrp.tcl [%this label] }
  3335.     }
  3336. }
  3337.  
  3338. registerObject {
  3339.     type    CustMenuPushButton
  3340.     name    .utilities.menu.reports.menu.ongroups
  3341.     visible    {1 1 1 1 0}
  3342.     objSpec {
  3343.     hintText    "Generates a report on groups."
  3344.     label        "On Groups"
  3345.     mnemonic    G
  3346.     activated    { startReportInMtool groups.tcl [%this label] }
  3347.     }
  3348. }
  3349.  
  3350. registerObject {
  3351.     type    CustMenuPushButton
  3352.     name    .utilities.menu.reports.menu.ongroups
  3353.     scope    {* * * system}
  3354.     objSpec {
  3355.     hintText    "Generates a report on groups."
  3356.     label        "On Groups"
  3357.     mnemonic    G
  3358.     activated    { startReportInMtool groups.tcl [%this label] }
  3359.     }
  3360. }
  3361.  
  3362. registerObject {
  3363.     type    CustMenuPushButton
  3364.     name    .utilities.menu.reports.menu.onfiles
  3365.     objSpec {
  3366.     hintText    "Generates a report on files."
  3367.     label        "On Files"
  3368.     mnemonic    i
  3369.     activated    { startReportInMtool files.tcl [%this label] }
  3370.     }
  3371. }
  3372.  
  3373. registerObject {
  3374.     type    CustMenuPushButton
  3375.     name    .utilities.menu.reports.menu.oncdms
  3376.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3377.     visible    {0 0 0 1 0}
  3378.     objSpec {
  3379.     hintText    "Generates a report on cdms."
  3380.     label        "On Cdms"
  3381.     mnemonic    m
  3382.     activated    { startReportInMtool referredin.tcl [%this label] }
  3383.     }
  3384. }
  3385.  
  3386. registerObject {
  3387.     type    CustMenuPushButton
  3388.     name    .utilities.menu.reports.menu.oncdms
  3389.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3390.     objSpec {
  3391.     hintText    "Generates a report on cdms."
  3392.     label        "On Cdms"
  3393.     mnemonic    m
  3394.     activated    { startReportInMtool referredin.tcl [%this label] }
  3395.     }
  3396. }
  3397.  
  3398. registerObject {
  3399.     type    CustMenuPushButton
  3400.     name    .utilities.menu.reports.menu.onunreferencedcdms
  3401.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3402.     visible    {0 0 0 1 0}
  3403.     objSpec {
  3404.     hintText    "Generates a report on unreferenced cdms."
  3405.     label        "On Unreferenced Cdms"
  3406.     mnemonic    U
  3407.     activated    { startReportInMtool unrefd_cdms.tcl [%this label] }
  3408.     }
  3409. }
  3410.  
  3411. registerObject {
  3412.     type    CustMenuPushButton
  3413.     name    .utilities.menu.reports.menu.onunreferencedcdms
  3414.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3415.     objSpec {
  3416.     hintText    "Generates a report on unreferenced cdms."
  3417.     label        "On Unreferenced Cdms"
  3418.     mnemonic    U
  3419.     activated    { startReportInMtool unrefd_cdms.tcl [%this label] }
  3420.     }
  3421. }
  3422.  
  3423. registerObject {
  3424.     type    CustMenuPushButton
  3425.     name    .utilities.menu.reports.menu.onitemsandproperties
  3426.     objSpec {
  3427.     hintText    "Generates a report on items and their properties."
  3428.     label        "On Items And Properties..."
  3429.     mnemonic    t
  3430.     activated    {
  3431.  
  3432.     set box .main.propertyNames
  3433.     EntryDialog new $box \
  3434.         -modal yes \
  3435.         -title "Report Options" \
  3436.         -message "Property Name(s):" \
  3437.         -helpPressed {.main helpOnName propertyNames} \
  3438.         -cancelPressed {.main.propertyNames delete} \
  3439.         -okPressed {
  3440.         set opts [.main.propertyNames entry]
  3441.         if {$opts != ""} {
  3442.             set opts "-o $opts"
  3443.         }
  3444.         set msg "On Items And Properties"
  3445.         startReportInMtool "items.tcl $opts" $msg
  3446.         .main.propertyNames delete
  3447.         }
  3448.     $box popUp
  3449.  
  3450.     }
  3451.     }
  3452. }
  3453.  
  3454. registerObject {
  3455.     type    CustMenuPushButton
  3456.     name    .utilities.menu.reports.menu.oncomponentsandproperties
  3457.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3458.     objSpec {
  3459.     hintText    "Generates a report on components and their properties."
  3460.     label        "On Components And Properties..."
  3461.     mnemonic    p
  3462.     activated    {
  3463.  
  3464.     set box .main.propertyNames
  3465.     EntryDialog new $box \
  3466.         -modal yes \
  3467.         -title "Report Options" \
  3468.         -message "Property Name(s):" \
  3469.         -helpPressed {.main helpOnName propertyNames} \
  3470.         -cancelPressed {.main.propertyNames delete} \
  3471.         -okPressed {
  3472.         set opts [.main.propertyNames entry]
  3473.         if {$opts != ""} {
  3474.             set opts "-o $opts"
  3475.         }
  3476.         set msg "On Components And Properties"
  3477.         startReportInMtool "components.tcl $opts" $msg
  3478.         .main.propertyNames delete
  3479.         }
  3480.     $box popUp
  3481.  
  3482.     }
  3483.     }
  3484. }
  3485.  
  3486.  
  3487. registerObject {
  3488.     type    CustMenuPushButton
  3489.     name    .utilities.menu.reports.menu.onclasses
  3490.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3491.     visible    {0 0 0 1 0}
  3492.     objSpec {
  3493.     hintText    "Generates a report on classes."
  3494.     label        "On Classes"
  3495.     mnemonic    l
  3496.     activated    { startReportInMtool classes.tcl [%this label] }
  3497.     }
  3498. }
  3499.  
  3500. registerObject {
  3501.     type    CustMenuPushButton
  3502.     name    .utilities.menu.reports.menu.onclasses
  3503.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3504.     objSpec {
  3505.     hintText    "Generates a report on classes."
  3506.     label        "On Classes"
  3507.     mnemonic    l
  3508.     activated    { startReportInMtool classes.tcl [%this label] }
  3509.     }
  3510. }
  3511.  
  3512.  
  3513. registerObject {
  3514.     type    CustMenuPushButton
  3515.     name    .utilities.menu.reports.menu.onclassgeneralizations
  3516.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3517.     visible    {0 0 0 1 0}
  3518.     objSpec {
  3519.     hintText    "Generates a report on generalizations."
  3520.     label        "On Class Generalizations"
  3521.     mnemonic    e
  3522.     activated    { startReportInMtool class_gens.tcl [%this label] }
  3523.     }
  3524. }
  3525.  
  3526. registerObject {
  3527.     type    CustMenuPushButton
  3528.     name    .utilities.menu.reports.menu.onclassgeneralizations
  3529.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3530.     objSpec {
  3531.     hintText    "Generates a report on generalizations."
  3532.     label        "On Class Generalizations"
  3533.     mnemonic    e
  3534.     activated    { startReportInMtool class_gens.tcl [%this label] }
  3535.     }
  3536. }
  3537.  
  3538. registerObject {
  3539.     type    CustMenuPushButton
  3540.     name    .utilities.menu.reports.menu.onmissingoperations
  3541.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3542.     visible    {0 0 0 1 0}
  3543.     objSpec {
  3544.     hintText    "Generates a report on missing operations."
  3545.     label        "On Missing Operations..."
  3546.     mnemonic    r
  3547.     activated    {
  3548.  
  3549.     require newobjentr.tcl
  3550.     set box .main.classNames
  3551.     NewObjEntryDlg new $box \
  3552.         -modal yes \
  3553.         -title "Report Options" \
  3554.         -message "Class Name(s):" \
  3555.         -helpPressed {.main helpOnName classNames} \
  3556.         -cancelPressed {.main.classNames delete} \
  3557.         -okPressed {
  3558.         set classes [.main.classNames entry]
  3559.         set msg "On Missing Operations"
  3560.         startReportInMtool "oper_missing.tcl -o $classes" $msg
  3561.         .main.classNames delete
  3562.         }
  3563.     $box popUp
  3564.  
  3565.     }
  3566.     }
  3567. }
  3568.  
  3569. registerObject {
  3570.     type    CustMenuPushButton
  3571.     name    .utilities.menu.reports.menu.onmissingoperations
  3572.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3573.     objSpec {
  3574.     hintText    "Generates a report on missing operations."
  3575.     label        "On Missing Operations..."
  3576.     mnemonic    r
  3577.     activated    {
  3578.  
  3579.     require newobjentr.tcl
  3580.     set box .main.classNames
  3581.     NewObjEntryDlg new $box \
  3582.         -modal yes \
  3583.         -title "Report Options" \
  3584.         -message "Class Name(s):" \
  3585.         -helpPressed {.main helpOnName classNames} \
  3586.         -cancelPressed {.main.classNames delete} \
  3587.         -okPressed {
  3588.         set classes [.main.classNames entry]
  3589.         set msg "On Missing Operations"
  3590.         startReportInMtool "oper_missing.tcl -o $classes" $msg
  3591.         .main.classNames delete
  3592.         }
  3593.     $box popUp
  3594.  
  3595.     }
  3596.     }
  3597. }
  3598.  
  3599. registerObject {
  3600.     type    CustMenuPushButton
  3601.     name    .utilities.menu.reports.menu.oncommunications
  3602.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3603.     visible    {0 0 0 1 0}
  3604.     objSpec {
  3605.     hintText    "Generates a report on communications."
  3606.     label        "On Communications"
  3607.     mnemonic    C
  3608.     activated    { startReportInMtool communications.tcl [%this label] }
  3609.     }
  3610. }
  3611.  
  3612. registerObject {
  3613.     type    CustMenuPushButton
  3614.     name    .utilities.menu.reports.menu.oncommunications
  3615.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3616.     objSpec {
  3617.     hintText    "Generates a report on communications."
  3618.     label        "On Communications"
  3619.     mnemonic    C
  3620.     activated    { startReportInMtool communications.tcl [%this label] }
  3621.     }
  3622. }
  3623.  
  3624. registerObject {
  3625.     type    CustMenuPushButton
  3626.     name    .utilities.menu.reports.menu.onevents
  3627.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3628.     visible    {0 0 0 1 0}
  3629.     objSpec {
  3630.     hintText    "Generates a report on events."
  3631.     label        "On Events"
  3632.     mnemonic    v
  3633.     activated    { startReportInMtool events.tcl [%this label] }
  3634.     }
  3635. }
  3636.  
  3637. registerObject {
  3638.     type    CustMenuPushButton
  3639.     name    .utilities.menu.reports.menu.onevents
  3640.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3641.     objSpec {
  3642.     hintText    "Generates a report on events."
  3643.     label        "On Events"
  3644.     mnemonic    v
  3645.     activated    { startReportInMtool events.tcl [%this label] }
  3646.     }
  3647. }
  3648.  
  3649. registerObject {
  3650.     type    CustMenuPushButton
  3651.     name    .utilities.menu.reports.menu.onflows
  3652.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3653.     visible    {0 0 0 1 0}
  3654.     objSpec {
  3655.     hintText    "Generates a report on flows."
  3656.     label        "On Flows"
  3657.     mnemonic    F
  3658.     activated    { startReportInMtool flows.tcl [%this label] }
  3659.     }
  3660. }
  3661.  
  3662. registerObject {
  3663.     type    CustMenuPushButton
  3664.     name    .utilities.menu.reports.menu.onflows
  3665.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3666.     objSpec {
  3667.     hintText    "Generates a report on flows."
  3668.     label        "On Flows"
  3669.     mnemonic    F
  3670.     activated    { startReportInMtool flows.tcl [%this label] }
  3671.     }
  3672. }
  3673.  
  3674. registerObject {
  3675.     type    CustMenuPushButton
  3676.     name    .utilities.menu.reports.menu.onactors
  3677.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3678.     visible    {0 0 0 1 0}
  3679.     objSpec {
  3680.     hintText    "Generates a report on actors."
  3681.     label        "On Actors..."
  3682.     mnemonic    o
  3683.     activated    {
  3684.  
  3685.     set box .main.reportOptions
  3686.     TemplateDialog new $box \
  3687.         -modal yes \
  3688.         -title "Report Options" \
  3689.         -cancelPressed {.main.reportOptions delete} \
  3690.         -okPressed {
  3691.         set opts ""
  3692.         if [.main.reportOptions.top.freeText state] {
  3693.             set opts "-o freeText"
  3694.         }
  3695.         startReportInMtool "actors.tcl $opts" "On Actors"
  3696.         .main.reportOptions delete
  3697.         }
  3698.     interface DlgColumn $box.top {
  3699.         CheckButton freeText {
  3700.         label "Show Free Text"
  3701.         }
  3702.     }
  3703.     $box delHelpButton
  3704.     $box popUp
  3705.  
  3706.     }
  3707.     }
  3708. }
  3709.  
  3710. registerObject {
  3711.     type    CustMenuPushButton
  3712.     name    .utilities.menu.reports.menu.onactors
  3713.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3714.     objSpec {
  3715.     hintText    "Generates a report on actors."
  3716.     label        "On Actors..."
  3717.     mnemonic    o
  3718.     activated    {
  3719.  
  3720.     set box .main.reportOptions
  3721.     TemplateDialog new $box \
  3722.         -modal yes \
  3723.         -title "Report Options" \
  3724.         -cancelPressed {.main.reportOptions delete} \
  3725.         -okPressed {
  3726.         set opts ""
  3727.         if [.main.reportOptions.top.freeText state] {
  3728.             set opts "-o freeText"
  3729.         }
  3730.         startReportInMtool "actors.tcl $opts" "On Actors"
  3731.         .main.reportOptions delete
  3732.         }
  3733.     interface DlgColumn $box.top {
  3734.         CheckButton freeText {
  3735.         label "Show Free Text"
  3736.         }
  3737.     }
  3738.     $box delHelpButton
  3739.     $box popUp
  3740.  
  3741.     }
  3742.     }
  3743. }
  3744.  
  3745. registerObject {
  3746.     type    CustMenuPushButton
  3747.     name    .utilities.menu.reports.menu.onusecases
  3748.     scope    {* * {Analysis SystemDesign ObjectDesign}}
  3749.     visible    {0 0 0 1 0}
  3750.     objSpec {
  3751.     hintText    "Generates a report on use cases."
  3752.     label        "On Use Cases..."
  3753.     mnemonic    s
  3754.     activated    {
  3755.  
  3756.     set box .main.reportOptions
  3757.     TemplateDialog new $box \
  3758.         -modal yes \
  3759.         -title "Report Options" \
  3760.         -cancelPressed {.main.reportOptions delete} \
  3761.         -okPressed {
  3762.         set opts ""
  3763.         if [.main.reportOptions.top.properties state] {
  3764.             append opts "properties"
  3765.         }
  3766.         if [.main.reportOptions.top.decompositions state] {
  3767.             append opts " decompositions"
  3768.         }
  3769.         if {"$opts" != ""} {
  3770.             set opts "-o $opts"
  3771.         }
  3772.         startReportInMtool "usecases.tcl $opts" "On Use Cases"
  3773.         .main.reportOptions delete
  3774.         }
  3775.     interface DlgColumn $box.top {
  3776.         CheckButton properties {
  3777.         label "Show Use Case Properties"
  3778.         }
  3779.         CheckButton decompositions {
  3780.         label "Show Decomposition Information"
  3781.         }
  3782.     }
  3783.     $box delHelpButton
  3784.     $box popUp
  3785.  
  3786.     }
  3787.     }
  3788. }
  3789.  
  3790. registerObject {
  3791.     type    CustMenuPushButton
  3792.     name    .utilities.menu.reports.menu.onusecases
  3793.     scope    {* * {Analysis SystemDesign ObjectDesign} system}
  3794.     objSpec {
  3795.     hintText    "Generates a report on use cases."
  3796.     label        "On Use Cases..."
  3797.     mnemonic    s
  3798.     activated    {
  3799.  
  3800.     set box .main.reportOptions
  3801.     TemplateDialog new $box \
  3802.         -modal yes \
  3803.         -title "Report Options" \
  3804.         -cancelPressed {.main.reportOptions delete} \
  3805.         -okPressed {
  3806.         set opts ""
  3807.         if [.main.reportOptions.top.properties state] {
  3808.             append opts "properties"
  3809.         }
  3810.         if [.main.reportOptions.top.decompositions state] {
  3811.             append opts " decompositions"
  3812.         }
  3813.         if {"$opts" != ""} {
  3814.             set opts "-o $opts"
  3815.         }
  3816.         startReportInMtool "usecases.tcl $opts" "On Use Cases"
  3817.         .main.reportOptions delete
  3818.         }
  3819.     interface DlgColumn $box.top {
  3820.         CheckButton properties {
  3821.         label "Show Use Case Properties"
  3822.         }
  3823.         CheckButton decompositions {
  3824.         label "Show Decomposition Information"
  3825.         }
  3826.     }
  3827.     $box delHelpButton
  3828.     $box popUp
  3829.  
  3830.     }
  3831.     }
  3832. }
  3833.  
  3834. registerObject  {
  3835.     name        .utilities.menu.cmintegrations
  3836.     type        CustCascadeButton
  3837.     visible        {1 1 0 0 0}
  3838.     objSpec        {
  3839.         label        "CM Integrations"
  3840.         mnemonic    I
  3841.         hintText    {Installation of CM integrations}
  3842.     }
  3843. }
  3844.  
  3845. registerObject  {
  3846.     name        .utilities.menu.cmintegrations.menu
  3847.     type        CustMenu
  3848.     visible        {1 1 0 0 0}
  3849. }
  3850.  
  3851. registerObject  {
  3852.     name        .utilities.menu.cmintegrations.menu.clearcase
  3853.     type        CustMenuPushButton
  3854.     visible        {1 1 0 0 0}
  3855.     objSpec        {
  3856.         label        ClearCase...
  3857.         mnemonic    C
  3858.         hintText    {Starts the ClearCase installation program}
  3859.         activated    {
  3860.             wmtkmessage {Starting ClearCase integration setup...}
  3861.             set otk "[quoteIf [m4_path_name bin otk$EXE_EXT]]"
  3862.             set script "[quoteIf [m4_path_name tcl install_cc.tcl]]"
  3863.             system "$otk $script &"
  3864.             wmtkmessage ""
  3865.         }
  3866.     }
  3867. }
  3868.  
  3869.  
  3870. registerObject  {
  3871.     name        .utilities.menu.cmintegrations.menu.continuus
  3872.     type        CustMenuPushButton
  3873.     visible        {1 1 0 0 0}
  3874.     objSpec        {
  3875.         label        Continuus...
  3876.         mnemonic    o
  3877.         hintText    {Starts the Continuus installation program}
  3878.         activated    {
  3879.             wmtkmessage {Starting Continuus integration setup...}
  3880.             set otk "[quoteIf [m4_path_name bin otk$EXE_EXT]]"
  3881.             set script "[quoteIf [m4_path_name tcl install_cont.tcl]]"
  3882.             system "$otk $script &"
  3883.             wmtkmessage ""
  3884.         }
  3885.     }
  3886. }
  3887.  
  3888.  
  3889.  
  3890. registerObject {
  3891.     type    CustMenuSeparator
  3892.     name    .utilities.menu.separator10
  3893.     scope    {* * Implementation}
  3894. }
  3895.  
  3896. registerObject {
  3897.     type    CustMenuPushButton
  3898.     name    .utilities.menu.configuredelphienvironment
  3899.     scope    {* * {ObjectDesign Implementation}}
  3900.     objSpec {
  3901.     label        "Configure Delphi Environment"
  3902.     mnemonic    E
  3903.     checkOn        levelChange
  3904.     enableScript    {
  3905.  
  3906.     set phaseV [[ClientContext::global] currentPhase]
  3907.     if {"[$phaseV getInfo Status]" != "working"} {
  3908.         %this sensitive 0
  3909.         return
  3910.     }
  3911.     %this sensitive 1
  3912.  
  3913.     }
  3914.     activated { startConfigureInXtool config_dp.tcl "Configure Delphi Environment" }
  3915.     }
  3916. }
  3917.  
  3918.  
  3919. registerObject {
  3920.     type    CustMenuPushButton
  3921.     name    .utilities.menu.updateuserenvironment
  3922.     scope    {* * Implementation system}
  3923.     objSpec {
  3924.     hintText    "Synchronizes the file system with the repository."
  3925.     label        "Update User Environment"
  3926.     mnemonic    v
  3927.     activated    {
  3928.  
  3929.     set currentObj [[.main currentObj] browsUiObj]
  3930.     if {! [$currentObj isA PSysVDbObj]} {
  3931.         set currentObj [$currentObj getParent PSysVDbObj]
  3932.     }
  3933.     $currentObj updateUserEnv
  3934.  
  3935.     }
  3936.     }
  3937. }
  3938.  
  3939. registerObject {
  3940.     type    CustMenuBarButton
  3941.     name    .help
  3942.     objSpec {
  3943.     label        Help
  3944.     mnemonic    H
  3945.     helpButton    1
  3946.     }
  3947. }
  3948.  
  3949. registerObject {
  3950.     type    CustMenu
  3951.     name    .help.menu
  3952.     objSpec {
  3953.     pinnable    1
  3954.     }
  3955. }
  3956.  
  3957. registerObject {
  3958.     type    CustMenuPushButton
  3959.     name    .help.menu.whatsthis
  3960.     objSpec {
  3961.     hintText    "Shows context sensitive help."
  3962.     label        "What's This?"
  3963.     mnemonic    W
  3964.     activated    {.main helpOnContext}
  3965.     }
  3966. }
  3967.  
  3968.  
  3969. registerObject {
  3970.     type    CustMenuPushButton
  3971.     name    .help.menu.helptopics
  3972.     objSpec {
  3973.     hintText    "Shows help topics."
  3974.     label        "Help Topics"
  3975.     mnemonic    T
  3976.     activated    {showHelpTopics}
  3977.     }
  3978. }
  3979.  
  3980. registerObject  {
  3981.     name        .help.menu.productdocumentation
  3982.     type        CustMenuPushButton
  3983.     objSpec        {
  3984.         label        {Product Documentation}
  3985.         hintText    {Starts online documentation.}
  3986.         activated    {
  3987.             #CTGENMessage
  3988.             wmtkmessage {Start online documentation ...}
  3989.             #CTGENBusyCursorOn
  3990.             .main busy TRUE
  3991.             #CTGENCommandScript
  3992.             startOnlineDoc 
  3993.             #CTGENEndCommandScript    
  3994.             #CTGENRemoveMessage
  3995.             wmtkmessage ""
  3996.             #CTGENBusyCursorOff
  3997.             .main busy FALSE
  3998.         }
  3999.     }
  4000. }
  4001.  
  4002. registerObject {
  4003.     type    CustMenuPushButton
  4004.     name    .help.menu.aboutbrowser
  4005.     objSpec {
  4006.     hintText    "Shows version information."
  4007.     label        "About Browser"
  4008.     mnemonic    A
  4009.     activated    {showVersionDialog [%this label]}
  4010.     }
  4011. }
  4012.  
  4013.