<divid=Content><divclass="CClass"><divclass=CTopicid=MainTopic><h1class=CTitle><aname="mxEdgeHandler"></a>mxEdgeHandler</h1><divclass=CBody><p>Graph event handler that reconnects edges and modifies control points and the edge label location. Uses <mxTerminalMarker> for finding and highlighting new source and target vertices. This handler is automatically created in <ahref="../view/mxGraph-js.html#mxGraph.createHandler"class=LFunctionid=link106onMouseOver="ShowTip(event, 'tt92', 'link106')"onMouseOut="HideTip('tt92')">mxGraph.createHandler</a> for each selected edge.</p><h4class=CHeading>To enable adding/removing control points, the following code can be used</h4><blockquote><preclass="prettyprint">mxEdgeHandler.prototype.addEnabled = true;
mxEdgeHandler.prototype.removeEnabled = true;</pre></blockquote><p>Note: This experimental feature is not recommended for production use.</p><!--START_ND_SUMMARY--><divclass=Summary><divclass=STitle>Summary</div><divclass=SBorder><tableborder=0cellspacing=0cellpadding=0class=STable><trclass="SMain"><tdclass=SEntry><ahref="#mxEdgeHandler">mxEdgeHandler</a></td><tdclass=SDescription>Graph event handler that reconnects edges and modifies control points and the edge label location. </td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxEdgeHandler.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent2 SMarked"><tdclass=SEntry><ahref="#mxEdgeHandler.mxEdgeHandler"id=link1onMouseOver="ShowTip(event, 'tt1', 'link1')"onMouseOut="HideTip('tt1')">mxEdgeHandler</a></td><tdclass=SDescription>Constructs an edge handler for the specified <ahref="../view/mxCellState-js.html#mxCellState"class=LClassid=link2onMouseOver="ShowTip(event, 'tt2', 'link2')"onMouseOut="HideTip('tt2')">mxCellState</a>.</td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxEdgeHandler.Variables">Variables</a></td><tdclass=SDescription></td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxEdgeHandler.graph"id=link3onMouseOver="ShowTip(event, 'tt3', 'link3')"onMouseOut="HideTip('tt3')">graph</a></td><tdclass=SDescription>Reference to the enclosing <ahref="../view/mxGraph-js.html#mxGraph"class=LClassid=link4onMouseOver="ShowTip(event, 'tt4', 'link4')"onMouseOut="HideTip('tt4')">mxGraph</a>.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxEdgeHandler.state"id=link5onMouseOver="ShowTip(event, 'tt5', 'link5')"onMouseOut="HideTip('tt5')">state</a></td><tdclass=SDescription>Reference to the <ahref="../view/mxCellState-js.html#mxCellState"class=LClassid=link6onMouseOver="ShowTip(event, 'tt2', 'link6')"onMouseOut="HideTip('tt2')">mxCellState</a> being modified.</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxEdgeHandler.marker"id=link7onMouseOver="ShowTip(event, 'tt6', 'link7')"onMouseOut="HideTip('tt6')">marker</a></td><tdclass=SDescription>Holds the <mxTerminalMarker> which is used for highlighting terminals.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxEdgeHandler.constraintHandler"id=link8onMouseOver="ShowTip(event, 'tt7', 'link8')"onMouseOut="HideTip('tt7')">constraintHandler</a></td><tdclass=SDescription>Holds the <ahref="mxConstraintHandler-js.html#mxConstraintHandler"class=LClassid=link9onMouseOver="ShowTip(event, 'tt8', 'link9')"onMouseOut="HideTip('tt8')">mxConstraintHandler</a> used for drawing and highlighting constraints.</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxEdgeHandler.error"id=link10onMouseOver="ShowTip(event, 'tt9', 'link10')"onMouseOut="HideTip('tt9')">error</a></td><tdclass=SDescription>Holds the current validation error while a connection is being changed.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxEdgeHandler.shape"id=link11onMouseOver="ShowTip(event, 'tt10', 'link11')"onMouseOut="HideTip('tt10')">shape</a></td><tdclass=SDescription>Holds the <ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link12onMouseOver="ShowTip(event, 'tt11', 'link12')"onMouseOut="HideTip('tt11')">mxShape</a> that represents the preview edge.</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxEdgeHandler.bends"id=link13onMouseOver="ShowTip(event, 'tt12', 'link13')"onMouseOut="HideTip('tt12')">bends</a></td><tdclass=SDescription>Holds the <ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link14onMouseOver="ShowTip(event, 'tt11', 'link14')"onMouseOut="HideTip('tt11')">mxShapes</a> that represent the points.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxEdgeHandler.labelShape"id=link15onMouseOver="ShowTip(event, 'tt13', 'link15')"onMouseOut="HideTip('tt13')">labelShape</a></td><tdclass=SDescription>Holds the <ahr
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.mxEdgeHandler"></a>mxEdgeHandler</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>function mxEdgeHandler(</td><tdclass="PParameter prettyprint "nowrap>state</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs an edge handler for the specified <ahref="../view/mxCellState-js.html#mxCellState"class=LClassid=link107onMouseOver="ShowTip(event, 'tt2', 'link107')"onMouseOut="HideTip('tt2')">mxCellState</a>.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>state</td><tdclass=CDLDescription><ahref="../view/mxCellState-js.html#mxCellState"class=LClassid=link108onMouseOver="ShowTip(event, 'tt2', 'link108')"onMouseOut="HideTip('tt2')">mxCellState</a> of the cell to be handled.</td></tr></table></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.graph"></a>graph</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.graph</td></tr></table></blockquote><p>Reference to the enclosing <ahref="../view/mxGraph-js.html#mxGraph"class=LClassid=link109onMouseOver="ShowTip(event, 'tt4', 'link109')"onMouseOut="HideTip('tt4')">mxGraph</a>.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.state"></a>state</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.state</td></tr></table></blockquote><p>Reference to the <ahref="../view/mxCellState-js.html#mxCellState"class=LClassid=link110onMouseOver="ShowTip(event, 'tt2', 'link110')"onMouseOut="HideTip('tt2')">mxCellState</a> being modified.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.marker"></a>marker</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.marker</td></tr></table></blockquote><p>Holds the <mxTerminalMarker> which is used for highlighting terminals.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.constraintHandler"></a>constraintHandler</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.constraintHandler</td></tr></table></blockquote><p>Holds the <ahref="mxConstraintHandler-js.html#mxConstraintHandler"class=LClassid=link111onMouseOver="ShowTip(event, 'tt8', 'link111')"onMouseOut="HideTip('tt8')">mxConstraintHandler</a> used for drawing and highlighting constraints.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.error"></a>error</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.error</td></tr></table></blockquote><p>Holds the current validation error while a connection is being changed.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.shape"></a>shape</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.shape</td></tr></table></blockquote><p>Holds the <ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link112onMouseOver="ShowTip(event, 'tt11', 'link112')"onMouseOut="HideTip('tt11')">mxShape</a> that represents the preview edge.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.bends"></a>bends</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.bends</td></tr></table></blockquote><p>Holds the <ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link113onMouseOver="ShowTip(event, 'tt11', 'link113')"onMouseOut="HideTip('tt11')">mxShapes</a> that represent the points.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.labelShape"></a>labelShape</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.labelShape</td></tr></table></blockquote><p>Holds the <ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link114onMouseOver="ShowTip(event, 'tt11', 'link114')"onMouseOut="HideTip('tt11')">mxShape</a> that represents the label position.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.cloneEnabled"></a>cloneEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.cloneEnabled</td></tr></table></blockquote><p>Specifies if cloning by control-drag is enabled. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.addEnabled"></a>addEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.addEnabled</td></tr></table></blockquote><p>Specifies if adding bends by shift-click is enabled. Default is false. Note: This experimental feature is not recommended for production use.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.removeEnabled"></a>removeEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.removeEnabled</td></tr></table></blockquote><p>Specifies if removing bends by shift-click is enabled. Default is false. Note: This experimental feature is not recommended for production use.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.dblClickRemoveEnabled"></a>dblClickRemoveEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.dblClickRemoveEnabled</td></tr></table></blockquote><p>Specifies if removing bends by double click is enabled. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.mergeRemoveEnabled"></a>mergeRemoveEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.mergeRemoveEnabled</td></tr></table></blockquote><p>Specifies if removing bends by dropping them on other bends is enabled. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.straightRemoveEnabled"></a>straightRemoveEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.straightRemoveEnabled</td></tr></table></blockquote><p>Specifies if removing bends by creating straight segments should be enabled. If enabled, this can be overridden by holding down the alt key while moving. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.virtualBendsEnabled"></a>virtualBendsEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.virtualBendsEnabled</td></tr></table></blockquote><p>Specifies if virtual bends should be added in the center of each segments. These bends can then be used to add new waypoints. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.virtualBendOpacity"></a>virtualBendOpacity</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.virtualBendOpacity</td></tr></table></blockquote><p>Opacity to be used for virtual bends (see <ahref="#mxEdgeHandler.virtualBendsEnabled"class=LVariableid=link115onMouseOver="ShowTip(event, 'tt20', 'link115')"onMouseOut="HideTip('tt20')">virtualBendsEnabled</a>). Default is 20.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.parentHighlightEnabled"></a>parentHighlightEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.parentHighlightEnabled</td></tr></table></blockquote><p>Specifies if the parent should be highlighted if a child cell is selected. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.preferHtml"></a>preferHtml</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.preferHtml</td></tr></table></blockquote><p>Specifies if bends should be added to the graph container. This is updated in <ahref="#mxEdgeHandler.init"class=LFunctionid=link116onMouseOver="ShowTip(event, 'tt32', 'link116')"onMouseOut="HideTip('tt32')">init</a> based on whether the edge or one of its terminals has an HTML label in the container.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.allowHandleBoundsCheck"></a>allowHandleBoundsCheck</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.allowHandleBoundsCheck</td></tr></table></blockquote><p>Specifies if the bounds of handles should be used for hit-detection in IE Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.snapToTerminals"></a>snapToTerminals</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.snapToTerminals</td></tr></table></blockquote><p>Specifies if waypoints should snap to the routing centers of terminals. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.handleImage"></a>handleImage</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.handleImage</td></tr></table></blockquote><p>Optional <ahref="../util/mxImage-js.html#mxImage"class=LClassid=link117onMouseOver="ShowTip(event, 'tt27', 'link117')"onMouseOut="HideTip('tt27')">mxImage</a> to be used as handles. Default is null.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.tolerance"></a>tolerance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.tolerance</td></tr></table></blockquote><p>Optional tolerance for hit-detection in <ahref="#mxEdgeHandler.getHandleForEvent"class=LFunctionid=link118onMouseOver="ShowTip(event, 'tt29', 'link118')"onMouseOut="HideTip('tt29')">getHandleForEvent</a>. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.outlineConnect"></a>outlineConnect</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.outlineConnect</td></tr></table></blockquote><p>Specifies if connections to the outline of a highlighted target should be enabled. This will allow to place the connection point along the outline of the highlighted target. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.manageLabelHandle"></a>manageLabelHandle</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.manageLabelHandle</td></tr></table></blockquote><p>Specifies if the label handle should be moved if it intersects with another handle. Uses <ahref="#mxEdgeHandler.checkLabelHandle"class=LFunctionid=link119onMouseOver="ShowTip(event, 'tt87', 'link119')"onMouseOut="HideTip('tt87')">checkLabelHandle</a> for checking and moving. Default is false.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.init"></a>init</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.init = function()</td></tr></table></blockquote><p>Initializes the shapes required for this edge handler.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createCustomHandles"></a>createCustomHandles</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.createCustomHandles = function()</td></tr></table></blockquote><p>Returns an array of custom handles. This implementation returns null.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isVirtualBendsEnabled"></a>isVirtualBendsEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isVirtualBendsEnabled = function(</td><tdclass="PParameter prettyprint "nowrap>evt</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if virtual bends should be added. This returns true if <ahref="#mxEdgeHandler.virtualBendsEnabled"class=LVariableid=link120onMouseOver="ShowTip(event, 'tt20', 'link120')"onMouseOut="HideTip('tt20')">virtualBendsEnabled</a> is true and the current style allows and renders custom waypoints.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isAddPointEvent"></a>isAddPointEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isAddPointEvent = function(</td><tdclass="PParameter prettyprint "nowrap>evt</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given event is a trigger to add a new point. This implementation returns true if shift is pressed.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isRemovePointEvent"></a>isRemovePointEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isRemovePointEvent = function(</td><tdclass="PParameter prettyprint "nowrap>evt</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given event is a trigger to remove a point. This implementation returns true if shift is pressed.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getSelectionPoints"></a>getSelectionPoints</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getSelectionPoints = function(</td><tdclass="PParameter prettyprint "nowrap>state</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the list of points that defines the selection stroke.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createSelectionShape"></a>createSelectionShape</h3><divclass=CBody><p>Creates the shape used to draw the selection border.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createSelectionShape"></a>createSelectionShape</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.createSelectionShape = function(</td><tdclass="PParameter prettyprint "nowrap>points</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the shape used to draw the selection border.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isConnectableCell"></a>isConnectableCell</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isConnectableCell = function(</td><tdclass="PParameter prettyprint "nowrap>cell</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is connectable. This is a hook to disable floating connections. This implementation returns true.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createMarker"></a>createMarker</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.createMarker = function()</td></tr></table></blockquote><p>Creates and returns the <ahref="mxCellMarker-js.html#mxCellMarker"class=LClassid=link125onMouseOver="ShowTip(event, 'tt46', 'link125')"onMouseOut="HideTip('tt46')">mxCellMarker</a> used in <ahref="#mxEdgeHandler.marker"class=LVariableid=link126onMouseOver="ShowTip(event, 'tt6', 'link126')"onMouseOut="HideTip('tt6')">marker</a>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.validateConnection"></a>validateConnection</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.validateConnection = function(</td><tdclass="PParameter prettyprint "nowrap>source,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>target</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the error message or an empty string if the connection for the given source, target pair is not valid. Otherwise it returns null. This implementation uses <ahref="../view/mxGraph-js.html#mxGraph.getEdgeValidationError"class=LFunctionid=link127onMouseOver="ShowTip(event, 'tt93', 'link127')"onMouseOut="HideTip('tt93')">mxGraph.getEdgeValidationError</a>.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>source</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link128onMouseOver="ShowTip(event, 'tt94', 'link128')"onMouseOut="HideTip('tt94')">mxCell</a> that represents the source terminal.</td></tr><tr><tdclass=CDLEntry>target</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link129onMouseOver="ShowTip(event, 'tt94', 'link129')"onMouseOut="HideTip('tt94')">mxCell</a> that represents the target terminal.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createBends"></a>createBends</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.createBends = function()</td></tr></table></blockquote><p>Creates and returns the bends used for modifying the edge. This is typically an array of <ahref="../shape/mxRectangleShape-js.html#mxRectangleShape"class=LClassid=link130onMouseOver="ShowTip(event, 'tt95', 'link130')"onMouseOut="HideTip('tt95')">mxRectangleShapes</a>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createVirtualBends"></a>createVirtualBends</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.createVirtualBends = function()</td></tr></table></blockquote><p>Creates and returns the bends used for modifying the edge. This is typically an array of <ahref="../shape/mxRectangleShape-js.html#mxRectangleShape"class=LClassid=link131onMouseOver="ShowTip(event, 'tt95', 'link131')"onMouseOut="HideTip('tt95')">mxRectangleShapes</a>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isHandleEnabled"></a>isHandleEnabled</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isHandleEnabled = function(</td><tdclass="PParameter prettyprint "nowrap>index</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the shape used to display the given bend.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isHandleVisible"></a>isHandleVisible</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isHandleVisible = function(</td><tdclass="PParameter prettyprint "nowrap>index</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the handle at the given index is visible.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createHandleShape"></a>createHandleShape</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.createHandleShape = function(</td><tdclass="PParameter prettyprint "nowrap>index</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates the shape used to display the given bend. Note that the index may be null for special cases, such as when called from <ahref="mxElbowEdgeHandler-js.html#mxElbowEdgeHandler.createVirtualBend"class=LFunctionid=link132onMouseOver="ShowTip(event, 'tt96', 'link132')"onMouseOut="HideTip('tt96')">mxElbowEdgeHandler.createVirtualBend</a>. Only images and rectangles should be returned if support for HTML labels with not foreign objects is required. Index if null for virtual handles.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.createLabelHandleShape"></a>createLabelHandleShape</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.createLabelHandleShape = function()</td></tr></table></blockquote><p>Creates the shape used to display the the label handle.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.initBend"></a>initBend</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.initBend = function(</td><tdclass="PParameter prettyprint "nowrap>bend,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>dblClick</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Helper method to initialize the given bend.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>bend</td><tdclass=CDLDescription><ahref="../shape/mxShape-js.html#mxShape"class=LClassid=link133onMouseOver="ShowTip(event, 'tt11', 'link133')"onMouseOut="HideTip('tt11')">mxShape</a> that represents the bend to be initialized.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getHandleForEvent"></a>getHandleForEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getHandleForEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the index of the handle for the given event.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isAddVirtualBendEvent"></a>isAddVirtualBendEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isAddVirtualBendEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given event allows virtual bends to be added. This implementation returns true.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isCustomHandleEvent"></a>isCustomHandleEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isCustomHandleEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given event allows custom handles to be changed. This implementation returns true.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.mouseDown"></a>mouseDown</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.mouseDown = function(</td><tdclass="PParameter prettyprint "nowrap>sender,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handles the event by checking if a special element of the handler was clicked, in which case the index parameter is non-null. The indices may be one of <LABEL_HANDLE> or the number of the respective control point. The source and target points are used for reconnecting the edge.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.clonePreviewState"></a>clonePreviewState</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.clonePreviewState = function(</td><tdclass="PParameter prettyprint "nowrap>point,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>terminal</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a clone of the current preview state for the given point and terminal.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getSnapToTerminalTolerance"></a>getSnapToTerminalTolerance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.getSnapToTerminalTolerance = function()</td></tr></table></blockquote><p>Returns the tolerance for the guides. Default value is gridSize * scale / 2.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.updateHint"></a>updateHint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.updateHint = function(</td><tdclass="PParameter prettyprint "nowrap>me,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>point</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for subclassers do show details while the handler is active.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.removeHint"></a>removeHint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.removeHint = function()</td></tr></table></blockquote><p>Hooks for subclassers to hide details when the handler gets inactive.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.roundLength"></a>roundLength</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.roundLength = function(</td><tdclass="PParameter prettyprint "nowrap>length</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Hook for rounding the unscaled width or height. This uses Math.round.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isSnapToTerminalsEvent"></a>isSnapToTerminalsEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isSnapToTerminalsEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if <ahref="#mxEdgeHandler.snapToTerminals"class=LVariableid=link134onMouseOver="ShowTip(event, 'tt25', 'link134')"onMouseOut="HideTip('tt25')">snapToTerminals</a> is true and if alt is not pressed.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getPointForEvent"></a>getPointForEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getPointForEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the point for the given event.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getPreviewTerminalState"></a>getPreviewTerminalState</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getPreviewTerminalState = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the given preview state taking into account the state of the constraint handler.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getPreviewPoints"></a>getPreviewPoints</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getPreviewPoints = function(</td><tdclass="PParameter prettyprint "nowrap>pt,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the given preview state taking into account the state of the constraint handler.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>pt</td><tdclass=CDLDescription><ahref="../util/mxPoint-js.html#mxPoint"class=LClassid=link135onMouseOver="ShowTip(event, 'tt97', 'link135')"onMouseOut="HideTip('tt97')">mxPoint</a> that contains the current pointer position.</td></tr><tr><tdclass=CDLEntry>me</td><tdclass=CDLDescription>Optional <ahref="../util/mxMouseEvent-js.html#mxMouseEvent"class=LClassid=link136onMouseOver="ShowTip(event, 'tt98', 'link136')"onMouseOut="HideTip('tt98')">mxMouseEvent</a> that contains the current event.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.isOutlineConnectEvent"></a>isOutlineConnectEvent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.isOutlineConnectEvent = function(</td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if <ahref="#mxEdgeHandler.outlineConnect"class=LVariableid=link137onMouseOver="ShowTip(event, 'tt30', 'link137')"onMouseOut="HideTip('tt30')">outlineConnect</a> is true and the source of the event is the outline shape or shift is pressed.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.updatePreviewState"></a>updatePreviewState</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.updatePreviewState = function(</td><tdclass="PParameter prettyprint "nowrap>edge,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>point,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>terminalState,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>me,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>outline</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the given preview state taking into account the state of the constraint handler.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.mouseUp"></a>mouseUp</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.mouseUp = function(</td><tdclass="PParameter prettyprint "nowrap>sender,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Handles the event to applying the previewed changes on the edge by using <ahref="#mxEdgeHandler.moveLabel"class=LFunctionid=link138onMouseOver="ShowTip(event, 'tt73', 'link138')"onMouseOut="HideTip('tt73')">moveLabel</a>, <ahref="#mxEdgeHandler.connect"class=LFunctionid=link139onMouseOver="ShowTip(event, 'tt74', 'link139')"onMouseOut="HideTip('tt74')">connect</a> or <ahref="#mxEdgeHandler.changePoints"class=LFunctionid=link140onMouseOver="ShowTip(event, 'tt75', 'link140')"onMouseOut="HideTip('tt75')">changePoints</a>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.reset"></a>reset</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.reset = function()</td></tr></table></blockquote><p>Resets the state of this handler.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.setPreviewColor"></a>setPreviewColor</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.setPreviewColor = function(</td><tdclass="PParameter prettyprint "nowrap>color</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the color of the preview to the given value.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.convertPoint"></a>convertPoint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.convertPoint = function(</td><tdclass="PParameter prettyprint "nowrap>point,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>gridEnabled</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Converts the given point in-place from screen to unscaled, untranslated graph coordinates and applies the grid. Returns the given, modified point instance.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>point</td><tdclass=CDLDescription><ahref="../util/mxPoint-js.html#mxPoint"class=LClassid=link141onMouseOver="ShowTip(event, 'tt97', 'link141')"onMouseOut="HideTip('tt97')">mxPoint</a> to be converted.</td></tr><tr><tdclass=CDLEntry>gridEnabled</td><tdclass=CDLDescription>Boolean that specifies if the grid should be applied.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.moveLabel"></a>moveLabel</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.moveLabel = function(</td><tdclass="PParameter prettyprint "nowrap>edgeState,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>x,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>y</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the coordinates for the label of the given edge.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>edge</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link142onMouseOver="ShowTip(event, 'tt94', 'link142')"onMouseOut="HideTip('tt94')">mxCell</a> that represents the edge.</td></tr><tr><tdclass=CDLEntry>x</td><tdclass=CDLDescription>Integer that specifies the x-coordinate of the new location.</td></tr><tr><tdclass=CDLEntry>y</td><tdclass=CDLDescription>Integer that specifies the y-coordinate of the new location.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.connect"></a>connect</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.connect = function(</td><tdclass="PParameter prettyprint "nowrap>edge,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>terminal,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>isSource,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>isClone,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>me</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the terminal or terminal point of the given edge in the graph model.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>edge</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link143onMouseOver="ShowTip(event, 'tt94', 'link143')"onMouseOut="HideTip('tt94')">mxCell</a> that represents the edge to be reconnected.</td></tr><tr><tdclass=CDLEntry>terminal</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link144onMouseOver="ShowTip(event, 'tt94', 'link144')"onMouseOut="HideTip('tt94')">mxCell</a> that represents the new terminal.</td></tr><tr><tdclass=CDLEntry>isSource</td><tdclass=CDLDescription>Boolean indicating if the new terminal is the source or target terminal.</td></tr><tr><tdclass=CDLEntry>isClone</td><tdclass=CDLDescription>Boolean indicating if the new connection should be a clone of the old edge.</td></tr><tr><tdclass=CDLEntry>me</td><tdclass=CDLDescription><ahref="../util/mxMouseEvent-js.html#mxMouseEvent"class=LClassid=link145onMouseOver="ShowTip(event, 'tt98', 'link145')"onMouseOut="HideTip('tt98')">mxMouseEvent</a> that contains the mouse up event.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.changeTerminalPoint"></a>changeTerminalPoint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.changeTerminalPoint = function(</td><tdclass="PParameter prettyprint "nowrap>edge,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>point,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>isSource,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>clone</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the terminal point of the given edge.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.changePoints"></a>changePoints</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.changePoints = function(</td><tdclass="PParameter prettyprint "nowrap>edge,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>points,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>clone</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Changes the control points of the given edge in the graph model.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.addPoint"></a>addPoint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.addPoint = function(</td><tdclass="PParameter prettyprint "nowrap>state,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>evt</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a control point for the given state and event.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.addPointAt"></a>addPointAt</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.addPointAt = function(</td><tdclass="PParameter prettyprint "nowrap>state,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>x,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>y</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Adds a control point at the given point.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.removePoint"></a>removePoint</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.removePoint = function(</td><tdclass="PParameter prettyprint "nowrap>state,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>index</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the control point at the given index from the given state.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.getHandleFillColor"></a>getHandleFillColor</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.getHandleFillColor = function(</td><tdclass="PParameter prettyprint "nowrap>index</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the fillcolor for the handle at the given index.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.redraw"></a>redraw</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.redraw = function()</td></tr></table></blockquote><p>Redraws the preview, and the bends- and label control points.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.redrawHandles"></a>redrawHandles</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.redrawHandles = function()</td></tr></table></blockquote><p>Redraws the handles.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.hideHandles"></a>hideHandles</h3><divclass=CBody><p>Shortcut to <hideSizers>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.redrawInnerBends"></a>redrawInnerBends</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.redrawInnerBends = function(</td><tdclass="PParameter prettyprint "nowrap>p0,</td></tr><tr><td></td><tdclass="PParameter prettyprint "nowrap>pe</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates and redraws the inner bends.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>p0</td><tdclass=CDLDescription><ahref="../util/mxPoint-js.html#mxPoint"class=LClassid=link146onMouseOver="ShowTip(event, 'tt97', 'link146')"onMouseOut="HideTip('tt97')">mxPoint</a> that represents the location of the first point.</td></tr><tr><tdclass=CDLEntry>pe</td><tdclass=CDLDescription><ahref="../util/mxPoint-js.html#mxPoint"class=LClassid=link147onMouseOver="ShowTip(event, 'tt97', 'link147')"onMouseOut="HideTip('tt97')">mxPoint</a> that represents the location of the last point.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.checkLabelHandle"></a>checkLabelHandle</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.checkLabelHandle = function(</td><tdclass="PParameter prettyprint "nowrap>b</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Checks if the label handle intersects the given bounds and moves it if it intersects.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.drawPreview"></a>drawPreview</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.drawPreview = function()</td></tr></table></blockquote><p>Redraws the preview.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.refresh"></a>refresh</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.refresh = function()</td></tr></table></blockquote><p>Refreshes the bends of this handler.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.destroyBends"></a>destroyBends</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>mxEdgeHandler.prototype.destroyBends = function(</td><tdclass="PParameter prettyprint "nowrap>bends</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Destroys all elements in <ahref="#mxEdgeHandler.bends"class=LVariableid=link148onMouseOver="ShowTip(event, 'tt12', 'link148')"onMouseOut="HideTip('tt12')">bends</a>.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxEdgeHandler.destroy"></a>destroy</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.destroy = function()</td></tr></table></blockquote><p>Destroys the handler and all its resources and DOM nodes. This does normally not need to be called as handlers are destroyed automatically when the corresponding cell is deselected.</p></div></div></div>
<divclass=CToolTipid="tt1"><divclass=CFunction><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass="PBeforeParameters prettyprint "nowrap>function mxEdgeHandler(</td><tdclass="PParameter prettyprint "nowrap>state</td><tdclass="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs an edge handler for the specified mxCellState.</div></div><divclass=CToolTipid="tt2"><divclass=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><divclass=CToolTipid="tt3"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.graph</td></tr></table></blockquote>Reference to the enclosing mxGraph.</div></div><divclass=CToolTipid="tt4"><divclass=CClass>Extends mxEventSource to implement a graph component for the browser. </div></div><divclass=CToolTipid="tt5"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.state</td></tr></table></blockquote>Reference to the mxCellState being modified.</div></div><divclass=CToolTipid="tt6"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.marker</td></tr></table></blockquote>Holds the mxTerminalMarker which is used for highlighting terminals.</div></div><divclass=CToolTipid="tt7"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.constraintHandler</td></tr></table></blockquote>Holds the mxConstraintHandler used for drawing and highlighting constraints.</div></div><divclass=CToolTipid="tt8"><divclass=CClass>Handles constraints on connection targets. </div></div><divclass=CToolTipid="tt9"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.error</td></tr></table></blockquote>Holds the current validation error while a connection is being changed.</div></div><divclass=CToolTipid="tt10"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.shape</td></tr></table></blockquote>Holds the mxShape that represents the preview edge.</div></div><divclass=CToolTipid="tt11"><divclass=CClass>Base class for all shapes. </div></div><divclass=CToolTipid="tt12"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.bends</td></tr></table></blockquote>Holds the mxShapes that represent the points.</div></div><divclass=CToolTipid="tt13"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.labelShape</td></tr></table></blockquote>Holds the mxShape that represents the label position.</div></div><divclass=CToolTipid="tt14"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.cloneEnabled</td></tr></table></blockquote>Specifies if cloning by control-drag is enabled. </div></div><divclass=CToolTipid="tt15"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.addEnabled</td></tr></table></blockquote>Specifies if adding bends by shift-click is enabled. </div></div><divclass=CToolTipid="tt16"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype"><tr><tdclass="prettyprint">mxEdgeHandler.prototype.removeEnabled</td></tr></table></blockquote>Specifies if removing bends by shift-click is enabled. </div></div><divclass=CToolTipid="tt17"><divclass=CVariable><blockquote><tabl