A Free Java Library for TreeMap Visualization Christophe Bouthier Ph.D. Student ECOO team LORIA, France
Use case : states treemap The Java TreeMap Library Planned evolution Use case : states treemap The Java TreeMap Library Planned evolution Use case : states treemap The Java TreeMap Library Planned evolution Use case : states treemap The Java TreeMap Library Planned evolution Use case : states treemap The Java TreeMap Library Planned evolution Plan of the presentation
A Treemap usage Motu project Research prototype ( Accepted paper to CRIWG 2001 Classic CSCW scenario : version management in a design project Treemaps : files states visualization « workspace awareness » (Gutwin & Greenberg) Use case The library Futur
Copy-Modify-Merge Repository V1V2 Workspace User AWorkspace User B V3 V2 V3 V4 Use case The library Futur
Files states Up-to-date Locally modified Remotely modified Potentially conflict Need update Will conflict : Nothing to do : You have modified this file : Somebody else is modifying this file : You and somebody else have modified this file : A new version is on the server : … and you have modified this file Use case The library Futur
States Treemap : example Use case The library Futur Workspace User AWorkspace User B Repository Up-to-date Locally modified Remotely modified Potentially conflict Need update Will conflict F1F2F1F2 F1 F2 Edit F1Edit F2Edit F1 Commit F2 V1 F2 V2 Update F2 V2 Commit F1 V2 F1 V2 Update F1 V2 Commit F1 F1 V3 Update F1 V3
Why a treemap library ? Existing treemaps are : standalone applications specialized for specific task Need of a «TreeMap Visualization» toolkit ! Unreusable If you want treemaps in your project : existing treemaps could not be reused you should reimplement treemaps from scratch Use case The library Futur
Treemap widget Ready to be used Can be combined with other widgets Dynamic multi-threaded update : if data changed if data added or removed Really fast, even for several thousands of nodes Free (MIT license) Use case The library Futur
Data representation Programmer can specify algorithms : in charge of nodes’ filling in charge of nodes’ size Algorithms can be changed dynamically Filling could be : a color a pattern Use case The library Futur
Treemap representation 2 orthogonal presentation properties : treemap classic or nested treemap classic or squarified a treemap can be nested AND squarified Provided configuration view : dynamic property on/off size of nested border Use case The library Futur
Code sample TMNode root; // root of the data tree // build internal structures TreeMap treemap = new TreeMap(root); TMComputeSize cs;// algorithm computing nodes’ size TMComputeDraw cd;// algorithm computing nodes’ filling // Get a treemap view widget TMView view = treemap.getView(cs, cd); Use case The library Futur
In the near futur... To be added : nodes attributes every data will be acceded the same way display of node name in the treemap dynamic queries on nodes attributes user interaction zoom file selection Use case The library Futur
In the near futur... Compatibility Swing TreeModel TreeMap 2000 file format The Java TreeMap Library Use case The library Futur