mxParallelEdgeLayout

Extends mxGraphLayout for arranging parallel edges.  This layout works on edges for all pairs of vertices where there is more than one edge connecting the latter.

Example

let layout = new mxParallelEdgeLayout(graph);
layout.execute(graph.getDefaultParent());

To run the layout for the parallel edges of a changed edge only, the following code can be used.

let layout = new mxParallelEdgeLayout(graph);

graph.addListener(mxEvent.CELL_CONNECTED, function(sender, evt)
{
  let model = graph.getModel();
  let edge = evt.getProperty('edge');
  let src = model.getTerminal(edge, true);
  let trg = model.getTerminal(edge, false);

  layout.isEdgeIgnored = function(edge2)
  {
    var src2 = model.getTerminal(edge2, true);
    var trg2 = model.getTerminal(edge2, false);

    return !(model.isEdge(edge2) && ((src == src2 && trg == trg2) || (src == trg2 && trg == src2)));
  };

  layout.execute(graph.getDefaultParent());
});
Summary
mxParallelEdgeLayoutExtends mxGraphLayout for arranging parallel edges.
Functions
mxParallelEdgeLayoutConstructs a new parallel edge layout for the specified graph.
Variables
spacingDefines the spacing between the parallels.
checkOverlapSpecifies if only overlapping edges should be considered parallel.
Functions
executeImplements mxGraphLayout.execute.
findParallelsFinds the parallel edges in the given parent.
getEdgeIdReturns a unique ID for the given edge.
layoutLays out the parallel edges in the given array.
routeRoutes the given edge via the given point.

Functions

mxParallelEdgeLayout

function mxParallelEdgeLayout(graph)

Constructs a new parallel edge layout for the specified graph.

Variables

spacing

mxParallelEdgeLayout.prototype.spacing

Defines the spacing between the parallels.  Default is 20.

checkOverlap

mxParallelEdgeLayout.prototype.checkOverlap

Specifies if only overlapping edges should be considered parallel.  Default is false.

Functions

execute

mxParallelEdgeLayout.prototype.execute = function(parent,
cells)

Implements mxGraphLayout.execute.

findParallels

mxParallelEdgeLayout.prototype.findParallels = function(parent,
cells)

Finds the parallel edges in the given parent.

getEdgeId

mxParallelEdgeLayout.prototype.getEdgeId = function(edge)

Returns a unique ID for the given edge.  The id is independent of the edge direction and is built using the visible terminal of the given edge.

layout

mxParallelEdgeLayout.prototype.layout = function(parallels)

Lays out the parallel edges in the given array.

route

mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)

Routes the given edge via the given point.

Base class for all layout algorithms in mxGraph.
function mxParallelEdgeLayout(graph)
Constructs a new parallel edge layout for the specified graph.
mxParallelEdgeLayout.prototype.spacing
Defines the spacing between the parallels.
mxParallelEdgeLayout.prototype.checkOverlap
Specifies if only overlapping edges should be considered parallel.
mxParallelEdgeLayout.prototype.execute = function(parent,
cells)
Implements mxGraphLayout.execute.
mxGraphLayout.prototype.execute = function(parent)
Executes the layout algorithm for the children of the given parent.
mxParallelEdgeLayout.prototype.findParallels = function(parent,
cells)
Finds the parallel edges in the given parent.
mxParallelEdgeLayout.prototype.getEdgeId = function(edge)
Returns a unique ID for the given edge.
mxParallelEdgeLayout.prototype.layout = function(parallels)
Lays out the parallel edges in the given array.
mxParallelEdgeLayout.prototype.route = function(edge,
x,
y)
Routes the given edge via the given point.
Close