Jmol JavaScript Object/JSV
Integration of JSpecView into Jmol-JSO
Extensive work in 2012 integrated JSpecView into Jmol 13.
- The Jmol application now includes a new
tools
menu item that opens a frame for JSpecView. - The Jmol applet can communicate to and from a JSpecView applet in the same page, using the Jmol
sync
command. Jmol-JSO brokers this transaction and allows coordinated applet start-up so that one applet does not send a command to the other before both are ready.
This makes it possible to tie 3D models to IR, NMR, UV/VIS, GC, and GC/MS spectra, using the JCAMP-DX Version 6 standard.
Associated with this integration, we have designed a specification for an extension of the JCAMP-DX format that allows one JDX file to contain both Jmol-readable 3D models and peak information, allowing the user to click on, for example, a carbon atom in Jmol and have the 13C-NMR spectrum automatically display and highlight the associated peak in JSpecView.
For a demonstration of the Jmol <-> JSpecView connection, see the JSpecView subdirectory at St.Olaf or the demo pages at the University of the West Indies.
Creating and inserting the JSpecView applet
To create a JSpecView applet, use for example:
var myJSV = Jmol.getJSVApplet("myJSV", Info)
Parameters making the Info
variable (with default values shown between angular brackets):
- Info.height <
500
> - Info.width <
300
> - Info.debug <
false
> - Info.jarPath <
.
> - Info.jarFile <
JSpecViewApplet.jar
> - Info.isSigned <
false
> - Info.initParams <empty>
- Info.readyFunction <empty>
- Info.script <empty>
JSpecView-specific methods
All these functions must be applied to the unique Jmol
object (this name is literal, cannot be changed):
Jmol.jsvAddHightlight(myJSV, x1, x2, r, g, b, a) Jmol.jsvExport(myJSV, exportType, n) Jmol.jsvGetCoordinate(myJSV) Jmol.jsvGetPropertyAsJavaObject(myJSV, key) Jmol.jsvGetPropertyAsJSON(myJSV, key) Jmol.jsvGetSolnColour(myJSV) Jmol.jsvIsPro(myJSV) Jmol.jsvIsSigned(myJSV) Jmol.jsvLoadInline(myJSV, data, params) Jmol.jsvRemoveAllHighlights(myJSV) Jmol.jsvRemoveHighlight(myJSV, x1, x2) Jmol.jsvReversePlot(myJSV) Jmol.jsvRunScript(myJSV, script) Jmol.jsvRunScriptNow(myJSV, script) Jmol.jsvSetFilePath(myJSV, tmpFilePath) Jmol.jsvSetSpectrumNumber(myJSV, n) Jmol.jsvSetVisible(myJSV, true/false) Jmol.jsvSyncScript(myJSV, peakScript) Jmol.jsvToggleCoordinate(myJSV) Jmol.jsvToggleGrid(myJSV) Jmol.jsvToggleIntegration(myJSV) Jmol.jsvWriteStatus(myJSV, message)