36
Painting objects with Mondrian Michael Meyer and Tudor Gîrba Software Composition Group University of Berne Switzerland September 6, 2006

Painting objects with Mondrian

  • Upload
    esug

  • View
    601

  • Download
    0

Embed Size (px)

DESCRIPTION

Painting objects with Mondrian. Michael Meyer and Tudor Gîrba. ESUG 2006, Prague

Citation preview

Page 1: Painting objects with Mondrian

Painting objects with Mondrian

Michael Meyer and Tudor Gîrba

Software Composition GroupUniversity of BerneSwitzerland

September 6, 2006

Page 2: Painting objects with Mondrian

Mondrian is about visualization

Page 3: Painting objects with Mondrian

Mondrian is also about interaction

Page 4: Painting objects with Mondrian

please ask questions

Page 5: Painting objects with Mondrian

Why visualization?

Page 6: Painting objects with Mondrian

“One picture is worth a thousand words”

Page 7: Painting objects with Mondrian
Page 8: Painting objects with Mondrian

some took it literally :)

Page 9: Painting objects with Mondrian

70% of our sensors are dedicated to vision

Do you see?

Picture it!

Let’s see

I see

Page 10: Painting objects with Mondrian

How many groups do you see?

Page 11: Painting objects with Mondrian

How many groups do you see?

Page 12: Painting objects with Mondrian

How many groups do you see?

Page 13: Painting objects with Mondrian

How many groups do you see?

Page 14: Painting objects with Mondrian

70% of our sensors are dedicated to vision

Do you see?

Picture it!

Let’s see

I see

Page 15: Painting objects with Mondrian

“One picture is worth a thousand words”

Page 16: Painting objects with Mondrian

Example: What is ?

Page 17: Painting objects with Mondrian
Page 18: Painting objects with Mondrian
Page 19: Painting objects with Mondrian
Page 20: Painting objects with Mondrian
Page 21: Painting objects with Mondrian
Page 22: Painting objects with Mondrian

What we have: Graphviz is a visualization engine

digraph classGraph {A [ shape=polygon, width = 6 ... ]B [ shape=polygon, width = 5 ... ]...A -> BC -> D...

}

Page 23: Painting objects with Mondrian

What we would like

Scripting

Instance based

Any data model

Close to data

Interaction

Page 24: Painting objects with Mondrian

What we would like

Scripting

Instance based

Any data model

Close to data

Interaction

Page 25: Painting objects with Mondrian

Mondrian

Page 26: Painting objects with Mondrian

Mondrian metaphor: painting a view

Page 27: Painting objects with Mondrian

Mondrian metaphor: painting a view

Page 28: Painting objects with Mondrian

Mondrian metaphor: painting a view

Composition with Red, Yellow and Blue Piet Mondrian (1921)

Page 29: Painting objects with Mondrian

The simplest Mondrian script is an empty view

view := ViewRenderer new.view open.

Page 30: Painting objects with Mondrian

The view consists of nodes and edges arranged according to a layout

view := ViewRenderer new.view nodes: classes.view edges: classes from: [:each | each superclass] to: [:each | each].view treeLayout.view open.

Page 31: Painting objects with Mondrian

Visual representation is given by the shape

view := ViewRenderer new.view borderedRectangleShape height: [:each | each numberOfMethods].view nodes: classes.view edges: classes from: [:each | each superclass] to: [:each | each].view treeLayout.view open.

Page 32: Painting objects with Mondrian

Blocks can be replaced by symbols

view := ViewRenderer new.view borderedRectangleShape height: #numberOfMethods.view nodes: classes.view edgesFrom: #superclass.view treeLayout.view open.

Page 33: Painting objects with Mondrian

Nesting is done through blocks

view := ViewRenderer new.view borderedRectangleShape.view nodes: classes forEach: [:each |

view nodes: each methods.view gridLayout].

view edgesFrom: #superclass.view treeLayout.view open.

Page 34: Painting objects with Mondrian

What about interaction?

Page 35: Painting objects with Mondrian

Interaction is scriptable, too

view := ViewRenderer new.view2 := ViewRenderer new.

view interaction onSelect: [:each | each viewOn: view2].view interaction popupView: [:each :aView | each viewOn: aView].

view nodes: ......

view open.view2 open.

Page 36: Painting objects with Mondrian

Mondrian

Close to data

Any data model

Scripting

Interaction

Least object creation

Instance based

Soon in the Cincom Store ...

September 6, 2006