Weitere ähnliche Inhalte Ähnlich wie Mondrian Overview 2007-11-06 (20) Mehr von Tudor Girba (20) Kürzlich hochgeladen (20) Mondrian Overview 2007-11-0620. What we have: Graphviz
digraph classGraph {
A [ shape=polygon, width = 6 ... ]
B [ shape=polygon, width = 5 ... ]
...
A -> B
C -> D
...
} 21. What we have: CodeCrawler
Node Edge
Class Inheritance
Node Edge 30. View = nodes, edges, layout
view := ViewRenderer new.
view nodes: classes.
view edges: classes
from: [:each | each superclass]
to: [:each | each].
view treeLayout.
view open. 31. Shapes are responsible for drawing
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. 32. Blocks can be replaced by symbols
view := ViewRenderer new.
view borderedRectangleShape
height: #numberOfMethods.
view nodes: classes.
view edgesFrom: #superclass.
view treeLayout.
view open. 33. 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. 36. 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 open.
view2 open. 37. Mondrian is a domain specific language
view := ViewRenderer new.
view borderedRectangleShape.
view interaction popupView: [:each :aView | each viewOn: aView].
view nodes: classes forEach: [:each |
view nodes: each methods.
view gridLayout
].
view edgesFrom: #superclass.
view treeLayout.
view open. 39. Tudor Gîrba
www.tudorgirba.com
creativecommons.org/licenses/by/3.0/