| <!doctype html> | |
| <html> | |
| 
 | |
| <head> | |
|   <title>vis.js | DataView documentation</title> | |
| 
 | |
|   <link href="css/prettify.css" type="text/css" rel="stylesheet" /> | |
|   <link href='css/style.css' type='text/css' rel='stylesheet'> | |
| 
 | |
|   <script type="text/javascript" src="lib/prettify/prettify.js"></script> | |
| <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-61231638-1', 'auto');ga('send', 'pageview');</script></head> | |
| 
 | |
| <body onload="prettyPrint();"> | |
| <div id="container"> | |
| 
 | |
| <h1>DataView documentation</h1> | |
| 
 | |
| <h2 id="Contents">Contents</h2> | |
| <ul> | |
|   <li><a href="#Overview">Overview</a></li> | |
|   <li><a href="#Example">Example</a></li> | |
|   <li><a href="#Construction">Construction</a></li> | |
|   <li><a href="#Methods">Methods</a></li> | |
|   <li><a href="#Properties">Properties</a></li> | |
|   <li><a href="#Getting_Data">Getting Data</a></li> | |
|   <li><a href="#Subscriptions">Subscriptions</a></li> | |
|   <li><a href="#Data_Policy">Data Policy</a></li> | |
| </ul> | |
| 
 | |
| 
 | |
| <h2 id="Overview">Overview</h2> | |
| 
 | |
| <p> | |
|   A DataView offers a filtered and/or formatted view on a | |
|   <a href="dataset.html">DataSet</a>. | |
|   One can subscribe on changes in a DataView, and easily get filtered or | |
|   formatted data without having to specify filters and field types all | |
|   the time. | |
| </p> | |
| 
 | |
| <h2 id="Example">Example</h2> | |
| 
 | |
| <p> | |
|   The following example shows how to use a DataView. | |
| </p> | |
| 
 | |
| <pre class="prettyprint lang-js"> | |
| // create a DataSet | |
| var data = new vis.DataSet(); | |
| data.add([ | |
|   {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true}, | |
|   {id: 2, text: 'item 2', date: '2013-06-23', group: 2}, | |
|   {id: 3, text: 'item 3', date: '2013-06-25', group: 2}, | |
|   {id: 4, text: 'item 4'} | |
| ]); | |
| 
 | |
| // create a DataView | |
| // the view will only contain items having a property group with value 1, | |
| // and will only output fields id, text, and date. | |
| var view = new vis.DataView(data, { | |
|   filter: function (item) { | |
|     return (item.group == 1); | |
|   }, | |
|   fields: ['id', 'text', 'date'] | |
| }); | |
| 
 | |
| // subscribe to any change in the DataView | |
| view.on('*', function (event, properties, senderId) { | |
|   console.log('event', event, properties); | |
| }); | |
| 
 | |
| // update an item in the data set | |
| data.update({id: 2, group: 1}); | |
| 
 | |
| // get all ids in the view | |
| var ids = view.getIds(); | |
| console.log('ids', ids); // will output [1, 2] | |
| 
 | |
| // get all items in the view | |
| var items = view.get(); | |
| </pre> | |
| 
 | |
| <h2 id="Construction">Construction</h2> | |
| 
 | |
| 
 | |
| <p> | |
|   A DataView can be constructed as: | |
| </p> | |
| 
 | |
| <pre class="prettyprint lang-js"> | |
| var data = new vis.DataView(dataset, options) | |
| </pre> | |
| 
 | |
| <p> | |
|   where: | |
| </p> | |
| 
 | |
| <ul> | |
|   <li> | |
|     <code>dataset</code> is a DataSet or DataView. | |
|   </li> | |
|   <li> | |
|     <code>options</code> is an object which can | |
|     contain the following properties. Note that these properties | |
|     are exactly the same as the properties available in methods | |
|     <code>DataSet.get</code> and <code>DataView.get</code>. | |
| 
 | |
|     <table> | |
|       <tr> | |
|         <th>Name</th> | |
|         <th>Type</th> | |
|         <th>Description</th> | |
|       </tr> | |
| 
 | |
|       <tr> | |
|         <td>convert</td> | |
|         <td>Object.<String, String></td> | |
|         <td> | |
|           An object containing field names as key, and data types as value. | |
|           By default, the type of the properties of an item are left | |
|           unchanged. When a field type is specified, this field in the | |
|           items will be converted to the specified type. This can be used | |
|           for example to convert ISO strings containing a date to a | |
|           JavaScript Date object, or convert strings to numbers or vice | |
|           versa. The available data types are listed in section | |
|           <a href="dataset.html#Data_Types">Data Types</a>. | |
|         </td> | |
|       </tr> | |
| 
 | |
|       <tr> | |
|         <td>fields</td> | |
|         <td>String[ ]</td> | |
|         <td> | |
|           An array with field names. | |
|           By default, all properties of the items are emitted. | |
|           When <code>fields</code> is defined, only the properties | |
|           whose name is specified in <code>fields</code> will be included | |
|           in the returned items. | |
|         </td> | |
|       </tr> | |
| 
 | |
|       <tr> | |
|         <td>filter</td> | |
|         <td>function</td> | |
|         <td>Items can be filtered on specific properties by providing a filter | |
|           function. A filter function is executed for each of the items in the | |
|           DataSet, and is called with the item as parameter. The function must | |
|           return a boolean. All items for which the filter function returns | |
|           true will be emitted. | |
|           See also section <a href="dataset.html#Data_Filtering">Data Filtering</a>.</td> | |
|       </tr> | |
| 
 | |
|     </table> | |
|   </li> | |
| </ul> | |
| 
 | |
| <h2 id="Methods">Methods</h2> | |
| 
 | |
| <p>DataView contains the following methods.</p> | |
| 
 | |
| <table> | |
|   <colgroup> | |
|     <col width="200"> | |
|   </colgroup> | |
| 
 | |
|   <tr> | |
|     <th>Method</th> | |
|     <th>Return Type</th> | |
|     <th>Description</th> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td> | |
|       get([options] [, data])<br> | |
|       get(id [,options] [, data])<br> | |
|       get(ids [, options] [, data]) | |
|     </td> | |
|     <td>Object | Array | DataTable</td> | |
|     <td> | |
|       Get a single item, multiple items, or all items from the DataView. | |
|       Usage examples can be found in section <a href="#Getting_Data">Getting Data</a>, and the available <code>options</code> are described in section <a href="#Data_Selection">Data Selection</a>. If parameter <code>data</code> is provided, items will be appended to this array or table, which is required in case of Google DataTable. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td> | |
|       getDataSet() | |
|     </td> | |
|     <td>DataSet</td> | |
|     <td> | |
|       Get the DataSet to which the DataView is connected. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td> | |
|       getIds([options]) | |
|     </td> | |
|     <td>Number[]</td> | |
|     <td> | |
|       Get ids of all items or of a filtered set of items. | |
|       Available <code>options</code> are described in section <a href="dataset.html#Data_Selection">Data Selection</a>, except that options <code>fields</code> and <code>type</code> are not applicable in case of <code>getIds</code>. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td>off(event, callback)</td> | |
|     <td>none</td> | |
|     <td> | |
|       Unsubscribe from an event, remove an event listener. See section <a href="#Subscriptions">Subscriptions</a>. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td>on(event, callback)</td> | |
|     <td>none</td> | |
|     <td> | |
|       Subscribe to an event, add an event listener. See section <a href="#Subscriptions">Subscriptions</a>. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td>refresh()</td> | |
|     <td>none</td> | |
|     <td> | |
|       Refresh the filter results of a DataView. Useful when the filter function contains dynamic properties, like: | |
| 
 | |
|       <pre class="prettyprint lang-js">var data = new vis.DataSet(...); | |
| var view = new vis.DataView(data, { | |
|   filter: function (item) { | |
|     return item.value > threshold; | |
|   } | |
| });</pre> | |
|       In this example, <code>threshold</code> is an external parameter. When the value of <code>threshold</code> changes, the DataView must be notified that the filter results may have changed by calling <code>DataView.refresh()</code>. | |
|     </td> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td> | |
|       setDataSet(data) | |
|     </td> | |
|     <td>none</td> | |
|     <td> | |
|       Replace the DataSet of the DataView. Parameter <code>data</code> can be a DataSet or a DataView. | |
|     </td> | |
|   </tr> | |
| 
 | |
| </table> | |
| 
 | |
| 
 | |
| <h2 id="Properties">Properties</h2> | |
| 
 | |
| <p>DataView contains the following properties.</p> | |
| 
 | |
| <table> | |
|   <colgroup> | |
|     <col width="200"> | |
|   </colgroup> | |
| 
 | |
|   <tr> | |
|     <th>Property</th> | |
|     <th>Type</th> | |
|     <th>Description</th> | |
|   </tr> | |
| 
 | |
|   <tr> | |
|     <td>length</td> | |
|     <td>Number</td> | |
|     <td>The number of items in the DataView.</td> | |
|   </tr> | |
| </table> | |
| 
 | |
| <h2 id="Getting_Data">Getting Data</h2> | |
| 
 | |
| <p> | |
|   Data of the DataView can be retrieved using the method <code>get</code>. | |
| </p> | |
| 
 | |
| <pre class="prettyprint lang-js"> | |
| var items = view.get(); | |
| </pre> | |
| 
 | |
| <p> | |
|   Data of a DataView can be filtered and formatted again, in exactly the | |
|   same way as in a DataSet. See sections | |
|   <a href="dataset.html#Data_Manipulation">Data Manipulation</a> and | |
|   <a href="dataset.html#Data_Selection">Data Selection</a> for more | |
|   information. | |
| </p> | |
| 
 | |
| <pre class="prettyprint lang-js"> | |
| var items = view.get({ | |
|   fields: ['id', 'score'], | |
|   filter: function (item) { | |
|     return (item.score > 50); | |
|   } | |
| }); | |
| </pre> | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="Subscriptions">Subscriptions</h2> | |
| <p> | |
|   One can subscribe on changes in the DataView. Subscription works exactly | |
|   the same as for DataSets. See the documentation on | |
|   <a href="dataset.html#Subscriptions">subscriptions in a DataSet</a> | |
|   for more information. | |
| </p> | |
| 
 | |
| <pre class="prettyprint lang-js"> | |
| // create a DataSet and a view on the data set | |
| var data = new vis.DataSet(); | |
| var view = new vis.DataView({ | |
|   filter: function (item) { | |
|     return (item.group == 2); | |
|   } | |
| }); | |
| 
 | |
| // subscribe to any change in the DataView | |
| view.on('*', function (event, properties, senderId) { | |
|   console.log('event:', event, 'properties:', properties, 'senderId:', senderId); | |
| }); | |
| 
 | |
| // add, update, and remove data in the DataSet... | |
| </pre> | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="Data_Policy">Data Policy</h2> | |
| <p> | |
|   All code and data is processed and rendered in the browser. | |
|   No data is sent to any server. | |
| </p> | |
| 
 | |
| </div> | |
| </body> | |
| </html> |