Hi,
I'll answer what I can, since I'm involved in some of this stuff...
2. the idea is to linked the columns of two tables. Using RTArrowedLine, it
is not beautiful (see DB_Schema_with-arrows) since the
attach points are
only on South and North Border of the shape whereas we would like to have
them also on left and right.
3. Usually, in DB schema, the links between tables are orthogonal multi
lines. But in Roassal, the attach point are once again only on top or in
bottom of the shape (see DB_Schema_with_Multines).
Mondrian (and I think shapes also) by default use RTVerticalAttachPoint (so
only top and bottom), however we have more. Look at RTAttachPoint
subclasses. Most relevant to you are probably
RTShorterDistance(WithOffset)AttachPoint which uses all four sides (right,
bottom, left, top), and RTRectangleAttachPoint which will slide along the
sides (so the distance is the shortest).
How are you creating the visualization? I'm interested in edge creation and
layouting — because the attach point has to be specified there.
4. Normally in database representations, the multi
lines have arrows but
since, in Roassal, the direction of the arrow is computed from the start
and end points of the line, it looks ugly in case of multi line edge (see
multiline arrows).
This shouldn't be hard to fix for the Roassal's multiline, I'll look into
it.
5. When a column in a table references another column of the same table,
the edge is in the middle of the table but we would
like to have a
recursive dependency represented as a loop. Is it possible to do that with
Roassal (recursive_dependency figure)?
Something like this:
or this?
That's not currently not easily possible. You could specify by hand the
control points of a multiline to get something like the bottom one, but
there is nothing available in Roassal to do it for you.
Is there someone working on a real graph representation such as in graphviz
where lines do not cross or at minima and so the
entities are grouped?
I am... but I need to move from research to actually writing the code
(right now I am writing edge labels layouting, classes/elements layouting
will come next).
But since you would benefit from something, I'll try to have a prototype
soon.
Can we easily add attached point? or define by default
at least 4 attach
points to box or ellipse?
See my answer earlier. Creating attach points is rather easy.
Is it possible to get multi lines with arrows but
where the head of the
arrow is computed with the perpendicular of the last segment of the multi
line edges?
See my answer earlier, I'll look into this.
Two more question that are not visible in these
figures:
6. It seems that currently, it is not possible to play with the label font
(size, italic, bold…).
You specify font size with "RTLabel>>#height:"
As for italic/bold/... I've recently added "RTStyledLabel". Look at
it's
class comment or RTGeneralExample>>styledLabel
But I think it needs to be also introduced to Mondrian... Alex?
7. Is it possible to put a label near an extremity of
an edge (such as a
role in UML class diagram)? And is it possible to put a label also in the
middle of an edge to indicate the name of an association?
Yes, but only for straight lines.
[[[
TRConstraint
stick: label
between: edge from trachelShape
and: edge to trachelShape
offset: offsetOnEdge. "Float between 0 and 1. 1 is the start, 0 the end,
0.5 the middle, etc."
]]]
As for multilines, Roassal itself doesn't support it.
Finally, I have my own multiline that would solve some of your problems,
but in the current state it would not play nicely with Mondrian, so I will
have to think about how can I move it to Roassal...
Peter