HI Offray,
I gave it a quick bash and come up with the following code.
It's just a prototype and could be greatly simplified.
- MCVersionInfo ancestors for whatever reason returned
empty array down the line (so its cut off at the end), but I
didn't investigate the problem
- edge building and possibly ancestor retrieval could be
simplified with builders; I think RTMondrian has methods for
it but can't remember exactly (agilevisualization mentioned
RTGraphBuilder but that has been removed to my knowledge)
~~~~~~~~~~~~~~~
mc := MCSmalltalkhubRepository allInstances detect: [ :m
| m project = 'Roassal2' ].
root := mc versionInfoFromFileNamed: mc readableFileNames
first.
family := Set new.
retriever := nil.
retriever := [ :child |
family
add: child.
child
ancestors do: [ :a | retriever value: a ]
].
retriever value: root.
obs := family asGroup.
v := RTView new.
es := RTEllipse new size: 15; color: Color blue;
elementsOn: obs.
v addAll: es.
edges := RTEdge
buildEdgesFromObjects:
obs
from:
#yourself
toAll:
#ancestors
using:
(RTArrowedLine new withShorterDistanceAttachPoint; color:
Color red)
scope:
es.
v addAll: edges.
es @ RTDraggable.
es @ (RTLabelled new text: [ :m | m nameWithout:
'Roassal2' ]).
v @ RTDraggableView.
v @ RTZoomableView.
RTDominanceTreeLayout new
verticalGap:
30;
horizontalGap:
15;
on: es.
v open
~~~~~~~~~~~~~~~~
Cheers,
Peter
���