Framework Architecture

Open source modules

  • datagr4m-drawing provides most of the work related to drawing and navigating projected data. Reyling on a modified version of ForceAtlas 1 as default layout algorithm
  • datagr4m-topology provides classes to represent projected data (graph, nodes, edges, hierarchies, groups, etc). Relying on Jung for the graph model
  • datagr4m-geometry provides few utility classes/methods to make geometrical computation with Java2d shapes & conversion with Jzy3d datatypes
  • datagr4m-viewer provides interfaces, abstract classes and few utilities to deal with rendering (also see datagr4m-runtime-community for implementation)
  • datagr4m-workspace provides a way to gather all elements of a diagrams (data, geometrical model, layout, rendering) in a single place
  • datagr4m-io provides submodules dealing with IO
    • datagr4m-io-api: at this time, dealing with image resources only
    • datagr4m-io-xml: JAXB generated XML handlers
    • datagr4m-io-neo4j: a very simple neo4j full-graph traversal and analysis

Subject to refactors:

  • datagr4m-core provides utility classes (pairs, triplets, multimap flipper, etc). To be merged to topology module
  • datagr4m-drawing-pathfinder provides a basic algorithm for orthogonal layouts + slotable items. To be merged in main drawing module

Community Runtime

  • datagr4m-runtime-community provides implementations for the following interfaces:
    • org.datagr4m.viewer.IDisplay (datagr4m-viewer module)
    • org.datagr4m.viewer.IView (datagr4m-viewer module)
    • org.datagr4m.drawing.layout.runner.ILayoutRunner (datagr4m-drawing module) a simple non-parallelized layout runner visiting a layout hierarchy by perfoming a few steps (10 or so) of each layout at each visit