Open superbobry opened 8 years ago
When compound nodes are collapsed, we create one meta edge per inter-graph edge coming out of / going into the collapsed compound. In case there are multiple such edges, we end up with multiple meta edges (multiple meta edges with the same source and target). We could implement an option named collapseMetaEdges to not generate more than one meta edge when true. Notice that this applies to situations where only one end is a meta node.
Thank you for a quick reply! I like the idea of having an extra option and I'm fine with it applying in the case where there is a single meta node.
As a workaround you can play around with meta edge styling. E.g
{
'selector': 'edge.meta',
'style': {
'curve-style': 'unbundled-bezier',
'control-point-distances': '0 0 0',
},
},
This way, at least visually edges will be collapsed into one.
Thanks, @aindlq, I'll give that a try!
On a slightly unrelated note: the fact that edges are replaced by meta edges seems to somehow break the qtip plugin. I.e. the following does NOT result in tooltips for meta edges:
cy.edges().qtip({
content: function() { return "foobar"; },
position: {my: "top center", at: "bottom center"},
style: {classes: "qtip-bootstrap"},
show: {event: "mouseover"},
hide: {event: "mouseout"}
});
Is this a known issue?
Are you doing this when you already have "meta" edges in cy.edges() or in the beginning when all nodes are expanded? If later is the case, you need to make sure that you initialize qtip on these new meta edges as well.
If later is the case, you need to make sure that you initialize qtip on these new meta edges as well.
This was indeed the case. Thank you!
We could implement an option named collapseMetaEdges to not generate more than one meta edge when true.
@ugurdogrusoz may I ask if support for this option has progressed at all?
Unfortunately we don't have resources for this at the moment.
How to initialize qtip on new meta-edges after collapse or expand? can you provide the code
@aindlq
As a workaround you can play around with meta edge styling. E.g
{ 'selector': 'edge.meta', 'style': { 'curve-style': 'unbundled-bezier', 'control-point-distances': '0 0 0', }, },
This way, at least visually edges will be collapsed into one.
Why only set curve-style
to unbundled-bezier
work ? I set it to bezier
and this workaround not works. But I think unbundled-bezier
looks ugly.
Is there any progress on this?
Currently the edges between collapsed nodes are left "as-is", i.e. if two nodes were collapsed into a supernode, the supernode has two incoming (or outgoing) edges. I wonder if it is possible to collapse the edges if the other side of each edge points to another supernode?