--- layout: default title: Library - Home ---

Building on Backbone, Recline supplies components and structure to data-heavy applications by providing a set of models (Dataset, Document/Row, Field) and views (Grid, Map, Graph etc).

Examples

Note: A quick read through of the Concepts section will likely be useful in understanding the details of the examples.

Loading from difference sources: Google Docs, Local CSV, DataHub

Twitter Example

Customing Display and Import using Fields

Listening to events

Setting and Getting State

Extending Recline

Create a new View

Create a new Backend

Create a Custom Document Object

Concepts and Structure

Recline has a simple structure layered on top of the basic Model/View distinction inherent in Backbone.

Models

There are two main model objects:

  • Dataset: represents the dataset. Holds dataset info and a pointer to list of data items (Documents in our terminology) which it can load from the relevant Backend.
  • Document: an individual data item (e.g. a row from a relational database or a spreadsheet, a document from from a document DB like CouchDB or MongoDB).

Additional, related models:

  • Field: a field/column on a dataset.
  • Query: an object to encapsulate a query to the backend (useful both for creating queries and for storing and manipulating query state - e.g. from a query editor).
  • Facet: Object to store Facet information, that is summary information (e.g. values and counts) about a field obtained by some faceting method on the backend.

More detail of how these work can be found in the Model source docs.

Backends

Backends connect Dataset and Documents to data from a specific 'Backend' data source. They provide methods for loading and saving Datasets and individuals Documents as well as for bulk loading via a query API and doing bulk transforms on the backend.

A template Base class can be found in the Backend base module of the source docs. It documents both the relevant methods a Backend must have and (optionally) provides a base 'class' for inheritance. You can also find detailed examples of backend implementations in the source documentation below.

Views

Complementing the model are various Views (you can also easily write your own). Each view holds a pointer to a Dataset:

  • DataExplorer: the parent view which manages the overall app and sets up sub views.
  • Grid: the data grid view.
  • Graph: a simple graphing view using Flot.
  • Map: a map view using Leaflet.

There are additional views which do not display a whole dataset but which are useful:

  • QueryEditor: a query editor view
  • FacetViewer: display facets

Source Docs (via Docco)