We need an algorithm that will (given a Context c, and a time parameter t, and a (JUNG) graph g) update g adding and removing JUNG nodes and edges incrementally such that when complete g is an up-to-date graph that represents the contents of c at time t.
The algorithm (rough notes)
- Walk through the Context visiting every IDigitalIdentity (currently called IMembers) and every IEdge (probably should write a general purpose context walker) and simultaneously walk through graph g
- At every IDigitalIdentity and at every IEdge:
- Check to see if t lies within at least one of the DI/Edge's "LiveFromTo" properties
- If t lies within LiveFromTo then if a corresponding Vertext or Edge doesn't already existing in g then add it
- If t doesn't lay within a LiveFromTo property and is in g then delete the corresponding node within g
The above algorithm should be included in a package within the org.eclipse.higgins.ui plugin project.
An external JUNG-based visualization app (e.g. GUESS) could link in this .higgins.ui plug-in (and the rest of Higgins) and render the graph g (see [H5-11-04]). We will NOT attempt to integrate the rendering portions of JUNG or GUESS within the Higgins Demo app due to the fact that JUNG rendering is Swing-based (as well as for some open source licensing issues).