On Jun 15, 2011, at 4:59 PM, Alexandre Bergel wrote:
It seems to work but I do not understand what the edges: is the node that is entered.
I see the problem you're facing. Indeed, the syntax of Mondrian is a bit unintuitive.
Yes may be having a pass on the renderer Api would be good
I recently introduced edgesFromAssociations: that makes it simpler to define edges. Consider the script:
view nodes: (1 to: 5). view edgesFromAssociations: {1 -> 3 . 1 -> 5} -=-=-=-=-=-=-=-=
I could never succeed to find that. For me the API is bogus. I'm totally confused. Can you explain to me why the edges is the starting node?
The reason of "edges: nodes from: b1 to: b2" is to produce as much edges as there are nodes. For each node, an edge is created by evaluating b1 and b2 against the node.
what do you mean by "by evaluating b1 and b2 against the node"
Now when I do that the original shapes (squares inside squares) that I have turn into a single one and I do not understand why.
The interaction in Mondrian works well, but I agree this is a bit rough to use. The following:
view interaction whenEnteringUpdateNode: [:node | view edges: {node} from: #yourself toAll: #sureReferencingClasses.]. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= means that when you enter the node, you replace everything under the node with some edges. You therefore discard the classes in it.
ah I could not get it then. Indeed the api sucks then
I propose two versions of your code. A long (and ugly one), and a much nicer one, but which does a slightly different thing:
thanks I will have a look.
The script draw edges between a packages and classes.
view interaction whenEnteringUpdateNode: [:node | view shape rectangle fillColor: Color orange; height: 7; width: 7. view nodes: node classes. view gridLayout gapSize: 2. view edges: {node} from: #yourself toAll: #sureReferencingClasses ]
whenLeavingUpdateNode: [:node | view shape rectangle fillColor: Color orange; height: 7; width: 7. view nodes: node classes. view gridLayout gapSize: 2 ] withLayoutUpdate: true. view nodes: model allPackages forEach: [:pack | view shape rectangle fillColor: Color orange; height: 7; width: 7. view nodes: pack classes. view gridLayout gapSize: 2. ].
view gridLayout.
This version draws edges between classes
view nodes: model allPackages forEach: [:pack | view shape rectangle fillColor: Color orange; height: 7; width: 7. view interaction whenEnteringUpdateNode: [:node | view edges: {node} from: #yourself toAll: #sureReferencingClasses ]. view nodes: pack classes. view gridLayout gapSize: 2. ].
view gridLayout.
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev