This is the second in a series of posts on customized menus in JMP 9. The first post provided an overview of what has changed in JMP 9. In this post, I will provide some strategies for administrators who provide customized menus for large groups of JMP users.
If you are an administrator who provided customized menus or toolbars for JMP 8 users, most likely you have a .jmpmenu file containing the customizations that you distributed. As I discussed in my previous post, JMP 9 uses .jmpcust files for customizations, which are different from .jmpmenu files. Your first task in moving these customizations to JMP 9 is get them from the JMP 8 .jmpmenu file into a JMP 9 .jmpcust file. To accomplish this, you have two options:
Use the JMP 9 Menu Editor to manually make the equivalent customizations in JMP 9, or
Have JMP 9 do the conversion for you.
If your customizations are extensive, it may be worthwhile to get JMP to do the conversion, which involves a bit of trickery. The only times JMP 9 will attempt to convert a JMP 8 .jmpmenu file to JMP 9 are 1) the first time JMP 9 runs, and 2) whenever you Revert to Factory Defaults in JMP 9. In both these scenarios, JMP will try to find your JMP 8 customized menu, and if it finds it, you will be given the option to bring it forward. You will need a PC that has both JMP 8 and JMP 9 installed to do this.
One caveat to this: JMP 8 customized menus included features that are no longer directly supported in JMP 9. JMP 8 allowed you to delete built-in JMP menu items (in JMP 9, you hide them instead), and JMP 8 supported embedding entire JSL script files and icon files directly in the .jmpmenu file (in JMP 9, you would use a JMP Add-In instead). If your JMP 8 menu takes advantage of these features, those aspects will not be brought forward.
With that in mind, let’s walk through an example. I have a JMP 8 custom menu file, acme.jmpmenu, that 1) deletes the DOE menu and 2) adds a custom Acme menu that runs some scripts that all JMP users at Acme Inc. need. The first thing I need to do is import acme.jmpmenu into JMP 8, which requires these steps:
(1) Launch JMP 8.
(2) Select Edit > Customize > Revert to Factory Defaults to make sure no other customizations get mixed in. I clicked No when asked whether to merge menus from a previous version of JMP.
(3) Select Edit > Customize > Menus and Toolbars.
(4) Right-click on the Main Menu node in the Menu Editor pane and select Import Menu Archive. Navigate to your .jmpmenu file, select it, and click Open. Click OK on the dialog box that reminds you to click the Apply button.
(5) Click the Apply button and then the X box to close the Menu Editor, clicking Yes to save changes.
Here is the resulting JMP 8 menu, with the red arrow pointing to the missing DOE menu.
After closing JMP 8, I am now ready to have JMP 9 import these changes. Here are the steps:
(1) Launch JMP 9.
(2) Select View > Customize > Revert to Factory Defaults (note that this has moved to the View menu in JMP 9). Click Yes to confirm that you really want to revert.
(3) JMP will detect the presence of a JMP 8 menu customization file and ask whether you want to transfer those customizations. Click Yes.
Here is what JMP 9 looks like after the import:
Notice that the Acme menu came through correctly, but the DOE menu showed back up. The fact that a menu was deleted in JMP 8 cannot be detected by JMP 9. However, I can easily use the new-and-improved Menu Editor in JMP 9 to hide the DOE menu and then save these customizations out to a file that I can distribute to other users. Here are the steps:
(1) Select View > Customize > Menus and Toolbars.
(2) In the left panel, click on DOE.
(3) In the right panel, find the Hidden check box and check it. Notice that DOE in the left panel turns green to indicate that you modified it and displays with a line through it to indicate that it has been hidden. Acme displays in blue because it is an addition to the built-in JMP menu.
(4) Click the Save As… button at the top of the Menu Editor, and in the Save As dialog box that comes up, navigate to where you want the .jmpcust file to be placed, give it a name (I called mine acme.jmpcust), and click Save.
(5) Close the Menu Editor.
At this point, you have what you need: a .jmpcust file containing the customizations you want to distribute to your JMP users. Now, how do you go about distributing them? You have some options:
If you just want to make certain menu customizations available to users on an opt-in basis, you can make the .jmpcust files themselves available on the company intranet or a network share. Users wanting to incorporate one or more of them can simply select File > Open from JMP and open them. When a user does that, the JMP Menu Editor opens and incorporates the customizations contained in the .jmpcust file that they opened, allowing the user to review them and either save or cancel.
If instead you want a certain .jmpcust file to serve as the baseline for some or all JMP users, you can rename the file admincust.jmpcust and use systems management tools to push the file down to a designated location on user machines. For details about using admincust.jmpcust, see the Administrators Get a Customization File section of my previous post.
If you need to distribute JSL scripts, icons, JMP data tables or other files along with your menu customizations, consider creating a JMP Add-In. The JMP Scripting Guide, which you can view by selecting Help > Books > Scripting Guide from within JMP 9, has a section describing how to create JMP Add-Ins. One option that a JMP Add-In gives you is the ability to centrally locate the customization file and all of the associated files on a network share and have users access them from there. That way, you can make changes in one place and all of the users who have installed the add-in will see the updates the next time they run JMP.