In Visualizer and Diagrammer, two specific items are mandatory in a graph (or diagram) which are nodes (including groups) and links connecting nodes. Decorators can be used in a graph as an extra visual pattern decorating nodes and links with more information. The main items (units) used on the Visualizer can be described as following:

All Entities (Node, Group, Table, link and decorator) implement specific interfaces that are used to categorize them, thus we decouple basic entities from core Visualizer processing and we let developers replace these entities with their own :

In order to let developers have full control on what is rendered and how it behaves, we provide several methodologies and tools. Each element inside a Visualizer or Diagrammer can be modified and rendered differently using several properties (itemRendererClass and itemRendererFunction). This can be considered as the first and basic level of control which is common with all flex components. But when dealing with graphs and diagrams, we need to have control on many other aspects:

In general, renderers requires a data property to be exposed in order to let them get fed with data. This is done by letting the item renderers implement fr.kapit.visualizer.IRenderer or mx.core.IDataRenderer interfaces.

Group, Table, Lane, Panel and Decorator renderers require specific interfaces to be implemented in order to have the correct behavior (e.g IGroupRenderer). The second level of control is based on renderes' interfaces implementation. The more required interfaces you implement, the greater control you have.