Limada is a framework for building interactive information visualization applications.
The design of Limada follows the principle of separation of concerns. Limadas architecture is based on layers. Each layer represents a logical group of components.
There are four layers in limada:
The presentation layer contains components for
visualizing the model and interacting with the user. This layer is divided into several sublayers:
- the Graphics-Layers: this layer provides basic graphic structures like points, rectangles and operations on them.
It contains the media to draw like pen, font, color.
A Shape is a structure to describe a geometric form.
A Style is a composition of medias.
A Painter is responsible for rendering a Shape with a given Style to a Surface.
- the Visuals-Layer: A Visual is a graphic representations of a model-entity.
Visuals are composed of a Shape, a Style and a data object. A Scene is a surface where visuals are drawn.
Visuals are agnostic to a special data model.
The core components of the Graphics- and Widget-Layer are independent from a concrete visual framework like GDI or WPF.
To realize a presentation layer with a concrete framework a small, framework-specific graphic mapping layer is needed.
The model layer contains Things and Links. A Thing is a vertice (or node) of a graph, a Link connects Things. A ThingGraph acts as a facade to process operations on the entities.
The mapping layer connects the model with the view.
This is realized with a GraphPair.
A GraphPair is a facade on two Graphs of different types, Graph<Widget> and Graph<Thing>.
To the presentation layer it appears as a Graph<Widget>,
but every operation is performed on the Graph<Thing> too.
So a visual abstraction of the model can be done by creating a GraphPair<Widget, Thing>.
The data layer provides Graphs backed by Databases.