control-freak-ide/misc/pocs/GoJS/api/symbols/LinkingBaseTool.html
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

2034 lines
82 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GoJS&reg; LinkingBaseTool Class</title>
<script src="../../assets/js/jquery.min.js"></script>
<script src="../../assets/js/bootstrap.min.js"></script>
<script src="../../assets/js/highlight.js"></script>
<script src="../../assets/js/api.js"></script>
<link href="../../assets/css/bootstrap.min.css" rel="stylesheet" >
<!-- custom CSS after bootstrap -->
<link href="../../assets/css/main.css" rel="stylesheet" type="text/css"/>
<link href="../../assets/css/api.css" rel="stylesheet" type="text/css"/>
<!--<link rel="stylesheet" href="../../assets/css/api.css" type="text/css" media="all" />-->
<link rel="stylesheet" href="../../assets/css/highlight.css" type="text/css" media="all" />
</head>
<body>
<!-- non-fixed navbar -->
<nav id="non-fixed-nav" class="navbar navbar-inverse navbar-top">
<div class="container-fluid">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#navbar">
<a id="toplogo" class="navbar-brand" href="../../index.html">GoJS</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</div>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="../../index.html">Home</a></li>
<li><a href="../../learn/index.html">Learn</a></li>
<li><a href="../../samples/index.html">Samples</a></li>
<li><a href="../../intro/index.html">Intro</a></li>
<li><a href="../../api/index.html">API</a></li>
<li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li>
<li><a href="../../doc/download.html">Download</a></li>
<li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li>
<li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li>
<li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li>
<li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container-fluid">
<!-- ============================== classes index ============================ -->
<div id="navindex" class="col-md-2">
<!-- begin publish.classesIndex -->
<!-- <div><a href="../index.html">GoJS Class Index</a></div> -->
<div class="sidebar-nav">
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#DiagramNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#DiagramNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Diagram Classes</span>
</div>
</div>
<div id="DiagramNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a></li>
<li><a href="../symbols/AnimationManager.html" class="linkConstructor">AnimationManager</a></li>
<li><a href="../symbols/CommandHandler.html" class="linkConstructor">CommandHandler</a></li>
<li><a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a></li>
<li><a href="../symbols/DiagramEvent.html" class="linkConstructor">DiagramEvent</a></li>
<li><a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a></li>
<li><a href="../symbols/Group.html" class="linkConstructor">Group</a></li>
<li><a href="../symbols/InputEvent.html" class="linkConstructor">InputEvent</a></li>
<li><a href="../symbols/Layer.html" class="linkConstructor">Layer</a></li>
<li><a href="../symbols/Link.html" class="linkConstructor">Link</a></li>
<li><a href="../symbols/Node.html" class="linkConstructor">Node</a></li>
<li><a href="../symbols/Overview.html" class="linkConstructor">Overview</a></li>
<li><a href="../symbols/Palette.html" class="linkConstructor">Palette</a></li>
<li><a href="../symbols/Panel.html" class="linkConstructor">Panel</a></li>
<li><a href="../symbols/Part.html" class="linkConstructor">Part</a></li>
<li><a href="../symbols/Picture.html" class="linkConstructor">Picture</a></li>
<li><a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a></li>
<li><a href="../symbols/RowColumnDefinition.html" class="linkConstructor">RowColumnDefinition</a></li>
<li><a href="../symbols/Shape.html" class="linkConstructor">Shape</a></li>
<li><a href="../symbols/TextBlock.html" class="linkConstructor">TextBlock</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#GeometryNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#GeometryNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Geometry Classes</span>
</div>
</div>
<div id="GeometryNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Brush.html" class="linkConstructor">Brush</a></li>
<li><a href="../symbols/Geometry.html" class="linkConstructor">Geometry</a></li>
<li><a href="../symbols/Margin.html" class="linkConstructor">Margin</a></li>
<li><a href="../symbols/PathFigure.html" class="linkConstructor">PathFigure</a></li>
<li><a href="../symbols/PathSegment.html" class="linkConstructor">PathSegment</a></li>
<li><a href="../symbols/Point.html" class="linkConstructor">Point</a></li>
<li><a href="../symbols/Rect.html" class="linkConstructor">Rect</a></li>
<li><a href="../symbols/Size.html" class="linkConstructor">Size</a></li>
<li><a href="../symbols/Spot.html" class="linkConstructor">Spot</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#ModelNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#ModelNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Model Classes</span>
</div>
</div>
<div id="ModelNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Binding.html" class="linkConstructor">Binding</a></li>
<li><a href="../symbols/ChangedEvent.html" class="linkConstructor">ChangedEvent</a></li>
<li><a href="../symbols/GraphLinksModel.html" class="linkConstructor">GraphLinksModel</a></li>
<li><a href="../symbols/Model.html" class="linkConstructor">Model</a></li>
<li><a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a></li>
<li><a href="../symbols/TreeModel.html" class="linkConstructor">TreeModel</a></li>
<li><a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#LayoutNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#LayoutNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Layout Classes</span>
</div>
</div>
<div id="LayoutNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/CircularLayout.html" class="linkConstructor">CircularLayout</a></li>
<li><a href="../symbols/ForceDirectedLayout.html" class="linkConstructor">ForceDirectedLayout</a></li>
<li><a href="../symbols/GridLayout.html" class="linkConstructor">GridLayout</a></li>
<li><a href="../symbols/LayeredDigraphLayout.html" class="linkConstructor">LayeredDigraphLayout</a></li>
<li><a href="../symbols/Layout.html" class="linkConstructor">Layout</a></li>
<li><a href="../symbols/LayoutNetwork.html" class="linkConstructor">LayoutNetwork</a></li>
<li><a href="../symbols/TreeLayout.html" class="linkConstructor">TreeLayout</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#ToolNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#ToolNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Tool Classes</span>
</div>
</div>
<div id="ToolNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/ActionTool.html" class="linkConstructor">ActionTool</a></li>
<li><a href="../symbols/ClickCreatingTool.html" class="linkConstructor">ClickCreatingTool</a></li>
<li><a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a></li>
<li><a href="../symbols/ContextMenuTool.html" class="linkConstructor">ContextMenuTool</a></li>
<li><a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a></li>
<li><a href="../symbols/DragSelectingTool.html" class="linkConstructor">DragSelectingTool</a></li>
<li><a href="../symbols/HTMLInfo.html" class="linkConstructor">HTMLInfo</a></li>
<li><a href="../symbols/LinkingBaseTool.html" class="linkConstructor">LinkingBaseTool</a></li>
<li><a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a></li>
<li><a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a></li>
<li><a href="../symbols/PanningTool.html" class="linkConstructor">PanningTool</a></li>
<li><a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
<li><a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
<li><a href="../symbols/TextEditingTool.html" class="linkConstructor">TextEditingTool</a></li>
<li><a href="../symbols/Tool.html" class="linkConstructor">Tool</a></li>
<li><a href="../symbols/ToolManager.html" class="linkConstructor">ToolManager</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#CollectionNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#CollectionNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Collection Classes</span>
</div>
</div>
<div id="CollectionNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Iterable.html" class="linkConstructor">Iterable</a></li>
<li><a href="../symbols/Iterator.html" class="linkConstructor">Iterator</a></li>
<li><a href="../symbols/List.html" class="linkConstructor">List</a></li>
<li><a href="../symbols/Map.html" class="linkConstructor">Map</a></li>
<li><a href="../symbols/Set.html" class="linkConstructor">Set</a></li>
</ul>
</div>
</div>
</div> <!-- /class="sidebar-nav -->
<!-- end publish.classesIndex -->
</div>
<div id="contentBody" class="col-md-10">
<!-- ============================== header ================================= -->
<div id="header" class="fineprint mt30">
<b>GoJS</b>&reg; Diagramming Components<br/>version 1.8.5 for JavaScript/HTML<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>
</div>
<!-- ============================== class title ============================ -->
<h2 class="classTitle mt30">
Class LinkingBaseTool
</h2>
<!-- ============================== class summary ========================== -->
<span class="hideshowall">
<span class="nodetails"><button id="buttonShow">Show Details</button></span>
<span class="details"><button id="buttonHide">Show Summaries</button></span>
</span>
<p class="classsummary">
<span class="extends"> Extends
<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>.</span>
This abstract class is the base class for the <a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a> and <a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a> classes.
<p>
This class includes properties for defining and accessing any temporary nodes and temporary link
that are used during any linking operation, as well as access to the existing diagram's nodes and link
(if any) that are involved with the linking operation.
<p class="boxread">
For a general discussion of link routing, see:
<a href="../../intro/links.html">Introduction to Links</a>,
<a href="../../intro/linkLabels.html">Introduction to Link Labels</a>, and
<a href="../../intro/connectionPoints.html">Introduction to Link Connection Points</a>.
For customizing the linking tools, see <a href="../../intro/tools.html#LinkingAndRelinkingTools">Introduction to the Linking Tools</a>.
For customizing the reshaping of Links, see <a href="../../intro/tools.html#LinkReshapingTool">Introduction to the LinkReshapingTool</a>.
For a general discussion of validation, see <a href="../../intro/validation.html">Introduction to Validation</a>.
</p>
<!-- ============================== constructor summary ==================== -->
<h2 id="constructor" class="summaryCaption"> Constructor <span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the constructor documented in the class LinkingBaseTool.">
<thead>
<tr>
<th scope="col" class="name">Name</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name" >
<div class="name">
LinkingBaseTool()
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Don't construct this directly -- this is an abstract class.
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== properties summary ===================== -->
<h2 class="summaryCaption">Properties<span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the properties documented in the class LinkingBaseTool.">
<thead>
<tr>
<th scope="col" class="name">Name, Value Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="isForwards" >
<td class="name">
<div class="name">
isForwards
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets whether the linking operation is in the forwards direction,
connecting from the "From" port to the "To" port.
</div>
</td>
</tr>
<tr id="isUnconnectedLinkValid" >
<td class="name">
<div class="name">
isUnconnectedLinkValid
</div>
<div class="attributes">
<span class="light">{boolean}</span>
<span class="since" title="since">1.3</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether it is valid to have partly or completely unconnected links.<span class="nodetails" id="xpropisUnconnectedLinkValid"><a class="morelink" onclick="hst('propisUnconnectedLinkValid')">More...</a></span> <span class="details" id="propisUnconnectedLinkValid">
</span><div class="details" id="dpropisUnconnectedLinkValid"><p>
The default value is false -- the user cannot draw or reconnect a link to "nowhere".
Setting this property does not raise any events.</div>
</div>
</td>
</tr>
<tr id="linkValidation" >
<td class="name">
<div class="name">
linkValidation
</div>
<div class="attributes">
<span class="light">{function(Node, GraphObject, Node, GraphObject, Link):boolean | null}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets a predicate that determines whether or not a new link between two ports would be valid.<span class="nodetails" id="xproplinkValidation"><a class="morelink" onclick="hst('proplinkValidation')">More...</a></span> <span class="details" id="proplinkValidation">
This predicate is called in addition to the normal link checking performed by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>
and any <a href="../symbols/Node.html#linkValidation" class="linkProperty">Node.linkValidation</a> predicates on the "from" and "to" nodes.
When relinking, the <a href="../symbols/Link.html" class="linkConstructor">Link</a> being considered for reconnection is passed as the fifth argument.
The default predicate is null, which is equivalent to simply returning true.
<p class="boxread">
For a more general discussion of validation, see <a href="../../intro/validation.html">Introduction to Validation</a>.
</span><div class="details" id="dproplinkValidation"><p>
The function, if supplied, must not have any side-effects.</div>
</div>
</td>
</tr>
<tr id="originalFromNode" >
<td class="name">
<div class="name">
originalFromNode
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the original <a href="../symbols/Node.html" class="linkConstructor">Node</a> from which the new link is being drawn
or from which the <a href="../symbols/LinkingBaseTool.html#originalLink" class="linkProperty">originalLink</a> was connected when being relinked.<span class="nodetails" id="xproporiginalFromNode"><a class="morelink" onclick="hst('proporiginalFromNode')">More...</a></span> <span class="details" id="proporiginalFromNode">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="originalFromPort" >
<td class="name">
<div class="name">
originalFromPort
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is the port in the <a href="../symbols/LinkingBaseTool.html#originalFromNode" class="linkProperty">originalFromNode</a>.<span class="nodetails" id="xproporiginalFromPort"><a class="morelink" onclick="hst('proporiginalFromPort')">More...</a></span> <span class="details" id="proporiginalFromPort">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="originalLink" >
<td class="name">
<div class="name">
originalLink
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Link.html" class="linkConstructor">Link</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the original <a href="../symbols/Link.html" class="linkConstructor">Link</a> being reconnected by the <a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a>.<span class="nodetails" id="xproporiginalLink"><a class="morelink" onclick="hst('proporiginalLink')">More...</a></span> <span class="details" id="proporiginalLink">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="originalToNode" >
<td class="name">
<div class="name">
originalToNode
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the original <a href="../symbols/Node.html" class="linkConstructor">Node</a> to which the new link is being drawn
or to which the <a href="../symbols/LinkingBaseTool.html#originalLink" class="linkProperty">originalLink</a> was connected when being relinked.<span class="nodetails" id="xproporiginalToNode"><a class="morelink" onclick="hst('proporiginalToNode')">More...</a></span> <span class="details" id="proporiginalToNode">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="originalToPort" >
<td class="name">
<div class="name">
originalToPort
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is the port in the <a href="../symbols/LinkingBaseTool.html#originalToNode" class="linkProperty">originalToNode</a>.<span class="nodetails" id="xproporiginalToPort"><a class="morelink" onclick="hst('proporiginalToPort')">More...</a></span> <span class="details" id="proporiginalToPort">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="portGravity" >
<td class="name">
<div class="name">
portGravity
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the distance at which link snapping occurs.<span class="nodetails" id="xpropportGravity"><a class="morelink" onclick="hst('propportGravity')">More...</a></span> <span class="details" id="propportGravity">
The default value is 100.0.
The value must be non-negative.
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="portTargeted" >
<td class="name">
<div class="name">
portTargeted
</div>
<div class="attributes">
<span class="light">{function(Node, GraphObject, Node, GraphObject, boolean) | null}</span>
<span class="since" title="since">1.2</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets a function that is called as the tool targets the nearest valid port.<span class="nodetails" id="xpropportTargeted"><a class="morelink" onclick="hst('propportTargeted')">More...</a></span> <span class="details" id="propportTargeted">
The first two arguments specify the port by providing the <a href="../symbols/Node.html" class="linkConstructor">Node</a> that it is in
and the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is the actual port object.
The next two arguments are the temporary port that has been moved and styled to be like the valid port.
These values will be either the <a href="../symbols/LinkingBaseTool.html#temporaryToNode" class="linkProperty">temporaryToNode</a> and <a href="../symbols/LinkingBaseTool.html#temporaryToPort" class="linkProperty">temporaryToPort</a>
or the <a href="../symbols/LinkingBaseTool.html#temporaryFromNode" class="linkProperty">temporaryFromNode</a> and <a href="../symbols/LinkingBaseTool.html#temporaryFromPort" class="linkProperty">temporaryFromPort</a>, depending on
which end of the temporary link is being updated.
The fifth argument is true if the target port represents a potential "to" end of a link;
it is false if it is for the "from" end of a link.
</span><div class="details" id="dpropportTargeted"><p>
When there is no valid port within the <a href="../symbols/LinkingBaseTool.html#portGravity" class="linkProperty">portGravity</a>, the first two arguments are null.
<p>
The function, if supplied, must not add or remove any links or nodes or port objects,
nor may it change the validity of any potential link connection.</div>
</div>
</td>
</tr>
<tr id="targetPort" >
<td class="name">
<div class="name">
targetPort
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets a proposed <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> port for connecting a link.<span class="nodetails" id="xproptargetPort"><a class="morelink" onclick="hst('proptargetPort')">More...</a></span> <span class="details" id="proptargetPort">
Whether this is a "to" port or a "from" port depends on the direction
(<a href="../symbols/LinkingBaseTool.html#isForwards" class="linkProperty">isForwards</a>) in which the link is being drawn or reconnected.
</span><div class="details" id="dproptargetPort"><p>
This is set when the mouse is being dragged and when a mouse-up event occurs
with the result of a call to <a href="../symbols/LinkingBaseTool.html#findTargetPort" class="linkMethod">findTargetPort</a>.
Setting this property does not raise any events.</div>
</div>
</td>
</tr>
<tr id="temporaryFromNode" >
<td class="name">
<div class="name">
temporaryFromNode
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the temporary <a href="../symbols/Node.html" class="linkConstructor">Node</a> at the "from" end of the <a href="../symbols/LinkingBaseTool.html#temporaryLink" class="linkProperty">temporaryLink</a>
while the user is drawing or reconnecting a link.<span class="nodetails" id="xproptemporaryFromNode"><a class="morelink" onclick="hst('proptemporaryFromNode')">More...</a></span> <span class="details" id="proptemporaryFromNode">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="temporaryFromPort" >
<td class="name">
<div class="name">
temporaryFromPort
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is the port at the "from" end of the <a href="../symbols/LinkingBaseTool.html#temporaryLink" class="linkProperty">temporaryLink</a>
while the user is drawing or reconnecting a link.<span class="nodetails" id="xproptemporaryFromPort"><a class="morelink" onclick="hst('proptemporaryFromPort')">More...</a></span> <span class="details" id="proptemporaryFromPort">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="temporaryLink" >
<td class="name">
<div class="name">
temporaryLink
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Link.html" class="linkConstructor">Link</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the temporary <a href="../symbols/Link.html" class="linkConstructor">Link</a> that is shown while the user is drawing or reconnecting a link.<span class="nodetails" id="xproptemporaryLink"><a class="morelink" onclick="hst('proptemporaryLink')">More...</a></span> <span class="details" id="proptemporaryLink">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="temporaryToNode" >
<td class="name">
<div class="name">
temporaryToNode
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the temporary <a href="../symbols/Node.html" class="linkConstructor">Node</a> at the "to" end of the <a href="../symbols/LinkingBaseTool.html#temporaryLink" class="linkProperty">temporaryLink</a>
while the user is drawing or reconnecting a link.<span class="nodetails" id="xproptemporaryToNode"><a class="morelink" onclick="hst('proptemporaryToNode')">More...</a></span> <span class="details" id="proptemporaryToNode">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
<tr id="temporaryToPort" >
<td class="name">
<div class="name">
temporaryToPort
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is the port at the "to" end of the <a href="../symbols/LinkingBaseTool.html#temporaryLink" class="linkProperty">temporaryLink</a>
while the user is drawing or reconnecting a link.<span class="nodetails" id="xproptemporaryToPort"><a class="morelink" onclick="hst('proptemporaryToPort')">More...</a></span> <span class="details" id="proptemporaryToPort">
Setting this property does not raise any events.</span>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Properties borrowed from class <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>: </dt><dd><a href="../symbols/Tool.html#diagram" class="linkProperty">diagram</a>, <a href="../symbols/Tool.html#isActive" class="linkProperty">isActive</a>, <a href="../symbols/Tool.html#isEnabled" class="linkProperty">isEnabled</a>, <a href="../symbols/Tool.html#name" class="linkProperty">name</a>, <a href="../symbols/Tool.html#transactionResult" class="linkProperty">transactionResult</a></dd>
</dl>
<!-- ============================== methods summary ======================== -->
<h2 class="summaryCaption">Method <span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the methods documented in the class LinkingBaseTool.">
<thead>
<tr>
<th scope="col" class="name">Name, Return Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="copyPortProperties">
<td class="name">
<div class="name">
copyPortProperties(realnode, realport, tempnode, tempport, toend)
</div>
<div class="attributes">
<span class="since" title="since">1.2</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Make a temporary port look and act like a real one.<span class="nodetails" id="xmethcopyPortProperties"><a class="morelink" onclick="hst('methcopyPortProperties')">More...</a></span> <span class="details" id="methcopyPortProperties">
</span><div class="details" id="dmethcopyPortProperties"><p>
This is called by <a href="../symbols/LinkingBaseTool.html#doMouseMove" class="linkMethod">doMouseMove</a> as the tool finds new valid target ports.
If <a href="../symbols/LinkingBaseTool.html#findTargetPort" class="linkMethod">findTargetPort</a> returns null, it calls <a href="../symbols/LinkingBaseTool.html#setNoTargetPortProperties" class="linkMethod">setNoTargetPortProperties</a> instead.
<p>
If the <a href="../symbols/LinkingBaseTool.html#portTargeted" class="linkProperty">portTargeted</a> property is a function, that function is called.
It is easier to customize the behavior by setting that functional property than it is to override
this method and the <a href="../symbols/LinkingBaseTool.html#setNoTargetPortProperties" class="linkMethod">setNoTargetPortProperties</a> method.
But you may want to call this method to get the standard behavior for dynamically adapting
the temporary node/port to "act like" the target port.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>realnode</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>realport</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>tempnode</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>tempport</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{boolean}</span> <b>toend</b>
</dt>
<dd></dd>
</dl>
</div>
</td>
</tr>
<tr id="doMouseMove">
<td class="name">
<div class="name">
doMouseMove()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Mouse movement results in a temporary node moving to where a valid target port is located,
or to where the mouse is if there is no valid target port nearby.<span class="nodetails" id="xmethdoMouseMove"><a class="morelink" onclick="hst('methdoMouseMove')">More...</a></span> <span class="details" id="methdoMouseMove">
</span><div class="details" id="dmethdoMouseMove"><p>
This calls <a href="../symbols/LinkingBaseTool.html#findTargetPort" class="linkMethod">findTargetPort</a> to update the <a href="../symbols/LinkingBaseTool.html#targetPort" class="linkProperty">targetPort</a>
given the new mouse point.
If a valid target port is found this moves the temporary node/port and
makes them appear like the target node/port by calling <a href="../symbols/LinkingBaseTool.html#copyPortProperties" class="linkMethod">copyPortProperties</a>.
If no valid target port is found, this moves the temporary node to
where the mouse currently is and removes any node/port appearance,
by calling <a href="../symbols/LinkingBaseTool.html#setNoTargetPortProperties" class="linkMethod">setNoTargetPortProperties</a>.
<p>
This method may be overridden, but we recommend that you call this base method.</div>
</div>
</td>
</tr>
<tr id="findTargetPort">
<td class="name">
<div class="name">
findTargetPort(toend)
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Find a port with which the user could complete a valid link.<span class="nodetails" id="xmethfindTargetPort"><a class="morelink" onclick="hst('methfindTargetPort')">More...</a></span> <span class="details" id="methfindTargetPort">
</span><div class="details" id="dmethfindTargetPort"><p>
This finds objects near to the current mouse point for which a valid link connection is possible.
<p>
For each port element found, this calls <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a> to find out if a link between
the original node/port and the found node/port would be valid.
The result is saved in a cache for faster decisions later during operation of this tool.
The closest valid port is returned.
<p>
This method may be overridden, but we recommend that you call this base method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{boolean}</span> <b>toend</b>
</dt>
<dd>true if looking for a "to" port.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> a valid port, or null if no such port is near the current mouse point
within the <a href="../symbols/LinkingBaseTool.html#portGravity" class="linkProperty">portGravity</a> distance.</dt>
</dl>
</div>
</td>
</tr>
<tr id="isInSameNode">
<td class="name">
<div class="name">
isInSameNode(fromport, toport)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate is true if both argument ports are in the same <a href="../symbols/Node.html" class="linkConstructor">Node</a>.<span class="nodetails" id="xmethisInSameNode"><a class="morelink" onclick="hst('methisInSameNode')">More...</a></span> <span class="details" id="methisInSameNode">
This is called by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>.
</span><div class="details" id="dmethisInSameNode"><p>
This method may be overridden, but we recommend that you call this base method.
It is rare that you will want to override this method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>fromport</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>toport</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="isLinked">
<td class="name">
<div class="name">
isLinked(fromport, toport)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate is true if there is a link in the diagram going from the given port to the given port.<span class="nodetails" id="xmethisLinked"><a class="morelink" onclick="hst('methisLinked')">More...</a></span> <span class="details" id="methisLinked">
This is called by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>.
</span><div class="details" id="dmethisLinked"><p>
This method may be overridden, but we recommend that you call this base method.
It is rare that you will want to override this method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>fromport</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>toport</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="isValidCycle">
<td class="name">
<div class="name">
isValidCycle(from, to, ignore)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
<span class="since" title="since">1.5</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Checks whether a proposed link would be valid according to <a href="../symbols/Diagram.html#validCycle" class="linkProperty">Diagram.validCycle</a>.<span class="nodetails" id="xmethisValidCycle"><a class="morelink" onclick="hst('methisValidCycle')">More...</a></span> <span class="details" id="methisValidCycle">
This does not distinguish between different ports on a node, so this method does not need to take port arguments.
This is called by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>.
</span><div class="details" id="dmethisValidCycle"><p>
This method may be overridden, but we recommend that you call this base method.
It is rare that you will want to override this method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>from</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>to</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Link.html" class="linkConstructor">Link</a>}</span> <b>ignore</b>
</dt>
<dd>may be null; this is useful during relinking to ignore the <a href="../symbols/LinkingBaseTool.html#originalLink" class="linkProperty">originalLink</a></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="isValidFrom">
<td class="name">
<div class="name">
isValidFrom(fromnode, fromport)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate is true if it is permissible to connect a link from a given node/port.<span class="nodetails" id="xmethisValidFrom"><a class="morelink" onclick="hst('methisValidFrom')">More...</a></span> <span class="details" id="methisValidFrom">
This is called by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>.
<p class="boxread">
For a more general discussion of validation, see <a href="../../intro/validation.html">Introduction to Validation</a>.
</span><div class="details" id="dmethisValidFrom"><p>
This method may be overridden, but we recommend that you call this base method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>fromnode</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>fromport</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> False if the node is in a <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> that does not <a href="../symbols/Layer.html#allowLink" class="linkProperty">Layer.allowLink</a>.
False if the port's <a href="../symbols/GraphObject.html#fromLinkable" class="linkProperty">GraphObject.fromLinkable</a> is either false or null.
False if the number of links connected to the port would exceed the port's <a href="../symbols/GraphObject.html#fromMaxLinks" class="linkProperty">GraphObject.fromMaxLinks</a>.
Otherwise true.</dt>
</dl>
</div>
</td>
</tr>
<tr id="isValidLink">
<td class="name">
<div class="name">
isValidLink(fromnode, fromport, tonode, toport)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate should be true when it is logically valid to connect a new link from
one node/port to another node/port.<span class="nodetails" id="xmethisValidLink"><a class="morelink" onclick="hst('methisValidLink')">More...</a></span> <span class="details" id="methisValidLink">
When this is called by the <a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a>, that tool sets <a href="../symbols/LinkingBaseTool.html#originalLink" class="linkProperty">originalLink</a>
to be the <a href="../symbols/Link.html" class="linkConstructor">Link</a> being reconnected.
<p class="boxread">
For a more general discussion of validation, see <a href="../../intro/validation.html">Introduction to Validation</a>.
</span><div class="details" id="dmethisValidLink"><p>
This method may be overridden, although it is usually much easier to just set <a href="../symbols/LinkingBaseTool.html#linkValidation" class="linkProperty">linkValidation</a>
or <a href="../symbols/Node.html#linkValidation" class="linkProperty">Node.linkValidation</a> in order to add some application-specific link validation.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>fromnode</b>
</dt>
<dd>the "from" <a href="../symbols/Node.html" class="linkConstructor">Node</a>.</dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>fromport</b>
</dt>
<dd>the "from" <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> port.</dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>tonode</b>
</dt>
<dd>the "to" <a href="../symbols/Node.html" class="linkConstructor">Node</a>.</dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>toport</b>
</dt>
<dd>the "to" <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> port.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> False if <a href="../symbols/LinkingBaseTool.html#isValidFrom" class="linkMethod">isValidFrom</a> is false for the "from" node/port.
False if <a href="../symbols/LinkingBaseTool.html#isValidTo" class="linkMethod">isValidTo</a> is false for the "to" node/port.
False if <a href="../symbols/LinkingBaseTool.html#isInSameNode" class="linkMethod">isInSameNode</a> is true unless <a href="../symbols/GraphObject.html#fromLinkableSelfNode" class="linkProperty">GraphObject.fromLinkableSelfNode</a>
and <a href="../symbols/GraphObject.html#toLinkableSelfNode" class="linkProperty">GraphObject.toLinkableSelfNode</a> are true for the two ports.
False if <a href="../symbols/LinkingBaseTool.html#isLinked" class="linkMethod">isLinked</a> is true unless <a href="../symbols/GraphObject.html#fromLinkableDuplicates" class="linkProperty">GraphObject.fromLinkableDuplicates</a>
and <a href="../symbols/GraphObject.html#toLinkableDuplicates" class="linkProperty">GraphObject.toLinkableDuplicates</a> are true for the two ports.
False if trying to link to the link's own label node(s).
If <a href="../symbols/Node.html#linkValidation" class="linkProperty">Node.linkValidation</a> is a predicate on either or both of the "from" node and the "to" node,
the predicate is called and if it returns false, this predicate returns false.
If <a href="../symbols/LinkingBaseTool.html#linkValidation" class="linkProperty">linkValidation</a> is a predicate and if it returns false, this predicate returns false.
Otherwise this predicate is true.</dt>
</dl>
</div>
</td>
</tr>
<tr id="isValidTo">
<td class="name">
<div class="name">
isValidTo(tonode, toport)
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate is true if it is permissible to connect a link to a given node/port.<span class="nodetails" id="xmethisValidTo"><a class="morelink" onclick="hst('methisValidTo')">More...</a></span> <span class="details" id="methisValidTo">
This is called by <a href="../symbols/LinkingBaseTool.html#isValidLink" class="linkMethod">isValidLink</a>.
<p class="boxread">
For a more general discussion of validation, see <a href="../../intro/validation.html">Introduction to Validation</a>.
</span><div class="details" id="dmethisValidTo"><p>
This method may be overridden, but we recommend that you call this base method.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>tonode</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>toport</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> False if the node is in a <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> that does not <a href="../symbols/Layer.html#allowLink" class="linkProperty">Layer.allowLink</a>.
False if the port's <a href="../symbols/GraphObject.html#toLinkable" class="linkProperty">GraphObject.toLinkable</a> is either false or null.
False if the number of links connected from the port would exceed the port's <a href="../symbols/GraphObject.html#toMaxLinks" class="linkProperty">GraphObject.toMaxLinks</a>.
Otherwise true.</dt>
</dl>
</div>
</td>
</tr>
<tr id="setNoTargetPortProperties">
<td class="name">
<div class="name">
setNoTargetPortProperties(tempnode, tempport, toend)
</div>
<div class="attributes">
<span class="since" title="since">1.2</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Reset a temporary port's properties to neutral values when there is no target port.<span class="nodetails" id="xmethsetNoTargetPortProperties"><a class="morelink" onclick="hst('methsetNoTargetPortProperties')">More...</a></span> <span class="details" id="methsetNoTargetPortProperties">
</span><div class="details" id="dmethsetNoTargetPortProperties"><p>
This is called by <a href="../symbols/LinkingBaseTool.html#doMouseMove" class="linkMethod">doMouseMove</a> when the tool finds no new valid target port.
If <a href="../symbols/LinkingBaseTool.html#findTargetPort" class="linkMethod">findTargetPort</a> returns non-null, it calls <a href="../symbols/LinkingBaseTool.html#copyPortProperties" class="linkMethod">copyPortProperties</a> instead.
<p>
If the <a href="../symbols/LinkingBaseTool.html#portTargeted" class="linkProperty">portTargeted</a> property is a function, that function is called with null values as the first two arguments.
It is easier to customize the behavior by setting that functional property than it is to override
this method and the <a href="../symbols/LinkingBaseTool.html#copyPortProperties" class="linkMethod">copyPortProperties</a> method.
But you may want to call this method to get the standard behavior for dynamically adapting
the temporary node/port to "act like" it is not connecting with any target port.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Node.html" class="linkConstructor">Node</a>}</span> <b>tempnode</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>tempport</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{boolean}</span> <b>toend</b>
</dt>
<dd></dd>
</dl>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Methods borrowed from class <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>: </dt><dd><a href="../symbols/Tool.html#cancelWaitAfter" class="linkMethod">cancelWaitAfter</a>, <a href="../symbols/Tool.html#canStart" class="linkMethod">canStart</a>, <a href="../symbols/Tool.html#canStartMultiTouch" class="linkMethod">canStartMultiTouch</a>, <a href="../symbols/Tool.html#doActivate" class="linkMethod">doActivate</a>, <a href="../symbols/Tool.html#doCancel" class="linkMethod">doCancel</a>, <a href="../symbols/Tool.html#doDeactivate" class="linkMethod">doDeactivate</a>, <a href="../symbols/Tool.html#doKeyDown" class="linkMethod">doKeyDown</a>, <a href="../symbols/Tool.html#doKeyUp" class="linkMethod">doKeyUp</a>, <a href="../symbols/Tool.html#doMouseDown" class="linkMethod">doMouseDown</a>, <a href="../symbols/Tool.html#doMouseUp" class="linkMethod">doMouseUp</a>, <a href="../symbols/Tool.html#doMouseWheel" class="linkMethod">doMouseWheel</a>, <a href="../symbols/Tool.html#doStart" class="linkMethod">doStart</a>, <a href="../symbols/Tool.html#doStop" class="linkMethod">doStop</a>, <a href="../symbols/Tool.html#doWaitAfter" class="linkMethod">doWaitAfter</a>, <a href="../symbols/Tool.html#findToolHandleAt" class="linkMethod">findToolHandleAt</a>, <a href="../symbols/Tool.html#isBeyondDragSize" class="linkMethod">isBeyondDragSize</a>, <a href="../symbols/Tool.html#standardMouseClick" class="linkMethod">standardMouseClick</a>, <a href="../symbols/Tool.html#standardMouseOver" class="linkMethod">standardMouseOver</a>, <a href="../symbols/Tool.html#standardMouseSelect" class="linkMethod">standardMouseSelect</a>, <a href="../symbols/Tool.html#standardMouseWheel" class="linkMethod">standardMouseWheel</a>, <a href="../symbols/Tool.html#standardPinchZoomMove" class="linkMethod">standardPinchZoomMove</a>, <a href="../symbols/Tool.html#standardPinchZoomStart" class="linkMethod">standardPinchZoomStart</a>, <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">standardWaitAfter</a>, <a href="../symbols/Tool.html#startTransaction" class="linkMethod">startTransaction</a>, <a href="../symbols/Tool.html#stopTool" class="linkMethod">stopTool</a>, <a href="../symbols/Tool.html#stopTransaction" class="linkMethod">stopTransaction</a>, <a href="../symbols/Tool.html#updateAdornments" class="linkMethod">updateAdornments</a></dd>
</dl>
<!-- ============================== events summary ======================== -->
<!-- ============================== fields summary ===================== -->
<!-- ============================== constructor details ==================== -->
</div> <!-- end contentBody -->
</div> <!-- end container-fluid -->
<!-- ============================== footer ================================= -->
<div id="footer" class="fineprint" style="clear:both">
Copyright &copy; 1998-2017 by <a href="https://www.nwoods.com/">Northwoods Software Corporation.</a>
</div>
</body>
</html>