This layout algorithm iteratively searches
for a configuration of the graph where the length of the links is
close to a user-defined or a default value.
Example of ULEL algorithm
In CSS
The following example of a specification in CSS uses the Uniform
Length Edges Layout algorithm. Since the Uniform Length Edges
Layout places nodes and reshapes the links, it is usually not
necessary to specify an additional link layout in CSS. The
specification in CSS can be loaded as a style file into an
application that uses the IlvDiagrammer class (see Graph Layout in
Rogue Wave® JViews
Diagrammer).
SDM { GraphLayout : "true"; LinkLayout : "false"; } GraphLayout { graphLayout : "UniformLengthEdges"; linkStyle : "STRAIGHT_LINE_STYLE"; preferredLinksLength : "30"; respectNodeSizes : "true"; layoutMode : "FAST_MULTILEVEL_MODE"; }
It is possible to enable the link layout
additionally, and in this case, the link layout determines the
shape of the links.
In Java
The following code sample uses the IlvUniformLengthEdgesLayout class. This
code sample shows how to perform a Uniform Length Edges Layout
on a grapher directly without using a diagram component or any
style sheet:
... import ilog.views.*; import ilog.views.graphlayout.*; import ilog.views.graphlayout.uniformlengthedges.*; ... IlvGrapher grapher = new IlvGrapher(); IlvManagerView view = new IlvManagerView(grapher); ... /* Fill in the grapher with nodes and links here */ IlvUniformLengthEdgesLayout layout = new IlvUniformLengthEdgesLayout(); layout.attach(grapher); try { IlvUniformLengthEdgesLayoutReport layoutReport = layout.performLayout(); int code = layoutReport.getCode(); System.out.println("Layout completed (" + layoutReport.codeToString(code) + ")"); } catch (IlvGraphLayoutException e) { System.err.println(e.getMessage()); }
Important
All explanations in the subsequent sections
regarding the shape of the links in Uniform Length Edges Layout
are valid only if the link layout is disabled.