Java TreeMap Library

A Free Java Library
for TreeMap Visualization
Christophe Bouthier
Ph.D. Student
ECOO team
LORIA, France
Plan of the presentation
• Use case : states treemap
• The Java TreeMap Library
• Planned evolution
[email protected]
2
A Treemap usage
• Use case
• The library
• Futur
• Motu project
- Research prototype (http://motu.sf.net/)
- Accepted paper to CRIWG 2001
• Classic CSCW scenario :
- version management in a design project
• Treemaps :
- files states visualization
- « workspace awareness » (Gutwin & Greenberg)
[email protected]
3
• Use case
• The library
• Futur
Copy-Modify-Merge
Repository
V1
V2
V3
Workspace User A
[email protected]
V2
V3
V4
V2
V3
V4
Workspace User B
4
• Use case
• The library
• Futur
Files states
•
•
•
•
: Nothing to do
Up-to-date
Locally modified : You have modified this file
Remotely modified : Somebody else is modifying this fil
Potentially conflict : You and somebody else have modifi
this file
• Need update
• Will conflict
[email protected]
: A new version is on the server
: … and you have modified this file
5
• Use case
• The library
• Futur
States Treemap : example
Repository
F1
F2
V2
V3
V1
V1
V2
Commit
Edit
Commit
Update
Edit
F2 F1
F2 F1
Workspace User A
[email protected]
F1
F1
F1
V1
V2
V3
F2
F2
V1
V2
•
•
•
•
•
•
Up-to-date
Locally modified
Remotely modified
Potentially conflict
Need update
Will conflict
F1
F2
V2
V3
V1
V2
V1
Update
Commit
Update
EditF2F1F1
Workspace User B
6
• Use case
• The library
• Futur
Why a treemap library ?
• Existing treemaps are :
- standalone applications
- specialized for specific task
Unreusable
• If you want treemaps in your project :
- existing treemaps could not be reused
- you should reimplement treemaps from scratch
Need of a «TreeMap Visualization» toolkit !
[email protected]
7
Treemap widget
• Use case
• The library
• Futur
• 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)
[email protected]
8
Data representation
• Use case
• The library
• Futur
• 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
[email protected]
9
Treemap representation
• Use case
• The library
• Futur
• 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
[email protected]
10
• Use case
• The library
• Futur
Code sample
TMNode root;
// root of the data tree
// build internal structures
TreeMap treemap = new TreeMap(root);
TMComputeSize cs;
TMComputeDraw cd;
// algorithm computing nodes’ size
// algorithm computing nodes’ filling
// Get a treemap view widget
TMView view = treemap.getView(cs, cd);
[email protected]
11
In the near futur...
• Use case
• The library
• 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
[email protected]
12
In the near futur...
• Use case
• The library
• Futur
• Compatibility
- Swing TreeModel
- TreeMap 2000 file format
• The Java TreeMap Library
- http://sf.net/projects/treemap/
- http://treemap.sf.net/
[email protected]
13