Wow, long time no blog. Sorry for that. Here's some news:
As an additional means of displaying relationships between nodes (next
to PlantUML and the tree views) we have integrated the JUNG framework for graph
display. As a language developer, you can implement an interface
IJGraphProvider and implement a method that creates the graph:
- Programmable with high-level API
- Specify initial layout
- Configurable node size, color, line style and color, fill color, shape and label
- Configurable edge width, style, color and label
- Configurable tooltip text for nodes and edges
- Extensibility to plug in your own layouters (such as the one from yWorks)
Once you have created a graph, your users have many options to view the
graph in an MPS tool window:
- Double-click selects node or edge in editor
- Zoom and Pan
- Tooltips
- Selectable Layouts
- Selection and highlighting of outgoing and incoming nodes and edges
- Filtering based on node and edge type
- Filtering along a continuous axis (for example, time)
- Incremental, node-based collapsing and expansion
The JUNG integration is available as part of mbeddr, but also as part
of the mbeddr.platform, so you can use it for your own languages. Check out
the Chunk node for an example of how to use it.
A demo video of the viewer can be found here.