Logo

15.2 Mondrian architecture

Mondrian is based on a graph model in which the central entities are Nodes and Edges. The model also supports nested graphs, as each GraphElement can hold a collection of further Nodes and Edges. Each of the GraphElements holds a reference to a model entity.

The visual part is tackled through two components: Shape and Layout.

A GraphElement has no particular form by itself, and to be displayed it requires a Shape specification. For example, an Edge can be displayed as a LineShape or as a CurvedLineShape, and a Node can be shown as a RectangleShape or using a more complex FormsShape. Shapes interpret the state of the entity behind the GraphElement to render. More details about Shapes are provided in Section 15.3.5.

Layouts provide an arrangement to a graph by positioning the nodes and edges through an algorithm. There can be many types of layouts ranging from simple orders, like in the case of the GridLayout, to more sophisticated ones, as is the case for the DominanceTreeLayout. The various types of layouts are presented in Section 15.3.4.

Visualizations are useful to expose multiple variables from the data, but their effectiveness is significantly increased by offering interactive capabilities. Using interaction we can drill down in data and learn more details (see Section 15.3.6).

To ease the creation of visualization, Mondrian also offers a fluent interface that feels like a domain specific language. This is achieved through the ViewRenderer and the helper Announcer and ShapeSelector classes (see Section 15.3).

Mondrian architecture

User Contributed Notes

test (30 October 2012, 3:05 pm)

anus

tudor (10 July 2012, 7:48 am)

No, it was not. The picture above was manually laid out in a separate tool for readability.

wcook (4 July 2012, 5:10 pm)

I'm curious if the visualization in Figure 49 was created with Mondrian?

Add a Note