Hello,
On Sat, Jun 30, 2012 at 1:36 AM, Alexandre Bergel
<alexandre.bergel(a)me.com>wrote;wrote:
I have this
script. The problem is that when there are duplicate
entities on my canvas, edges
are constructed for only one of them.
|myView entity otherEntities |
myView := ROMondrianViewBuilder new.
entity := 1.
otherEntities := #(2 2 3 3 4 4).
myView shape rectangle withoutBorder.
myView node: #entity forIt: [
myView nodes: otherEntities forEach:
[:each |
myView
shape label.
myView node: each name].
].
myView shape rectangle withoutBorder.
myView node: #otherEntities forIt: [
myView shape rectangle.
myView node: entity
].
myView shape line color: Color red; width: 1.
myView edges: otherEntities from: #yourself to:
entity.
myView verticalLineLayout center.
myView open.
Well.. This is a limitation of the Mondrian DLS. We had this issue before
with Mondrian.
Since nodes are looked up with edges:from:to:, then you should not have
more than one candidate, else how the engine can guess which one to use?
The edges to all the entities can be drawn using
this script which is a
bit inelegant.
((myView raw elementsSuchThat: [:each | each model name
includesSubString:
'other']) first elements)
do: [:each | myView
raw add: (myView
buildEdgeFrom: each to: (myView lookup: entity))].
You could do:
-=-=-=-=-=-=-=-=-=-=-=-=
|myView entity otherEntities nodes endNode lineShape |
myView := ROMondrianViewBuilder new.
entity := 1.
otherEntities := #(2 2 3 3 4 4).
myView shape rectangle withoutBorder.
myView node: #entity forIt: [
nodes := myView nodes: otherEntities forEach: [:each |
myView shape label.
myView node: each name ].
].
myView shape rectangle withoutBorder.
myView node: #otherEntities forIt: [
myView shape rectangle.
endNode := myView node: entity
].
myView raw addAll: (ROEdge linesFor: (nodes collect: [ :n | n -> endNode
])).
myView verticalLineLayout center.
myView open.
-=-=-=-=-=-=-=-=-=-=-=-=
Question: how to deal with duplicate entities in
Roassal?
I think I've answered to your question. Let me know if not.
Yes it does. I was just looking for an elegant solution to achieve the task
of making all edges appear so I know a better answer now. The purpose of my
mail was also to provide a feedback, look for superior solution than mine
and that others can benefit from it. That's done.
tx
Usman
May be this occurs seldom in reality?
It does not happen very often in practice. I think Jannik had such a
problem.
Cheers,
Alexandre
regards,
Usman
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev