The begining
I'm actually working in a integration test team. The main goal of this team is to make software parts assembly ant then test them in a nominal to limit way.To acheive this task they build data : for input, result validation and non-regression test data. This team work with (space) flight dynamics algorithm and the manipulated data are
- numerous
- have to make a consistent whole
One solution : a graph view
We work with an EMF (Eclipse Modeling Framework) data implementation. So I start reusing a generic editor (based on a reflexive item provider, the source could be found here) and adapt it to fit our needs. But I feel that is not enough to validate, saw data.
At this point I remembered my work on graph database named OrientDb. This tool has a graph editor and it was cool to see cross references ans so on...
So I searched a java graph visualization tool. I found fast JUNG (Java Universal Network/Graph Framework) that fit my "first order" needs :
- easily managed graph
- many provided layout (see KKlayout, FRLayout, SpringLayout, CirculeLayout and more...)
Usage
The usage is quite easy, JUNG provide a sample project that is very usefull and run quite well.Eclipse view Integration
My integration is actually very direct. I use :- the AWT_SWT eclipse bridge to integrate visualisation in a view
- a command in the generic editor popup menu to invoke an handler that call the refresh and the show graph view.
- rely on reflexive content provider to build the graph
- set a color for each datatype (we have about 1000)
Next
- More integration to allow highlight from generic editor to graph view and opposite
- set a short name for vertices and tool tip for contents
- set edge view depending of containment or not
- Optimize memory usage (actually no more than one hundred vertices... due to sharing memory with eclipse ? )
No comments:
Post a Comment