The Web Player JavaScript API integrates solutions with the Spotfire Web Player. It enables event handling, data data marking and filter manipulation.
Overview
The Web Player JavaScript API enables integration of Web Player
solutions into a web environment:
- Receive events from interaction in an analysis that is open
in the Web Player.
- Interact programmatically with the Web Player in terms of making
markings or changing filters.
See also the following pages:
-
The Web Document
The web document is a node tree on the server. When rendered, it translates the document model into a rendered web document that can be visualized in a web browser.
-
The Client Communication Engine
The Client Communication Engine enbables the client side web control to send control signals to its server side. If the signal changes any web control, the server responds with one or more change objects. The Client Communication Engine updates the client UI accordingly.
-
Installing and Configuring the JavaScript API
Before the Web Player JavaScript API can be used to create mashups, the Web Player must be installed and configured to enable the JavaScript API.
-
Mashup Development with Multiple Servers
JavaScript in mashup calls from the same server as the Web Player does not compromise domain security. If the mashup and the Web Player reside on different servers, attention to domain attributes is essential.
Restrictions
The Java Script API on a Web Player cannot be combined with Forms
Authenication. For security reasons there is no way for a user
to login using the API.
The API accesses the Web Player on browser (JavaScript) level.
Server (C#) side objects directly cannot be accessed directly.
API Layers
Referring to the graphic below, the Api.js
JavaScript file for the public API is referenced through a web
handler. It is generated from a template that contains stubs
for the public API.
The public API is connected to the server side script nodes
via generated JavaScript proxy scripts. The stubs in the public
API template are filled with the proxy script implementation
by the corresponding server side script node.
The blue layer indicates the implementation created by the API
user. The red layer is a proxy for communication between the
mashup and the displayed Web Player. It will forward API calls
from the mashup, via the Web Player Ajax Service, to the Web
Player backend. The green layer, finally, represents the Web
Player backend.
Mashup Page
| Api.js |
Script Proxy |
|
The Api.js file is the public JavaScript API. Developers
use it to integrate with the Web Player. It is downloaded to
the client browser by the GetJavaScriptApi.ashx
web handler. This service takes the version number as parameter.
Debug information may optionally be included.
Technically, the server generates the file by merging a JavaScript
template with proxy script code produced by the script nodes.
|
The proxy script code glues the public API functions to the
server side operations executing the client call. The initial
proxy scripts are generated from Api.js and the
OpenProxy.aspx page.
When a Web Player Application object is created, an invisible
IFRAME holding the OpenProxy.aspx
page is also created. It is used to open and display the Web
Player when an analysis is loaded via the public API.
|
Script Nodes
The script node tree is located under DocumentWebControl,
the root node of the web document. The difference between the
script nodes and existing nodes is that they only generate JavaScript
code to interact with the Web Player, and no UI elements.
The server side script node loads the analysis and creates the
missing proxy script code. OpenProxy.aspx creates
a new IFRAME holding the analysis, ViewAnalysis.aspx,
in the <div> element of the Mashup.html
page.
The script node classes make up a new branch of the web document
tree. They all inherit from the same base class. They will not
be created when the web document loads unless the JavaScript
API is enabled. It is disabled by default, and must be enabled
by setting the javaScriptApi configuration value:
<spotfire.dxp.web>
<setup>
<javaScriptApi enabled="true" />
...
</setup>
...
</spotfire.dxp.web>