<divid=Content><divclass="CClass"><divclass=CTopicid=MainTopic><h1class=CTitle><aname="mxCompactTreeLayout"></a>mxCompactTreeLayout</h1><divclass=CBody><p>Extends <ahref="mxGraphLayout-js.html#mxGraphLayout"class=LClassid=link54onMouseOver="ShowTip(event, 'tt1', 'link54')"onMouseOut="HideTip('tt1')">mxGraphLayout</a> to implement a compact tree (Moen) algorithm. This layout is suitable for graphs that have no cycles (trees). Vertices that are not connected to the tree will be ignored by this layout.</p><h4class=CHeading>Example</h4><blockquote><preclass="prettyprint">var layout = new mxCompactTreeLayout(graph);
layout.execute(graph.getDefaultParent());</pre></blockquote><!--START_ND_SUMMARY--><divclass=Summary><divclass=STitle>Summary</div><divclass=SBorder><tableborder=0cellspacing=0cellpadding=0class=STable><trclass="SMain"><tdclass=SEntry><ahref="#mxCompactTreeLayout">mxCompactTreeLayout</a></td><tdclass=SDescription>Extends <ahref="mxGraphLayout-js.html#mxGraphLayout"class=LClassid=link1onMouseOver="ShowTip(event, 'tt1', 'link1')"onMouseOut="HideTip('tt1')">mxGraphLayout</a> to implement a compact tree (Moen) algorithm. </td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxCompactTreeLayout.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.mxCompactTreeLayout"id=link2onMouseOver="ShowTip(event, 'tt2', 'link2')"onMouseOut="HideTip('tt2')">mxCompactTreeLayout</a></td><tdclass=SDescription>Constructs a new compact tree layout for the specified graph and orientation.</td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxCompactTreeLayout.Variables">Variables</a></td><tdclass=SDescription></td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.horizontal"id=link3onMouseOver="ShowTip(event, 'tt3', 'link3')"onMouseOut="HideTip('tt3')">horizontal</a></td><tdclass=SDescription>Specifies the orientation of the layout. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.invert"id=link4onMouseOver="ShowTip(event, 'tt4', 'link4')"onMouseOut="HideTip('tt4')">invert</a></td><tdclass=SDescription>Specifies if edge directions should be inverted. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.resizeParent"id=link5onMouseOver="ShowTip(event, 'tt5', 'link5')"onMouseOut="HideTip('tt5')">resizeParent</a></td><tdclass=SDescription>If the parents should be resized to match the width/height of the children. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.maintainParentLocation"id=link6onMouseOver="ShowTip(event, 'tt6', 'link6')"onMouseOut="HideTip('tt6')">maintainParentLocation</a></td><tdclass=SDescription>Specifies if the parent location should be maintained, so that the top, left corner stays the same before and after execution of the layout. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPadding"id=link7onMouseOver="ShowTip(event, 'tt7', 'link7')"onMouseOut="HideTip('tt7')">groupPadding</a></td><tdclass=SDescription>Padding added to resized parents. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPaddingTop"id=link8onMouseOver="ShowTip(event, 'tt8', 'link8')"onMouseOut="HideTip('tt8')">groupPaddingTop</a></td><tdclass=SDescription>Top padding added to resized parents. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPaddingRight"id=link9onMouseOver="ShowTip(event, 'tt9', 'link9')"onMouseOut="HideTip('tt9')">groupPaddingRight</a></td><tdclass=SDescription>Right padding added to resized parents. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPaddingBottom"id=link10onMouseOver="ShowTip(event, 'tt10', 'link10')"onMouseOut="HideTip('tt10')">groupPaddingBottom</a></td><tdclass=SDescription>Bottom padding added to resized parents. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPaddingLeft"id=link11onMouseOver="ShowTip(event, 'tt11', 'link11')"onMouseOut="HideTip('tt11')">groupPaddingLeft</a></td><tdclass=SDescription>Left padding added to resized parents. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.parentsChanged"id=link12onMouseOver="ShowTip(event, 'tt12', 'link12')"onMouseOut="HideTip('tt12')">parentsChanged</a></td><tdclass=SDescription>A set of the parents that need updating based on children process as part of
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.mxCompactTreeLayout"></a>mxCompactTreeLayout</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>function mxCompactTreeLayout(</td><tdclass="PParameter prettyprint "nowrap>graph,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>horizontal,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>invert</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new compact tree layout for the specified graph and orientation.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.horizontal"></a>horizontal</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.horizontal</td></tr></table></blockquote><p>Specifies the orientation of the layout. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.invert"></a>invert</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.invert</td></tr></table></blockquote><p>Specifies if edge directions should be inverted. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.resizeParent"></a>resizeParent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.resizeParent</td></tr></table></blockquote><p>If the parents should be resized to match the width/height of the children. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.maintainParentLocation"></a>maintainParentLocation</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.maintainParentLocation</td></tr></table></blockquote><p>Specifies if the parent location should be maintained, so that the top, left corner stays the same before and after execution of the layout. Default is false for backwards compatibility.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.groupPadding"></a>groupPadding</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPadding</td></tr></table></blockquote><p>Padding added to resized parents. Default is 10.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.groupPaddingTop"></a>groupPaddingTop</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingTop</td></tr></table></blockquote><p>Top padding added to resized parents. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.groupPaddingRight"></a>groupPaddingRight</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingRight</td></tr></table></blockquote><p>Right padding added to resized parents. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.groupPaddingBottom"></a>groupPaddingBottom</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingBottom</td></tr></table></blockquote><p>Bottom padding added to resized parents. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.groupPaddingLeft"></a>groupPaddingLeft</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingLeft</td></tr></table></blockquote><p>Left padding added to resized parents. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.parentsChanged"></a>parentsChanged</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.parentsChanged</td></tr></table></blockquote><p>A set of the parents that need updating based on children process as part of the layout.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.moveTree"></a>moveTree</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.moveTree</td></tr></table></blockquote><p>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.visited"></a>visited</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.visited</td></tr></table></blockquote><p>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.levelDistance"></a>levelDistance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.levelDistance</td></tr></table></blockquote><p>Holds the levelDistance. Default is 10.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.nodeDistance"></a>nodeDistance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.nodeDistance</td></tr></table></blockquote><p>Holds the nodeDistance. Default is 20.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.resetEdges"></a>resetEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.resetEdges</td></tr></table></blockquote><p>Specifies if all edge points of traversed edges should be removed. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.prefHozEdgeSep"></a>prefHozEdgeSep</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.prefHozEdgeSep</td></tr></table></blockquote><p>The preferred horizontal distance between edges exiting a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.prefVertEdgeOff"></a>prefVertEdgeOff</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.prefVertEdgeOff</td></tr></table></blockquote><p>The preferred vertical offset between edges exiting a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.minEdgeJetty"></a>minEdgeJetty</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.minEdgeJetty</td></tr></table></blockquote><p>The minimum distance for an edge jetty from a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.channelBuffer"></a>channelBuffer</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.channelBuffer</td></tr></table></blockquote><p>The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.edgeRouting"></a>edgeRouting</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.edgeRouting</td></tr></table></blockquote><p>Whether or not to apply the internal tree edge routing.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.sortEdges"></a>sortEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.sortEdges</td></tr></table></blockquote><p>Specifies if edges should be sorted according to the order of their opposite terminal cell in the model.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.alignRanks"></a>alignRanks</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.alignRanks</td></tr></table></blockquote><p>Whether or not the tops of cells in each rank should be aligned across the rank</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.maxRankHeight"></a>maxRankHeight</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.maxRankHeight</td></tr></table></blockquote><p>An array of the maximum height of cells (relative to the layout direction) per rank</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.root"></a>root</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.root</td></tr></table></blockquote><p>The cell to use as the root of the tree</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.node"></a>node</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.node</td></tr></table></blockquote><p>The internal node representation of the root cell. Do not set directly , this value is only exposed to assist with post-processing functionality</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.isVertexIgnored"></a>isVertexIgnored</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.isVertexIgnored = function(</td><tdclass="PParameter prettyprint "nowrap>vertex</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a boolean indicating if the given <ahref="../model/mxCell-js.html#mxCell"class=LClassid=link55onMouseOver="ShowTip(event, 'tt29', 'link55')"onMouseOut="HideTip('tt29')">mxCell</a> should be ignored as a vertex. This returns true if the cell has no connections.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>vertex</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link56onMouseOver="ShowTip(event, 'tt29', 'link56')"onMouseOut="HideTip('tt29')">mxCell</a> whose ignored state should be returned.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.execute"></a>execute</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.execute = function(</td><tdclass="PParameter prettyprint "nowrap>parent,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>root</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Implements <ahref="mxGraphLayout-js.html#mxGraphLayout.execute"class=LFunctionid=link58onMouseOver="ShowTip(event, 'tt32', 'link58')"onMouseOut="HideTip('tt32')">mxGraphLayout.execute</a>.</p><p>If the parent has any connected edges, then it is used as the root of the tree. Else, <ahref="../view/mxGraph-js.html#mxGraph.findTreeRoots"class=LFunctionid=link59onMouseOver="ShowTip(event, 'tt52', 'link59')"onMouseOut="HideTip('tt52')">mxGraph.findTreeRoots</a> will be used to find a suitable root node within the set of children of the given parent.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>parent</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link60onMouseOver="ShowTip(event, 'tt29', 'link60')"onMouseOut="HideTip('tt29')">mxCell</a> whose children should be laid out.</td></tr><tr><tdclass=CDLEntry>root</td><tdclass=CDLDescription>Optional <ahref="../model/mxCell-js.html#mxCell"class=LClassid=link61onMouseOver="ShowTip(event, 'tt29', 'link61')"onMouseOut="HideTip('tt29')">mxCell</a> that will be used as the root of the tree. Overrides <ahref="#mxCompactTreeLayout.root"class=LVariableid=link62onMouseOver="ShowTip(event, 'tt26', 'link62')"onMouseOut="HideTip('tt26')">root</a> if specified.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.moveNode"></a>moveNode</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.moveNode = function(</td><tdclass="PParameter prettyprint "nowrap>node,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>dx,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>dy</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the specified node and all of its children by the given amount.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.sortOutgoingEdges"></a>sortOutgoingEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.sortOutgoingEdges = function(</td><tdclass="PParameter prettyprint "nowrap>source,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>edges</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called if <ahref="#mxCompactTreeLayout.sortEdges"class=LVariableid=link63onMouseOver="ShowTip(event, 'tt23', 'link63')"onMouseOut="HideTip('tt23')">sortEdges</a> is true to sort the array of outgoing edges in place.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.findRankHeights"></a>findRankHeights</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.findRankHeights = function(</td><tdclass="PParameter prettyprint "nowrap>node,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>rank</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stores the maximum height (relative to the layout direction) of cells in each rank</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.setCellHeights"></a>setCellHeights</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.setCellHeights = function(</td><tdclass="PParameter prettyprint "nowrap>node,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>rank</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the cells heights (relative to the layout direction) when the tops of each rank are to be aligned</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.dfs"></a>dfs</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.dfs = function(</td><tdclass="PParameter prettyprint "nowrap>cell,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>parent</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Does a depth first search starting at the specified cell. Makes sure the specified parent is never left by the algorithm.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.layout"></a>layout</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.layout = function(</td><tdclass="PParameter prettyprint "nowrap>node</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts the actual compact tree layout algorithm at the given node.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.adjustParents"></a>adjustParents</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.adjustParents = function()</td></tr></table></blockquote><p>Adjust parent cells whose child geometries have changed. The default implementation adjusts the group to just fit around the children with a padding.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.localEdgeProcessing"></a>localEdgeProcessing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxCompactTreeLayout.prototype.localEdgeProcessing = function(</td><tdclass="PParameter prettyprint "nowrap>node</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the specified node and all of its children by the given amount.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.localEdgeProcessing"></a>localEdgeProcessing</h3><divclass=CBody><p>Separates the x position of edges as they connect to vertices</p></div></div></div>
</div><!--Content-->
<divid=Footer><ahref="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
<divclass=CToolTipid="tt1"><divclass=CClass>Base class for all layout algorithms in mxGraph. </div></div><divclass=CToolTipid="tt2"><divclass=CFunction><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>function mxCompactTreeLayout(</td><tdclass="PParameter prettyprint "nowrap>graph,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>horizontal,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>invert</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new compact tree layout for the specified graph and orientation.</div></div><divclass=CToolTipid="tt3"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.horizontal</td></tr></table></blockquote>Specifies the orientation of the layout. </div></div><divclass=CToolTipid="tt4"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.invert</td></tr></table></blockquote>Specifies if edge directions should be inverted. </div></div><divclass=CToolTipid="tt5"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.resizeParent</td></tr></table></blockquote>If the parents should be resized to match the width/height of the children. </div></div><divclass=CToolTipid="tt6"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.maintainParentLocation</td></tr></table></blockquote>Specifies if the parent location should be maintained, so that the top, left corner stays the same before and after execution of the layout. </div></div><divclass=CToolTipid="tt7"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPadding</td></tr></table></blockquote>Padding added to resized parents. </div></div><divclass=CToolTipid="tt8"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingTop</td></tr></table></blockquote>Top padding added to resized parents. </div></div><divclass=CToolTipid="tt9"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingRight</td></tr></table></blockquote>Right padding added to resized parents. </div></div><divclass=CToolTipid="tt10"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingBottom</td></tr></table></blockquote>Bottom padding added to resized parents. </div></div><divclass=CToolTipid="tt11"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.groupPaddingLeft</td></tr></table></blockquote>Left padding added to resized parents. </div></div><divclass=CToolTipid="tt12"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.parentsChanged</td></tr></table></blockquote>A set of the parents that need updating based on children process as part of the layout.</div></div><divclass=CToolTipid="tt13"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxCompactTreeLayout.prototype.moveTree</td></tr></table></blockquote>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. </div></div><divclass=CTool