JMP ha supportato la personalizzazione del menu principale e delle barre degli strumenti per un po 'di tempo. Tuttavia, il modo in cui è stata implementata la personalizzazione del menu presentava varie lacune, che i nostri utenti ci hanno indicato. In risposta al loro feedback, abbiamo apportato notevoli modifiche alla personalizzazione di menu / toolbar nella versione 7.
In passato, se hai installato una nuova versione di JMP e volevi recuperare le tue personalizzazioni precedenti, avevi due scelte, nessuna delle quali era molto interessante. (1) È possibile indirizzare JMP al vecchio file JMPCMD e comunicare a JMP di applicare quel set di definizioni. Abbastanza sicuro, questo ripristinerebbe l'intero menu principale di JMP per riflettere le vecchie personalizzazioni. Ma nel processo, qualsiasi nuovo menu e / o comandi di JMP scomparirebbe (dato che non erano contenuti nel vecchio file JMPCMD). (2) Si può accedere all'editor di menu e copiare scrupolosamente, uno per uno, i comandi personalizzati contenuti nel vecchio file JMPCMD nel menu principale corrente.
JMP 7 elimina questo dilemma fornendo un nuovo menu unione caratteristica. JMP 7 ti consente di fondersi le personalizzazioni apportate ai menu e alle barre degli strumenti in JMP 6. Infatti, quando avvii JMP 7 per la prima volta, ti chiederà automaticamente di unire le tue personalizzazioni da JMP 6 (se ce ne sono).

(Clicca per ingrandire l'immagine)
Si noti che il processo di unione non cancellerà i nuovi menu di JMP 7, ma semplicemente inserirà nel menu principale di JMP 7 e nelle barre degli strumenti qualsiasi comando, menu e / o barre degli strumenti siano unici per la personalizzazione di JMP 6. Questo è un enorme miglioramento rispetto alle versioni precedenti di JMP, che non supportava alcun tipo di fondersi caratteristica.
Nelle versioni precedenti di JMP, la personalizzazione del menu era un affare "tutto o niente" - se si desidera aggiungere un singolo nuovo comando, diciamo, al menu File, si doveva aggiungere il comando nell'editor di menu e quindi salvarlo in un file JMPCMD. Quel file conteneva la definizione del tuo intero menu principale; quindi, se hai dato quel file JMPCMD a qualcun altro e lo hanno applicato alla loro sessione JMP, questo sostituirà l'intero menu principale.
Tuttavia, con JMP 7 è possibile creare una definizione di un singolo menu (o barra degli strumenti) e un singolo comando, che può quindi essere esportato in un file di archivio con la nuova estensione di file "JMPMENU". Se qualcun altro importa il tuo file JMPMENU, il loro menu principale non verrà sostituito: solo il tuo nuovo comando verrà aggiunto ai loro menu. Quando esporti la definizione del menu, puoi anche specificare se JMP deve preservare o meno il suo contesto in modo che ogni volta che qualcun altro importa il tuo file JMPMENU, il tuo comando verrà inserito nel loro menu principale nella stessa posizione del tuo menu principale.
Forse il più grande svantaggio rispetto al vecchio schema di personalizzazione del menu era il fatto che le definizioni dei menu e gli script JSL su cui dipendevano (se ce ne fossero) erano stati disconnessi. Ciò ha reso estremamente difficile condividere le personalizzazioni del menu con gli altri. Ad esempio, supponi di utilizzare JMP 6 e hai aggiunto un nuovo menu al menu principale chiamato "NTheory" che conteneva due comandi: "Euler Phi" e "Fibonacci", ognuno dei quali era definito per eseguire uno script JSL specifico ogni volta che comando è stato selezionato. Pertanto, il percorso dello script da eseguire era hard-coded nella definizione del comando stesso in ciascun caso. Se volevi condividere il tuo nuovo menu con un amico, non era sufficiente dare loro il tuo file JMPCMD - dovevi anche ricordarti di fornirgli i file JSL da cui dipendevano i comandi. E per peggiorare le cose, anche se hai dato al tuo amico sia il file JMPCMD che i file di script richiesti, era comunque altamente improbabile che il tuo menu funzionasse correttamente per il tuo amico. Per i percorsi delle copie dei file JSL dei tuoi amici quasi sicuramente non corrispondono ai percorsi definiti nel file JMPCMD. Quindi, il tuo amico dovrebbe entrare nell'editor di menu di JMP e correggere i percorsi dei file JSL per ognuno dei tuoi comandi.

(Clicca per ingrandire l'immagine)
Esempio di menu popup personalizzato
JMP 7 elimina tutti questi problemi con il nuovo file JMPMENU. Quando tu Esportare dal menu (o dalla barra degli strumenti o dal comando), viene richiesto se si desidera che JMP archivi i file JSL da cui dipendono i comandi dei menu. Se rispondi affermativamente, gli script JSL associati ai tuoi comandi vengono archiviati nel file JMPMENU insieme alla definizione del tuo menu. E quando il tuo amico importazioni il tuo file JMPMENU, JMP estrae gli script JSL contenuti nell'archivio in una speciale directory "Dipendenze" e JMP modificherà le definizioni dei comandi stessi per puntare ai file JSL che sono stati estratti. Allo stesso modo, se hai associato una bitmap con uno dei tuoi comandi di menu, anche questa verrà archiviata insieme al tuo file JSL ed estratta quando viene importato il file JMPMENU. Quindi tutto ciò di cui il tuo amico ha bisogno è contenuto in un solo file e non è necessario fare nient'altro per far funzionare il comando dopo aver importato il file JMPMENU.
Il file JMPMENU è in realtà un file zip, quindi, se sei curioso di sapere cosa c'è dentro il tuo file di menu, puoi sempre esaminarlo al di fuori di JMP usando uno strumento come WinZip. Per impostazione predefinita, se si esegue il sistema operativo Windows in un locale in lingua inglese, i file JMPMENU vengono archiviati nella directory C: Documents and Settingsuser-nameLocal SettingsApplication DataJMP7 DataEnglish.

(Clicca per ingrandire l'immagine)
Uno sguardo nel file JMPMENU
Ad esempio, sul mio computer, i miei file JMPMENU si trovano in:
C: \ Documents and Settings \ potter \ Impostazioni locali \ Dati applicazioni \ Dati JMP7 \ directory inglese.
Infine, JMP 7 lo farà importa automaticamente le personalizzazioni del menu se si individuano i file JMPMENU in una sottodirectory speciale della directory di installazione. Ad esempio, se stai utilizzando Windows con le impostazioni internazionali impostate su Inglese e hai installato JMP nella posizione predefinita, il seguente percorso ti porta ai file di supporto in inglese da cui dipende JMP:
C: \ Programmi \ SAS \ JMP7 \ File di supporto inglese
Tutto quello che devi fare è creare una sottodirectory chiamata "Default Factory Menus" e copiare i tuoi file JMPMENU in quella posizione (ti è permesso avere tutti i file che vuoi in quella directory). Quindi, ogni volta che JMP viene avviato, importa automaticamente ciascun file JMPMENU nella sottodirectory "Menu di default di fabbrica" nel menu principale e nell'elenco delle barre degli strumenti. (Se uno qualsiasi dei comandi nei menu personalizzati dipende dagli script JSL, assicurarsi che siano stati archiviati durante l'esportazione dei menu.) Quando JMP importa il menu, estrae i file JSL dall'archivio e li inserisce in "Dipendenze" directory nella sottodirectory "Menu di default di fabbrica".
Mike Wodarczyk ha scritto:
Quando un utente ha già definito le voci di menu o l'ha fatto importando un pacchetto jmpmenu per un altro prodotto, la cartella "Menu di default di fabbrica" non viene più letta. Ciò rende difficile la distribuzione di un nuovo menu a una base di utenti che ha già altri menu installati. Sarebbe bello se ci fosse una cartella a livello di utente come questa che i singoli proprietari di pacchetti possano inserire i propri menu e farli giocare bene con altri pacchetti.