maxGraph/docs/js-api/files/layout/hierarchical/mxHierarchicalLayout-js.html

103 lines
60 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><title>mxHierarchicalLayout</title><link rel="stylesheet" type="text/css" href="../../../styles/main.css"><script language=JavaScript src="../../../javascript/main.js"></script><script language=JavaScript src="../../../javascript/prettify.js"></script><script language=JavaScript src="../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version 1.5 -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxHierarchicalLayout"></a>mxHierarchicalLayout</h1><div class=CBody><p>A hierarchical layout algorithm.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxHierarchicalLayout" >mxHierarchicalLayout</a></td><td class=SDescription>A hierarchical layout algorithm.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxHierarchicalLayout.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.mxHierarchicalLayout" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxHierarchicalLayout</a></td><td class=SDescription>Constructs a new hierarchical layout algorithm.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxHierarchicalLayout.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.roots" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">roots</a></td><td class=SDescription>Holds the array of <a href="../../model/mxCell-js.html#mxCell" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">mxCell</a> that this layout contains.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.resizeParent" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">resizeParent</a></td><td class=SDescription>Specifies if the parent should be resized after the layout so that it contains all the child cells. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.moveParent" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">moveParent</a></td><td class=SDescription>Specifies if the parent should be moved if <a href="#mxHierarchicalLayout.resizeParent" class=LVariable id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">resizeParent</a> is enabled. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.parentBorder" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">parentBorder</a></td><td class=SDescription>The border to be added around the children if the parent is to be resized using <a href="#mxHierarchicalLayout.resizeParent" class=LVariable id=link8 onMouseOver="ShowTip(event, 'tt4', 'link8')" onMouseOut="HideTip('tt4')">resizeParent</a>. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.intraCellSpacing" id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">intraCellSpacing</a></td><td class=SDescription>The spacing buffer added between cells on the same layer. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.interRankCellSpacing" id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">interRankCellSpacing</a></td><td class=SDescription>The spacing buffer added between cell on adjacent layers. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.interHierarchySpacing" id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">interHierarchySpacing</a></td><td class=SDescription>The spacing buffer between unconnected hierarchies. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.parallelEdgeSpacing" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">parallelEdgeSpacing</a></td><td class=SDescription>The distance between each parallel edge on each ranks for long edges</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.orientation" id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">orientation</a></td><td class=SDescription>The position of the root node(s) relative to the laid out graph in. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.fineTuning" id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">fineTuning</a></td><td class=SDescription>Whether or not to perform local optimisations and iterate multiple times through the algorithm. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.tightenToSource" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">tightenToSource</a></td><td class=SDescription>Whether or not to tighten the assigned ranks of vertices up towards the source cells.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.disableEdgeStyle" id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">disableEdgeStyle</a></td><td class=SDescription>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.traverseAncestors" id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">traverseAncestors</a></td><td class=SDescription>Whether or not to drill into child cells and layout in reverse group order. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.model" id=link18 onMouseOver="ShowTip(event, 'tt16', 'link18')" onMouseOut="HideTip('tt16')">model</a></td><td class=SDescription>The internal <a href="model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19')" onMouseOut="HideTip('tt17')">mxGraphHierarchyModel</a> formed of the layout.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.edgesSet" >edgesSet</a></td><td class=SDescription>A cache of edges whose source terminal is the key</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxHierarchicalLayout.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.getModel" id=link20 onMouseOver="ShowTip(event, 'tt18', 'link20')" onMouseOut="HideTip('tt18')">getModel</a></td><td class=SDescription>Returns the internal <a href="model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt17', 'link21')" onMouseOut="HideTip('tt17')">mxGraphHierarchyModel</a> for this layout algorithm.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.execute" id=link22 onMouseOver="ShowTip(event, 'tt19', 'link22')" onMouseOut="HideTip('tt19')">execute</a></td><td class=SDescription>Executes the layout for the children of the specified parent.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.findRoots" id=link23 onMouseOver="ShowTip(event, 'tt20', 'link23')" onMouseOut="HideTip('tt20')">findRoots</a></td><td class=SDescription>Returns all visible children in the given parent which do not have incoming edges. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.getEdges" id=link24 onMouseOver="ShowTip(event, 'tt21', 'link24')" onMouseOut="HideTip('tt21')">getEdges</a></td><td class=SDescription>Returns the connected edges for the given cell.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.getVisibleTerminal" id=link25 onMouseOver="ShowTip(event, 'tt22', 'link25')" onMouseOut="HideTip('tt22')">getVisibleTerminal</a></td><td class=SDescription>Helper function to return visible terminal for edge allowing for ports</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.run" id=link26 onMouseOver="ShowTip(event, 'tt23', 'link26')" onMouseOut="HideTip('tt23')">run</a></td><td class=SDescription>The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.filterDescendants" id=link27 onMouseOver="ShowTip(event, 'tt24', 'link27')" onMouseOut="HideTip('tt24')">filterDescendants</a></td><td class=SDescription>Creates an array of descendant cells</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.isPort" id=link28 onMouseOver="ShowTip(event, 'tt25', 'link28')" onMouseOut="HideTip('tt25')">isPort</a></td><td class=SDescription>Returns true if the given cell is a &ldquo;port&rdquo;, that is, when connecting to it, its parent is the connecting vertex in terms of graph traversal</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.getEdgesBetween" id=link29 onMouseOver="ShowTip(event, 'tt26', 'link29')" onMouseOut="HideTip('tt26')">getEdgesBetween</a></td><td class=SDescription>Returns the edges between the given source and target. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.cycleStage" id=link30 onMouseOver="ShowTip(event, 'tt27', 'link30')" onMouseOut="HideTip('tt27')">cycleStage</a></td><td class=SDescription>Executes the cycle stage using mxMinimumCycleRemover.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.layeringStage" id=link31 onMouseOver="ShowTip(event, 'tt28', 'link31')" onMouseOut="HideTip('tt28')">layeringStage</a></td><td class=SDescription>Implements first stage of a Sugiyama layout.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxHierarchicalLayout.crossingStage" id=link32 onMouseOver="ShowTip(event, 'tt29', 'link32')" onMouseOut="HideTip('tt29')">crossingStage</a></td><td class=SDescription>Executes the crossing stage using mxMedianHybridCrossingReduction.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxHierarchicalLayout.placementStage" id=link33 onMouseOver="ShowTip(event, 'tt30', 'link33')" onMouseOut="HideTip('tt30')">placementStage</a></td><td class=SDescription>Executes the placement stage using mxCoordinateAssignment.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.Functions"></a>Functions</h3></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.mxHierarchicalLayout"></a>mxHierarchicalLayout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxHierarchicalLayout(</td><td class=PParameter nowrap>graph,</td></tr><tr><td></td><td class=PParameter nowrap>orientation,</td></tr><tr><td></td><td class=PParameter nowrap>deterministic</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new hierarchical layout algorithm.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>graph</td><td class=CDLDescription>Reference to the enclosing <a href="../../view/mxGraph-js.html#mxGraph" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt31', 'link34')" onMouseOut="HideTip('tt31')">mxGraph</a>.</td></tr><tr><td class=CDLEntry>orientation</td><td class=CDLDescription>Optional constant that defines the orientation of this layout.</td></tr><tr><td class=CDLEntry>deterministic</td><td class=CDLDescription>Optional boolean that specifies if this layout should be deterministic.&nbsp; Default is true.</td></tr></table></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.Variables"></a>Variables</h3></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.roots"></a>roots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.roots</td></tr></table></blockquote><p>Holds the array of <a href="../../model/mxCell-js.html#mxCell" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt3', 'link35')" onMouseOut="HideTip('tt3')">mxCell</a> that this layout contains.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.resizeParent"></a>resizeParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.resizeParent</td></tr></table></blockquote><p>Specifies if the parent should be resized after the layout so that it contains all the child cells.&nbsp; Default is false.&nbsp; See also <a href="#mxHierarchicalLayout.parentBorder" class=LVariable id=link36 onMouseOver="ShowTip(event, 'tt6', 'link36')" onMouseOut="HideTip('tt6')">parentBorder</a>.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.moveParent"></a>moveParent</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.moveParent</td></tr></table></blockquote><p>Specifies if the parent should be moved if <a href="#mxHierarchicalLayout.resizeParent" class=LVariable id=link37 onMouseOver="ShowTip(event, 'tt4', 'link37')" onMouseOut="HideTip('tt4')">resizeParent</a> is enabled.&nbsp; Default is false.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.parentBorder"></a>parentBorder</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.parentBorder</td></tr></table></blockquote><p>The border to be added around the children if the parent is to be resized using <a href="#mxHierarchicalLayout.resizeParent" class=LVariable id=link38 onMouseOver="ShowTip(event, 'tt4', 'link38')" onMouseOut="HideTip('tt4')">resizeParent</a>.&nbsp; Default is 0.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.intraCellSpacing"></a>intraCellSpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.intraCellSpacing</td></tr></table></blockquote><p>The spacing buffer added between cells on the same layer.&nbsp; Default is 30.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.interRankCellSpacing"></a>interRankCellSpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.interRankCellSpacing</td></tr></table></blockquote><p>The spacing buffer added between cell on adjacent layers.&nbsp; Default is 50.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.interHierarchySpacing"></a>interHierarchySpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.interHierarchySpacing</td></tr></table></blockquote><p>The spacing buffer between unconnected hierarchies.&nbsp; Default is 60.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.parallelEdgeSpacing"></a>parallelEdgeSpacing</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.parallelEdgeSpacing</td></tr></table></blockquote><p>The distance between each parallel edge on each ranks for long edges</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.orientation"></a>orientation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.orientation</td></tr></table></blockquote><p>The position of the root node(s) relative to the laid out graph in.&nbsp; Default is <a href="../../util/mxConstants-js.html#mxConstants.DIRECTION_NORTH" class=LVariable id=link39 onMouseOver="ShowTip(event, 'tt32', 'link39')" onMouseOut="HideTip('tt32')">mxConstants.DIRECTION_NORTH</a>.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.fineTuning"></a>fineTuning</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.fineTuning</td></tr></table></blockquote><p>Whether or not to perform local optimisations and iterate multiple times through the algorithm.&nbsp; Default is true.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.tightenToSource"></a>tightenToSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.tightenToSource</td></tr></table></blockquote><p>Whether or not to tighten the assigned ranks of vertices up towards the source cells.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.disableEdgeStyle"></a>disableEdgeStyle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.disableEdgeStyle</td></tr></table></blockquote><p>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result.&nbsp; Default is true.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.traverseAncestors"></a>traverseAncestors</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.traverseAncestors</td></tr></table></blockquote><p>Whether or not to drill into child cells and layout in reverse group order.&nbsp; This also cause the layout to navigate edges whose terminal vertices * have different parents but are in the same ancestry chain</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.model"></a>model</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.model</td></tr></table></blockquote><p>The internal <a href="model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" class=LClass id=link40 onMouseOver="ShowTip(event, 'tt17', 'link40')" onMouseOut="HideTip('tt17')">mxGraphHierarchyModel</a> formed of the layout.</p></div></div></div>
<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.edgesSet"></a>edgesSet</h3><div class=CBody><p>A cache of edges whose source terminal is the key</p></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.Functions"></a>Functions</h3></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.getModel"></a>getModel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.getModel = function()</td></tr></table></blockquote><p>Returns the internal <a href="model/mxGraphHierarchyModel-js.html#mxGraphHierarchyModel" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt17', 'link41')" onMouseOut="HideTip('tt17')">mxGraphHierarchyModel</a> for this layout algorithm.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.execute"></a>execute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.execute = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>roots</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the layout for the children of the specified parent.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription>Parent <a href="../../model/mxCell-js.html#mxCell" class=LClass id=link42 onMouseOver="ShowTip(event, 'tt3', 'link42')" onMouseOut="HideTip('tt3')">mxCell</a> that contains the children to be laid out.</td></tr><tr><td class=CDLEntry>roots</td><td class=CDLDescription>Optional starting roots of the layout.</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.findRoots"></a>findRoots</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.findRoots = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>vertices</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns all visible children in the given parent which do not have incoming edges.&nbsp; If the result is empty then the children with the maximum difference between incoming and outgoing edges are returned.&nbsp; This takes into account edges that are being promoted to the given root due to invisible children or collapsed cells.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>parent</td><td class=CDLDescription><a href="../../model/mxCell-js.html#mxCell" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt3', 'link43')" onMouseOut="HideTip('tt3')">mxCell</a> whose children should be checked.</td></tr><tr><td class=CDLEntry>vertices</td><td class=CDLDescription>array of vertices to limit search to</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.getEdges"></a>getEdges</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getEdges = function(</td><td class=PParameter nowrap>cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the connected edges for the given cell.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="../../model/mxCell-js.html#mxCell" class=LClass id=link44 onMouseOver="ShowTip(event, 'tt3', 'link44')" onMouseOut="HideTip('tt3')">mxCell</a> whose edges should be returned.</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.getVisibleTerminal"></a>getVisibleTerminal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getVisibleTerminal = function(</td><td class=PParameter nowrap>edge,</td></tr><tr><td></td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Helper function to return visible terminal for edge allowing for ports</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>edge</td><td class=CDLDescription><a href="../../model/mxCell-js.html#mxCell" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt3', 'link45')" onMouseOut="HideTip('tt3')">mxCell</a> whose edges should be returned.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Boolean that specifies whether the source or target terminal is to be returned</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.run"></a>run</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.run = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made.&nbsp; It runs each stage of the layout that has been created.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.filterDescendants"></a>filterDescendants</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.filterDescendants = function(</td><td class=PParameter nowrap>cell,</td></tr><tr><td></td><td class=PParameter nowrap>result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates an array of descendant cells</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.isPort"></a>isPort</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.isPort = function(</td><td class=PParameter nowrap>cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is a &ldquo;port&rdquo;, that is, when connecting to it, its parent is the connecting vertex in terms of graph traversal</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cell</td><td class=CDLDescription><a href="../../model/mxCell-js.html#mxCell" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt3', 'link46')" onMouseOut="HideTip('tt3')">mxCell</a> that represents the port.</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.getEdgesBetween"></a>getEdgesBetween</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getEdgesBetween = function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>target,</td></tr><tr><td></td><td class=PParameter nowrap>directed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the edges between the given source and target.&nbsp; This takes into account collapsed and invisible cells and ports.</p><h4 class=CHeading>Parameters</h4><p>source - target - directed -</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.cycleStage"></a>cycleStage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.cycleStage = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the cycle stage using mxMinimumCycleRemover.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.layeringStage"></a>layeringStage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.layeringStage = function()</td></tr></table></blockquote><p>Implements first stage of a Sugiyama layout.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.crossingStage"></a>crossingStage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.crossingStage = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the crossing stage using mxMedianHybridCrossingReduction.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxHierarchicalLayout.placementStage"></a>placementStage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.placementStage = function(</td><td class=PParameter nowrap>initialX,</td></tr><tr><td></td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the placement stage using mxCoordinateAssignment.</p></div></div></div>
</div><!--Content-->
<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
<div id=Menu><div class=MEntry><div class=MFile><a href="../../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../../editor/mxDefaultKeyHandler-js.html">mxDefaultKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../editor/mxDefaultPopupMenu-js.html">mxDefaultPopupMenu</a></div></div><div class=MEntry><div class=MFile><a href="../../editor/mxDefaultToolbar-js.html">mxDefaultToolbar</a></div></div><div class=MEntry><div class=MFile><a href="../../editor/mxEditor-js.html">mxEditor</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Handler</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../../handler/mxCellHighlight-js.html">mxCellHighlight</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxCellMarker-js.html">mxCellMarker</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxCellTracker-js.html">mxCellTracker</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxConnectionHandler-js.html">mxConnectionHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxConstraintHandler-js.html">mxConstraintHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxEdgeHandler-js.html">mxEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxEdgeSegmentHandler-js.html">mxEdgeSegmentHandler.js</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxElbowEdgeHandler-js.html">mxElbowEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxGraphHandler-js.html">mxGraphHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxKeyHandler-js.html">mxKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxPanningHandler-js.html">mxPanningHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxPopupMenuHandler-js.html">mxPanningHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxRubberband-js.html">mxRubberband</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxSelectionCellsHandler-js.html">mxSelectionCellsHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxTooltipHandler-js.html">mxTooltipHandler</a></div></div><div class=MEntry><div class=MFile><a href="../../handler/mxVertexHandler-js.html">mxVertexHandler</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Io</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../../io/mxCellCodec-js.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxChildChangeCodec-js.html">mxChildChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxCodec-js.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxCodecRegistry-js.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxDefaultKeyHandlerCodec-js.html">mxDefaultKeyHandlerCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxDefaultPopupMenuCodec-js.html">mxDefaultPopupMenuCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxDefaultToolbarCodec-js.html">mxDefaultToolbarCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxEditorCodec-js.html">mxEditorCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxGenericChangeCodec-js.html">mxGenericChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxGraphCodec-js.html">mxGraphCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxGraphViewCodec-js.html">mxGraphViewCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxModelCodec-js.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxObjectCodec-js.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxRootChangeCodec-js.html">mxRootChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxStylesheetCodec-js.html">mxStylesheetCodec</a></div></div><div class=MEntry><div class=MFile><a href="../../io/mxTerminalChangeCodec-js.html">mxTerminalChangeCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Layout</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Hierarchical</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Model</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="model/mxGraphAbstractHierarchyCell-js.html">mxGraphAbstractHierarchyCell</a></div></div><div class=MEntry><div class=MFile><a href="model/mxGraphHierarchyEdge-js.html">mxGraphHierarchyEdge</a></div></div><div class=MEntry><div class=MFile><a href="model/mxGraphHierarchyModel-js.html">mxGraphHierarchyModel</a></div></div><div class=MEntry><div class=MFile><a href="model/mxGraphHierarchyNode-js.html">mxGraphHierarchyNode</a></div></div></div></div></div><div class=MEntry><div class=MFile id=MSelected>mxHierarchicalLayout</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Stage</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MFile><a href="stage/mxCoordinateAssignment-js.html">mxCoordinateAssignment</a></div></div><div class=MEntry><div class=MFile><a href="stage/mxHierarchicalLayoutStage-js.html">mxHierarchicalLayoutStage</a></div></div><div class=MEntry><div class=MFile><a href="stage/mxMedianHybridCrossingReduction-js.html">mxMedianHybridCrossingReduction</a></div></div><div class=MEntry><div class=MFile><a href="stage/mxMinimumCycleRemover-js.html">mxMinimumCycleRemover</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../mxCircleLayout-js.html">mxCircleLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxCompactTreeLayout-js.html">mxCompactTreeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxCompositeLayout-js.html">mxCompositeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxEdgeLabelLayout-js.html">mxEdgeLabelLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxFastOrganicLayout-js.html">mxFastOrganicLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxGraphLayout-js.html">mxGraphLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxParallelEdgeLayout-js.html">mxParallelEdgeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxPartitionLayout-js.html">mxPartitionLayout</a></div></div><div class=MEntry><div class=MFile><a href="../mxStackLayout-js.html">mxStackLayout</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Model</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MFile><a href="../../model/mxCell-js.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../../model/mxCellPath-js.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../../model/mxGeometry-js.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../../model/mxGraphModel-js.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../../mxClient-js.html">mxClient</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent9')">Shape</a><div class=MGroupContent id=MGroupContent9><div class=MEntry><div class=MFile><a href="../../shape/mxActor-js.html">mxActor</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxArrow-js.html">mxArrow</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxCloud-js.html">mxCloud</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxConnector-js.html">mxConnector</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxCylinder-js.html">mxCylinder</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxDoubleEllipse-js.html">mxDoubleEllipse</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxEllipse-js.html">mxEllipse</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxHexagon-js.html">mxHexagon</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxImageShape-js.html">mxImageShape</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxLabel-js.html">mxLabel</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxLine-js.html">mxLine</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxMarker-js.html">mxMarker</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxPolyline-js.html">mxPolyline</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxRectangleShape-js.html">mxRectangleShape</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxRhombus-js.html">mxRhombus</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxShape-js.html">mxShape</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxStencil-js.html">mxStencil</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxStencilRegistry-js.html">mxStencilRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxSwimlane-js.html">mxSwimlane</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxText-js.html">mxText</a></div></div><div class=MEntry><div class=MFile><a href="../../shape/mxTriangle-js.html">mxTriangle</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent10')">Util</a><div class=MGroupContent id=MGroupContent10><div class=MEntry><div class=MFile><a href="../../util/mxAbstractCanvas2D-js.html">mxAbstractCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxAnimation-js.html">mxAnimation</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxAutoSaveManager-js.html">mxAutoSaveManager</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxClipboard-js.html">mxClipboard</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxConstants-js.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxDictionary-js.html">mxDictionary</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxDivResizer-js.html">mxDivResizer</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxDragSource-js.html">mxDragSource</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxEffects-js.html">mxEffects</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxEvent-js.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxEventObject-js.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxEventSource-js.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxForm-js.html">mxForm</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxGuide-js.html">mxGuide</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxImage-js.html">mxImage</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxImageBundle-js.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxImageExport-js.html">mxImageExport</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxLog-js.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxMorphing-js.html">mxMorphing</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxMouseEvent-js.html">mxMouseEvent</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxObjectIdentity-js.html">mxObjectIdentity</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxPanningManager-js.html">mxPanningManager</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxPoint-js.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxPopupMenu-js.html">mxPopupMenu</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxRectangle-js.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxResources-js.html">mxResources</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxSession-js.html">mxSession</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxSvgCanvas2D-js.html">mxSvgCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxToolbar-js.html">mxToolbar</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxUndoableEdit-js.html">mxUndoableEdit</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxUndoManager-js.html">mxUndoManager</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxUrlConverter-js.html">mxUrlConverter</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxUtils-js.html">mxUtils</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxVmlCanvas2D-js.html">mxVmlCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxWindow-js.html">mxWindow</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxXmlCanvas2D-js.html">mxXmlCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../../util/mxXmlRequest-js.html">mxXmlRequest</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent11')">View</a><div class=MGroupContent id=MGroupContent11><div class=MEntry><div class=MFile><a href="../../view/mxCellEditor-js.html">mxCellEditor</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxCellOverlay-js.html">mxCellOverlay</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxCellRenderer-js.html">mxCellRenderer</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxCellState-js.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxCellStatePreview-js.html">mxCellStatePreview</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxConnectionConstraint-js.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxEdgeStyle-js.html">mxEdgeStyle</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxGraph-js.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxGraphSelectionModel-js.html">mxGraphSelectionModel</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxGraphView-js.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxLayoutManager-js.html">mxLayoutManager</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxMultiplicity-js.html">mxMultiplicity</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxOutline-js.html">mxOutline</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxPerimeter-js.html">mxPerimeter</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxPrintPreview-js.html">mxPrintPreview</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxSpaceManager-js.html">mxSpaceManager</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxStyleRegistry-js.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxStylesheet-js.html">mxStylesheet</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxSwimlaneManager-js.html">mxSwimlaneManager</a></div></div><div class=MEntry><div class=MFile><a href="../../view/mxTemporaryCellStates-js.html">mxTemporaryCellStates</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent12')">Index</a><div class=MGroupContent id=MGroupContent12><div class=MEntry><div class=MIndex><a href="../../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Cookies.html">Cookies</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Events.html">Events</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Cookies">Cookies</option><option value="Events">Events</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([6, 7], 13);// --></script></div><!--Menu-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function mxHierarchicalLayout(</td><td class=PParameter nowrap>graph,</td></tr><tr><td></td><td class=PParameter nowrap>orientation,</td></tr><tr><td></td><td class=PParameter nowrap>deterministic</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new hierarchical layout algorithm.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.roots</td></tr></table></blockquote>Holds the array of mxCell that this layout contains.</div></div><div class=CToolTip id="tt3"><div class=CClass>Cells are the elements of the graph model. </div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.resizeParent</td></tr></table></blockquote>Specifies if the parent should be resized after the layout so that it contains all the child cells. </div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.moveParent</td></tr></table></blockquote>Specifies if the parent should be moved if resizeParent is enabled. </div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.parentBorder</td></tr></table></blockquote>The border to be added around the children if the parent is to be resized using resizeParent. </div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.intraCellSpacing</td></tr></table></blockquote>The spacing buffer added between cells on the same layer. </div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.interRankCellSpacing</td></tr></table></blockquote>The spacing buffer added between cell on adjacent layers. </div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.interHierarchySpacing</td></tr></table></blockquote>The spacing buffer between unconnected hierarchies. </div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.parallelEdgeSpacing</td></tr></table></blockquote>The distance between each parallel edge on each ranks for long edges</div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.orientation</td></tr></table></blockquote>The position of the root node(s) relative to the laid out graph in. </div></div><div class=CToolTip id="tt12"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.fineTuning</td></tr></table></blockquote>Whether or not to perform local optimisations and iterate multiple times through the algorithm. </div></div><div class=CToolTip id="tt13"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.tightenToSource</td></tr></table></blockquote>Whether or not to tighten the assigned ranks of vertices up towards the source cells.</div></div><div class=CToolTip id="tt14"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.disableEdgeStyle</td></tr></table></blockquote>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. </div></div><div class=CToolTip id="tt15"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.traverseAncestors</td></tr></table></blockquote>Whether or not to drill into child cells and layout in reverse group order. </div></div><div class=CToolTip id="tt16"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.model</td></tr></table></blockquote>The internal mxGraphHierarchyModel formed of the layout.</div></div><div class=CToolTip id="tt17"><div class=CClass>Internal model of a hierarchical graph. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.getModel = function()</td></tr></table></blockquote>Returns the internal mxGraphHierarchyModel for this layout algorithm.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.execute = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>roots</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the layout for the children of the specified parent.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.findRoots = function(</td><td class=PParameter nowrap>parent,</td></tr><tr><td></td><td class=PParameter nowrap>vertices</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns all visible children in the given parent which do not have incoming edges. </div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getEdges = function(</td><td class=PParameter nowrap>cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the connected edges for the given cell.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getVisibleTerminal = function(</td><td class=PParameter nowrap>edge,</td></tr><tr><td></td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Helper function to return visible terminal for edge allowing for ports</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.run = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.filterDescendants = function(</td><td class=PParameter nowrap>cell,</td></tr><tr><td></td><td class=PParameter nowrap>result</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates an array of descendant cells</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.isPort = function(</td><td class=PParameter nowrap>cell</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns true if the given cell is a &ldquo;port&rdquo;, that is, when connecting to it, its parent is the connecting vertex in terms of graph traversal</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.getEdgesBetween = function(</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PParameter nowrap>target,</td></tr><tr><td></td><td class=PParameter nowrap>directed</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the edges between the given source and target. </div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.cycleStage = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the cycle stage using mxMinimumCycleRemover.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxHierarchicalLayout.prototype.layeringStage = function()</td></tr></table></blockquote>Implements first stage of a Sugiyama layout.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.crossingStage = function(</td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the crossing stage using mxMedianHybridCrossingReduction.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>mxHierarchicalLayout.prototype.placementStage = function(</td><td class=PParameter nowrap>initialX,</td></tr><tr><td></td><td class=PParameter nowrap>parent</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the placement stage using mxCoordinateAssignment.</div></div><div class=CToolTip id="tt31"><div class=CClass>Extends mxEventSource to implement a graph component for the browser. </div></div><div class=CToolTip id="tt32"><div class=CVariable>Constant for direction north. </div></div><!--END_ND_TOOLTIPS-->
<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>