A Free Java Library for TreeMap Visualization Christophe Bouthier Ph.D. Student

advertisement

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

Christophe.Bouthier@loria.fr

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)

Christophe.Bouthier@loria.fr

3

Copy-Modify-Merge

Repository

V1 V2 V3 V4

• Use case

• The library

• Futur

Workspace User A

Christophe.Bouthier@loria.fr

Workspace User B

4

Files states

• Use case

• The library

• Futur

• Up-to-date

• Locally modified

: Nothing to do

: You have modified this file

• Remotely modified : Somebody else is modifying this file

• Potentially conflict : You and somebody else have modified this file

• Need update

• Will conflict

: A new version is on the server

: … and you have modified this file

Christophe.Bouthier@loria.fr

5

States Treemap : example

F1 F2

Workspace User A

Christophe.Bouthier@loria.fr

• Use case

• The library

• Futur

F1

V1

F2

V1

Repository

F1

V2

F2

V2

F1

V3

• Up-to-date

• Locally modified

• Remotely modified

Potentially conflict

• Need update

• Will conflict

F1 F2

Workspace User B

6

Why a treemap library ?

• Use case

• The library

• Futur

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 !

Christophe.Bouthier@loria.fr

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)

Christophe.Bouthier@loria.fr

8

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

Christophe.Bouthier@loria.fr

• Use case

• The library

• Futur

9

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

Christophe.Bouthier@loria.fr

• Use case

• The library

• Futur

10

Code sample

• Use case

• The library

• Futur

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);

Christophe.Bouthier@loria.fr

11

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

Christophe.Bouthier@loria.fr

• Use case

• The library

• Futur

12

In the near futur...

Compatibility

-

Swing TreeModel

-

TreeMap 2000 file format

The Java TreeMap Library

http://sf.net/projects/treemap/

http://treemap.sf.net/

Christophe.Bouthier@loria.fr

• Use case

• The library

• Futur

13

Download