Hi!
On my quest to inject all the features of the GraphBuilder into Mondrian, I have just improved Mondrian with the (i) the #notUseInLayout option when building edges and (ii) the bezier line that follow a path.
It sounds like very technical, but this effort is to make the Mondrian and the edge/layout builders more expressive.
Here is a small example:
-=-=-=-=-=-=-=-=-=-=-=-=
classes := RTShape withAllSubclasses, TRShape withAllSubclasses.
b := RTMondrian new.
b shape circle.
b nodes: classes.
b edges connectFrom: #superclass.
b shape bezierLineFollowing: #superclass;
color: (Color blue alpha: 0.2).
b edges notUseInLayout; connectToAll: #dependentClasses.
b normalizer
normalizeSize: #numberOfMethods using: #sqrt;
normalizeColor: #numberOfMethods using: (Array with: Color green with: Color red) using: #sqrt.
b layout cluster.
b build.
-=-=-=-=-=-=-=-=-=-=-=-=
Another example:
-=-=-=-=-=-=-=-=-=-=-=-=
classes := RTObject withAllSubclasses, RTTest withAllSubclasses.
b := RTMondrian new.
b shape circle.
b nodes: classes.
b edges connectFrom: #superclass.
b shape bezierLineFollowing: #superclass;
color: (Color blue alpha: 0.2).
b edges
notUseInLayout;
connectToAll: #dependentClasses.
b normalizer
normalizeSize: #numberOfMethods using: #sqrt;
normalizeColor: #numberOfMethods using: (Array with: Color green with: Color red) using: #sqrt.
b layout cluster.
b build.
^ b
-=-=-=-=-=-=-=-=-=-=-=-=
Doru, on some point we discussed whether it was a good idea to have a clause
#if: [ :fromObject :toObject | … return a boolean … ]
You argued that it was not a good idea and I agree with you. However, I cannot see how to avoid it.
For example, how can I have only edges going from the tests to the base code, and not between classes of the base code?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev