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

3742 lines
210 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GoJS&reg; Part 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 Part
</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/Panel.html" class="linkConstructor">Panel</a>.</span>
This is the base class for all user-manipulated top-level objects.
Because it inherits from <a href="../symbols/Panel.html" class="linkConstructor">Panel</a>, it is automatically a visual container
of other <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s.
Because it thus also inherits from <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>, it also has properties such as
<a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a>, <a href="../symbols/GraphObject.html#contextMenu" class="linkProperty">GraphObject.contextMenu</a>, and <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a>.
<p>
If you just want an object that users can select and manipulate,
you can create an instance of this class.
<p>
If you want an object that also supports being connected by links to other objects,
use the <a href="../symbols/Node.html" class="linkConstructor">Node</a> class, which inherits from Part.
Create those connections by using instances of the <a href="../symbols/Link.html" class="linkConstructor">Link</a> class.
<p>
If you want a node that logically contains a subgraph of nodes and links,
use the <a href="../symbols/Group.html" class="linkConstructor">Group</a> class, which inherits from <a href="../symbols/Node.html" class="linkConstructor">Node</a>.
<p>
If you want an object that decorates another Part, without having to modify that Part,
use the <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> class.
Adornments do not support linking or grouping or being selected.
<p>
You can construct a Part, add <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s to it programmatically,
and then add the part to a diagram by calling <a href="../symbols/Diagram.html#add" class="linkMethod">Diagram.add</a>.
However it is commonplace to add data to a model by setting its <a href="../symbols/Model.html#nodeDataArray" class="linkProperty">Model.nodeDataArray</a> or calling <a href="../symbols/Model.html#addNodeData" class="linkMethod">Model.addNodeData</a>,
or for <a href="../symbols/Link.html" class="linkConstructor">Link</a>s, setting the <a href="../symbols/GraphLinksModel.html#linkDataArray" class="linkProperty">GraphLinksModel.linkDataArray</a> or calling <a href="../symbols/GraphLinksModel.html#addLinkData" class="linkMethod">GraphLinksModel.addLinkData</a>.
Such actions will cause a diagram that is displaying the model to copy a template,
which is a Part that may have data <a href="../symbols/Binding.html" class="linkConstructor">Binding</a>s, and add the new part to the diagram.
The <a href="../symbols/Panel.html#data" class="linkProperty">Panel.data</a> property will refer to that data object in the model.
<p>
Some examples of adding Parts to a Diagram:
<pre>// A simple Part template
myDiagram.nodeTemplate =
$(go.Part, "Horizontal",
$(go.Shape, "Circle", { width: 20, height: 20 }),
$(go.TextBlock, "Hello World")
);
// Node templates can be either Nodes, or simple Parts
// (But not Groups, Adornments, or Links)
// Adds copies of the nodeTemplate bound to the specified node data:
myDiagram.model.nodeDataArray =
[
{ key: "Alpha" },
{ key: "Beta" }
];
// Adds one copy of the nodeTemplate bound to the given node data:
myDiagram.model.addNodeData( { key: "Gamma" } );</pre>
<p class="boxread">
See the <a href="../../intro/usingModels.html">Introduction on using Models</a>
for examples and more information.
<h3>Layers and Z-ordering</h3>
<p>
Parts added to a Diagram exist in one of the Diagram's <a href="../symbols/Layer.html" class="linkConstructor">Layer</a>s.
You can specify which layer the part should be in by setting <a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a>.
Parts cannot be nested in the visual tree -- they cannot be added to other Parts of Panels.
<p>
Parts can be individually z-ordered within a layer by setting <a href="../symbols/Part.html#zOrder" class="linkProperty">zOrder</a>.
Parts within the same layer that have a higher zOrder number will be drawn above parts with a lower number.
<h3>Size and Position</h3>
<p>
The size and position of a part are given by its <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a>.
The size is determined by the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s that are elements inside this part.
You can change the position by setting <a href="../symbols/GraphObject.html#position" class="linkProperty">GraphObject.position</a> or <a href="../symbols/Part.html#location" class="linkProperty">Part.location</a>.
<p>
The "location" of a part is commonly the same as its "position".
The "position" is always the point that is at the top-left corner of the area occupied by the part.
But the "location" may be different from the "position" if you want to think of the part as being "at" a different spot in the part.
For example, you might want the "location" to be at the center of a <a href="../symbols/Picture.html" class="linkConstructor">Picture</a> that has a <a href="../symbols/TextBlock.html" class="linkConstructor">TextBlock</a> title of arbitrary size.
In this case you would set the <a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a> to be <a href="../symbols/Spot.html#Center" class="linkConstant">Spot.Center</a> and the <a href="../symbols/Part.html#locationObjectName" class="linkProperty">locationObjectName</a>
to be the name of the Picture element in your Part.
<p>
A part may be selected or de-selected by setting its <a href="../symbols/Part.html#isSelected" class="linkProperty">isSelected</a> property.
This may also happen due to a call to <a href="../symbols/Diagram.html#select" class="linkMethod">Diagram.select</a> or other operations that change the selection.
The user may change this property as part of the operation of the <a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a>,
due to the user's mouse click, if the part is <a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a>.
<h3>Ability Properties (Permissions)</h3>
<p>
There are many properties named "...able", that control what operations the user may perform on this part.
These properties correspond to the similarly named properties on <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> and <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> that govern the
behavior for all parts in all layers or for all parts in the given layer.
For example, the <a href="../symbols/Part.html#copyable" class="linkProperty">Part.copyable</a> property corresponds to the properties <a href="../symbols/Diagram.html#allowCopy" class="linkProperty">Diagram.allowCopy</a> and <a href="../symbols/Layer.html#allowCopy" class="linkProperty">Layer.allowCopy</a>.
<p>
For each of these "ability" properties there is a corresponding "can..." predicate.
For example, the <a href="../symbols/Part.html#canCopy" class="linkMethod">Part.canCopy</a> predicate is false if any of the three previously named properties is false.
Commands and tools will normally call these predicates rather than just looking at Part properties.
<p class="boxread">
For more discussion about permissions, please read: <a href="../../intro/permissions.html">Permissions</a>.
<p>
As previously mentioned, each <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> supports the notion of selected parts.
One way of displaying that a part is selected is by modifying the part.
You can set the <a href="../symbols/Part.html#selectionChanged" class="linkProperty">selectionChanged</a> property to be a function that is called when the value of <a href="../symbols/Part.html#isSelected" class="linkProperty">isSelected</a> has changed;
it is passed the Part as the first argument.
The function can modify the color of one or more <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s in the visual tree of that Part.
Or perhaps it could toggle the <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> property of an object that is normally hidden when the part is not selected.
<p>
The Part class also supports showing separate visual objects for a part when it gets selected.
These visuals are typically used to show that the part is selected ("selection handles")
or are used to allow the user to manipulate or modify the part with a tool ("tool handles").
These handles are instances of <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>s.
The <a href="../symbols/Part.html#updateAdornments" class="linkMethod">updateAdornments</a> method is responsible for showing or hiding adornments,
normally depending on whether the part is selected.
<p>
When the <a href="../symbols/Part.html#selectionAdorned" class="linkProperty">selectionAdorned</a> property is true, a selected part automatically gets an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> created for it.
By default the selection adornment is just a simple blue box around the Part, and a blue shape following the route of a selected Link.
However you can set the <a href="../symbols/Part.html#selectionAdornmentTemplate" class="linkProperty">selectionAdornmentTemplate</a> to an arbitrarily complex Adornment.
This way it can show more information or buttons for executing various commands when the user selects a Part.
<p>
Tool handles are shown for those mode-less mouse-down tools that need it.
The process of updating adornments for a part will call <a href="../symbols/Tool.html#updateAdornments" class="linkMethod">Tool.updateAdornments</a> on each tool in <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">ToolManager.mouseDownTools</a>.
Most tools might not need special tool handles.
But, for example, <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a> naturally will want to create an adornment with eight resize handles
positioned at the corners and at the middles of the sides of the selected node's visual element,
if the node has its <a href="../symbols/Part.html#canResize" class="linkMethod">canResize</a> function returning true.
<p>
One may not always want the whole Part to get the selection handle or all tool handles.
Sometimes one wants to emphasize selection by highlighting a particular element within the part's visual tree.
This can be achieved by setting the <a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a> property,
and making sure the desired element has the same <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a> property value.
<p class="boxread">
For more discussion about selection, see <a href="../../intro/selection.html">Selection</a>.
<p>
Similarly the <a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a> and <a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a> properties direct the
corresponding <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a> and <a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a> to operate on the particular <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>
in the Part's visual tree with the given name.
That includes both providing tool handles and actually modifying properties on that object.
<p>
Parts are not resizable or rotatable by default: you need to set <a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a> and/or <a href="../symbols/Part.html#rotatable" class="linkProperty">rotatable</a> to true.
<p class="boxread">
For more discussion about tools, see <a href="../../intro/tools.html">Tools</a>.
<p>
A Part may be positioned (or a <a href="../symbols/Link.html" class="linkConstructor">Link</a> may be routed) by a <a href="../symbols/Layout.html" class="linkConstructor">Layout</a>.
This will happen automatically if <a href="../symbols/Diagram.html#layout" class="linkProperty">Diagram.layout</a> or <a href="../symbols/Group.html#layout" class="linkProperty">Group.layout</a> are set.
The default <a href="../symbols/Diagram.html#layout" class="linkProperty">Diagram.layout</a> will position any nodes that were not given explicit positions or location.
<p>
If you set <a href="../symbols/Part.html#isLayoutPositioned" class="linkProperty">isLayoutPositioned</a> to false, this part will not participate in any of the standard layouts,
so it will not be moved by a layout or affect other parts in a layout.
In order for the part to get a <a href="../symbols/Part.html#location" class="linkProperty">location</a> or position you will need to supply it explicitly.
<p>
As parts are added to or removed from a diagram, the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for positioning the part is invalidated.
This will cause the layout to be performed again in the near future, at the end of the transaction.
This automatic layout invalidation also occurs as parts change their visibility (<a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a>)
or their size (<a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a>).
If you do want there to be a <a href="../symbols/Diagram.html#layout" class="linkProperty">Diagram.layout</a> but you do not want an automatic layout to happen
after removing parts (for example), you can set <a href="../symbols/Part.html#layoutConditions" class="linkProperty">layoutConditions</a> not to include the <a href="../symbols/Part.html#LayoutRemoved" class="linkConstant">Part.LayoutRemoved</a> flag.
In this particular case, you could set <a href="../symbols/Part.html#layoutConditions" class="linkProperty">layoutConditions</a> to:
<code>go.Part.LayoutStandard & ~go.Part.LayoutRemoved</code>.
It may also reasonable for your application to set it to <a href="../symbols/Part.html#LayoutNone" class="linkConstant">Part.LayoutNone</a>.
Do not forget to consider applying the same conditions to links as well as to nodes and groups.
<p>
If you want to save the locations/positions of the parts in a diagram, it is commonplace to
data bind the <a href="../symbols/Part.html#location" class="linkProperty">location</a> to a property on your node data with a TwoWay <a href="../symbols/Binding.html" class="linkConstructor">Binding</a>
(call <a href="../symbols/Binding.html#makeTwoWay" class="linkMethod">Binding.makeTwoWay</a>). For example:
<pre>$(go.Part, "Horizontal",
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
...</pre>
<p>
Then as the nodes are moved, whether manually by the user or automatically by a <a href="../symbols/Layout.html" class="linkConstructor">Layout</a>,
the model data is automatically updated with the location.
<p class="boxread">
For more discussion about related topics, see <a href="../../intro/selection.html">Selection</a>,
<a href="../../intro/tools.html">Tools</a>, and
<a href="../../intro/permissions.html">Permissions</a>.
<p>
Parts that are templates should have no relationships with other Parts.
Only real Parts that are in a Diagram can belong to Groups or have any Adornments.
Only real Nodes in a Diagram can be connected with Links.
</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 Part.">
<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">
Part(type)
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>The constructor builds an empty Part.<span class="nodetails" id="xconPart"><a class="morelink" onclick="hst('conPart')">More...</a></span> <span class="details" id="conPart"></span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{EnumValue=}</span> <b>type</b>
</dt>
<dd>if not supplied, the default Panel type is <a href="../symbols/Panel.html#Position" class="linkConstant">Panel.Position</a>.</dd>
</dl>
</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 Part.">
<thead>
<tr>
<th scope="col" class="name">Name, Value Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="adornments" >
<td class="name">
<div class="name">
adornments
</div>
<div class="attributes">
<span class="light">{Iterator.<Adornment>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns an iterator over all of the <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>s associated with this part.<span class="nodetails" id="xpropadornments"><a class="morelink" onclick="hst('propadornments')">More...</a></span> <span class="details" id="propadornments">
After each call to the iterator's next() method that returns true,
the iterator's key will be the category and the iterator's value will
be an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>.
</span><div class="details" id="dpropadornments"><p>
Templates should not have any adornments.</div>
</div>
</td>
</tr>
<tr id="category" >
<td class="name">
<div class="name">
category
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the category of this part,
typically used to distinguish different kinds of nodes or links.<span class="nodetails" id="xpropcategory"><a class="morelink" onclick="hst('propcategory')">More...</a></span> <span class="details" id="propcategory">
</span><div class="details" id="dpropcategory"><p>
The initial value is an empty string, which is the default category.
Any new value must be a string.
This should not be set in templates.
<p>
When building Parts for node data or link data in a model,
the <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> will call <a href="../symbols/Model.html#getCategoryForNodeData" class="linkMethod">Model.getCategoryForNodeData</a> or
<a href="../symbols/GraphLinksModel.html#getCategoryForLinkData" class="linkMethod">GraphLinksModel.getCategoryForLinkData</a> to get the category string for the data object.
The diagram uses this value to look up a template in <a href="../symbols/Diagram.html#nodeTemplateMap" class="linkProperty">Diagram.nodeTemplateMap</a>,
<a href="../symbols/Diagram.html#linkTemplateMap" class="linkProperty">Diagram.linkTemplateMap</a> or <a href="../symbols/Diagram.html#groupTemplateMap" class="linkProperty">Diagram.groupTemplateMap</a>.
That template is copied to create the actual Part that is added to the diagram.
The diagram will set this property to remember the category it used.
<p>
Note that the class of the new Part must be the same as the class of the original Part.
For example, a Node cannot be replaced by a simple Part or vice-versa.
Nor can a Link be replaced by a subclass of Link or vice-versa.
<p>
To change the category for a Part created for model data, call <a href="../symbols/Model.html#setCategoryForNodeData" class="linkMethod">Model.setCategoryForNodeData</a> or
<a href="../symbols/GraphLinksModel.html#setCategoryForLinkData" class="linkMethod">GraphLinksModel.setCategoryForLinkData</a>.
<p>
This property is also used to distinguish <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>s on a Part.
In this scenario you create the Adornment, often indirectly by specifying a template,
and set this property explicitly.
For example, <a href="../symbols/ResizingTool.html#updateAdornments" class="linkMethod">ResizingTool.updateAdornments</a> creates a resizing Adornment from the
<a href="../symbols/Part.html#resizeAdornmentTemplate" class="linkProperty">Part.resizeAdornmentTemplate</a> and sets its category to be "Resizing".
Changing the category of an existing Adornment will update any adorned part's association.</div>
</div>
</td>
</tr>
<tr id="containingGroup" >
<td class="name">
<div class="name">
containingGroup
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Group.html" class="linkConstructor">Group</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/Group.html" class="linkConstructor">Group</a> of which this <a href="../symbols/Part.html" class="linkConstructor">Part</a> or <a href="../symbols/Node.html" class="linkConstructor">Node</a> is a member.<span class="nodetails" id="xpropcontainingGroup"><a class="morelink" onclick="hst('propcontainingGroup')">More...</a></span> <span class="details" id="propcontainingGroup">
This will be null if this is a top-level part.
</span><div class="details" id="dpropcontainingGroup"><p>
You cannot set this property on a <a href="../symbols/Link.html" class="linkConstructor">Link</a>; it is set for you automatically
based on the group memberships of the connected nodes.
You cannot set this property on an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> at all.
<p>
A template should not be a member of any group.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Group.html#memberParts" class="linkProperty">Group.memberParts</a></li>
<li><a href="../symbols/Part.html#findTopLevelPart" class="linkMethod">findTopLevelPart</a></li>
<li><a href="../symbols/Part.html#isTopLevel" class="linkProperty">isTopLevel</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="containingGroupChanged" >
<td class="name">
<div class="name">
containingGroupChanged
</div>
<div class="attributes">
<span class="light">{function(Part, Group, Group) | null}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the function that is called after this Part has changed which <a href="../symbols/Group.html" class="linkConstructor">Group</a> it belongs to, if any.<span class="nodetails" id="xpropcontainingGroupChanged"><a class="morelink" onclick="hst('propcontainingGroupChanged')">More...</a></span> <span class="details" id="propcontainingGroupChanged">
It is typically used to modify the appearance of the part.
The first argument will be this Part.
The second argument will be the old Group, or null if it had been a top-level part.
The third argument will be the new Group, or null if it is now a top-level part.
</span><div class="details" id="dpropcontainingGroupChanged"><p>
If the value is a function, that function must not modify the part's containing <a href="../symbols/Group.html" class="linkConstructor">Group</a>.
The containing Group has already been changed -- trying to change it again may produce undefined behavior.
<p>
The initial value is null -- no function is called.</div>
</div>
</td>
</tr>
<tr id="copyable" >
<td class="name">
<div class="name">
copyable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may copy this part.<span class="nodetails" id="xpropcopyable"><a class="morelink" onclick="hst('propcopyable')">More...</a></span> <span class="details" id="propcopyable">
The initial value is true.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canCopy" class="linkMethod">canCopy</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="deletable" >
<td class="name">
<div class="name">
deletable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may delete this part.<span class="nodetails" id="xpropdeletable"><a class="morelink" onclick="hst('propdeletable')">More...</a></span> <span class="details" id="propdeletable">
The initial value is true.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canDelete" class="linkMethod">canDelete</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="diagram" >
<td class="name">
<div class="name">
diagram
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> that this Part is in.<span class="nodetails" id="xpropdiagram"><a class="morelink" onclick="hst('propdiagram')">More...</a></span> <span class="details" id="propdiagram">
</span><div class="details" id="dpropdiagram"><p>
This will be null if it is not in a <a href="../symbols/Layer.html" class="linkConstructor">Layer</a>.</div>
</div>
</td>
</tr>
<tr id="dragComputation" >
<td class="name">
<div class="name">
dragComputation
</div>
<div class="attributes">
<span class="light">{function(Part, Point, Point):Point | null}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the function used to determine the location that this Part can be dragged to.<span class="nodetails" id="xpropdragComputation"><a class="morelink" onclick="hst('propdragComputation')">More...</a></span> <span class="details" id="propdragComputation">
The first argument is a reference to the Part being dragged, the second argument is a Point describing
the proposed location, and the third argument is a snapped location, if one was determined during dragging.
It should return a Point that is the proposed new location.
</span><div class="details" id="dpropdragComputation"><p>
By default this function is null and the <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a> uses the snapped location,
if one was determined and if <a href="../symbols/DraggingTool.html#isGridSnapEnabled" class="linkProperty">DraggingTool.isGridSnapEnabled</a> is true,
or the proposed location (the second argument) if not snapping to a grid.
<p>
In either case the <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a> will limit the proposed new location by <a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a> and <a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a>.
<p>
The function, if supplied, must not have any side-effects.
<p>
An example that limits moving a Node to the current viewport:
<pre>
function stayInViewport(part, pt, gridpt) {
var diagram = part.diagram;
if (diagram === null) return pt;
// compute the area inside the viewport
var v = diagram.viewportBounds.copy();
v.subtractMargin(diagram.padding);
// get the bounds of the part being dragged
var b = part.actualBounds;
var loc = part.location;
// now limit the location appropriately
var x = Math.max(v.x+1, Math.min(pt.x, v.right-b.width-2)) + (loc.x-b.x);
var y = Math.max(v.y+1, Math.min(pt.y, v.bottom-b.height-2)) + (loc.y-b.y);
return new go.Point(x, y);
}
</pre>
Note that for this functionality you will also probably want to set <a href="../symbols/Diagram.html#autoScrollRegion" class="linkProperty">Diagram.autoScrollRegion</a> to be a zero margin.
<pre>
myDiagram.nodeTemplate =
$(go.Node, . . .,
{ dragComputation: stayInViewport },
. . .
);
</pre></div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a></li>
<li><a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="groupable" >
<td class="name">
<div class="name">
groupable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may group this part to be a member of a new <a href="../symbols/Group.html" class="linkConstructor">Group</a>.<span class="nodetails" id="xpropgroupable"><a class="morelink" onclick="hst('propgroupable')">More...</a></span> <span class="details" id="propgroupable">
The initial value is true.
</span><div class="details" id="dpropgroupable"><p>
The grouping command is implemented by <a href="../symbols/CommandHandler.html#groupSelection" class="linkMethod">CommandHandler.groupSelection</a>
and depends on <a href="../symbols/CommandHandler.html#archetypeGroupData" class="linkProperty">CommandHandler.archetypeGroupData</a> having been set to a node data object.
A Group can be ungrouped by the user if you set <a href="../symbols/Group.html#ungroupable" class="linkProperty">Group.ungroupable</a> to true.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canGroup" class="linkMethod">canGroup</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="highlightedChanged" >
<td class="name">
<div class="name">
highlightedChanged
</div>
<div class="attributes">
<span class="light">{function(Part) | null}</span>
<span class="since" title="since">1.7</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the function to execute when this <a href="../symbols/Part.html#isHighlighted" class="linkProperty">isHighlighted</a> changes.<span class="nodetails" id="xprophighlightedChanged"><a class="morelink" onclick="hst('prophighlightedChanged')">More...</a></span> <span class="details" id="prophighlightedChanged">
It is typically used to modify the appearance of the part.
This function must not highlight or unhighlight any parts.
</span><div class="details" id="dprophighlightedChanged"><p>
If this property value is a function, it is called with one argument,
this <a href="../symbols/Part.html" class="linkConstructor">Part</a> that whose <a href="../symbols/Part.html#isHighlighted" class="linkProperty">isHighlighted</a> value changed.
By default this property is null.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#isHighlighted" class="linkProperty">isHighlighted</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="isAnimated" >
<td class="name">
<div class="name">
isAnimated
</div>
<div class="attributes">
<span class="light">{boolean}</span>
<span class="since" title="since">1.4</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether this part may be animated.<span class="nodetails" id="xpropisAnimated"><a class="morelink" onclick="hst('propisAnimated')">More...</a></span> <span class="details" id="propisAnimated">
The initial value is true.</span>
</div>
</td>
</tr>
<tr id="isHighlighted" >
<td class="name">
<div class="name">
isHighlighted
</div>
<div class="attributes">
<span class="light">{boolean}</span>
<span class="since" title="since">1.4</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether this Part is highlighted.<span class="nodetails" id="xpropisHighlighted"><a class="morelink" onclick="hst('propisHighlighted')">More...</a></span> <span class="details" id="propisHighlighted">
The initial value is false.
</span><div class="details" id="dpropisHighlighted"><p>
Highlighted parts may be shown with a different appearance by changing the brush or visibility of one or
more of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s within the part.
One way of doing that is by using binding.
Consider part of the definition of a Node template:
<pre>
$(go.Shape,
. . .,
// Shape.fill is bound to Node.data.color
new go.Binding("fill", "color"),
// Shape.stroke is red when Node.isHighlighted is true, black otherwise
new go.Binding("stroke", "isHighlighted",
function(h) { return h ? "red" : "black"; }).ofObject()),
</pre></div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#highlightedChanged" class="linkProperty">highlightedChanged</a></li>
<li><a href="../symbols/Diagram.html#highlighteds" class="linkProperty">Diagram.highlighteds</a></li>
<li><a href="../symbols/Diagram.html#highlight" class="linkMethod">Diagram.highlight</a></li>
<li><a href="../symbols/Diagram.html#highlightCollection" class="linkMethod">Diagram.highlightCollection</a></li>
<li><a href="../symbols/Diagram.html#clearHighlighteds" class="linkMethod">Diagram.clearHighlighteds</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="isInDocumentBounds" >
<td class="name">
<div class="name">
isInDocumentBounds
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether this Part is part of the document bounds.<span class="nodetails" id="xpropisInDocumentBounds"><a class="morelink" onclick="hst('propisInDocumentBounds')">More...</a></span> <span class="details" id="propisInDocumentBounds">
</span><div class="details" id="dpropisInDocumentBounds"><p>
The initial value is true.
A value of false causes <a href="../symbols/Diagram.html#computeBounds" class="linkMethod">Diagram.computeBounds</a> to ignore this part.
If the value is false, it is possible that user will not be able to scroll far enough to see this part,
if the part's <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a> are outside of the <a href="../symbols/Diagram.html#documentBounds" class="linkProperty">Diagram.documentBounds</a>.</div>
</div>
</td>
</tr>
<tr id="isLayoutPositioned" >
<td class="name">
<div class="name">
isLayoutPositioned
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether a <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> positions this Node or routes this Link.<span class="nodetails" id="xpropisLayoutPositioned"><a class="morelink" onclick="hst('propisLayoutPositioned')">More...</a></span> <span class="details" id="propisLayoutPositioned">
This property affects the value of <a href="../symbols/Part.html#canLayout" class="linkMethod">canLayout</a>.
</span><div class="details" id="dpropisLayoutPositioned"><p>
The initial value is true, meaning that this part is laid out by the layout responsible for this Part.
If this part is a member of a <a href="../symbols/Group.html" class="linkConstructor">Group</a>, it is the <a href="../symbols/Group.html#layout" class="linkProperty">Group.layout</a>,
otherwise it is the <a href="../symbols/Diagram.html#layout" class="linkProperty">Diagram.layout</a>.
<p>
A value of false means that this part is not affected by and does not affect any automatic layout,
so the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">layoutConditions</a> property is ignored.
You will need to make sure that it has a real <a href="../symbols/Part.html#location" class="linkProperty">location</a> or <a href="../symbols/GraphObject.html#position" class="linkProperty">GraphObject.position</a> value,
or else the Part might not be visible anywhere in the diagram.
<p>
Another way of controlling when layouts are invalidated is by setting
<a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> or <a href="../symbols/Layout.html#isInitial" class="linkProperty">Layout.isInitial</a> or <a href="../symbols/Layout.html#isOngoing" class="linkProperty">Layout.isOngoing</a>.</div>
</div>
</td>
</tr>
<tr id="isSelected" >
<td class="name">
<div class="name">
isSelected
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether this Part is selected.<span class="nodetails" id="xpropisSelected"><a class="morelink" onclick="hst('propisSelected')">More...</a></span> <span class="details" id="propisSelected">
The initial value is false.
</span><div class="details" id="dpropisSelected"><p>
Selected parts typically are shown either with an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>
or with a different appearance by changing the brush or visibility of one or
more of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s within the part.
<p>
Changing this value does not by itself raise any "ChangingSelection" and "ChangedSelection" <a href="../symbols/DiagramEvent.html" class="linkConstructor">DiagramEvent</a>s.
<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>s and the <a href="../symbols/CommandHandler.html" class="linkConstructor">CommandHandler</a> and methods such as <a href="../symbols/Diagram.html#select" class="linkMethod">Diagram.select</a> do raise those DiagramEvents
because they want to surround changes to this property with a single "ChangingSelection" DiagramEvent beforehand and a single "ChangedSelection" afterwards.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a></li>
<li><a href="../symbols/Part.html#selectionAdorned" class="linkProperty">selectionAdorned</a></li>
<li><a href="../symbols/Part.html#selectionChanged" class="linkProperty">selectionChanged</a></li>
<li><a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a></li>
<li><a href="../symbols/Part.html#selectionAdornmentTemplate" class="linkProperty">selectionAdornmentTemplate</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="isShadowed" >
<td class="name">
<div class="name">
isShadowed
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether this part will draw shadows.<span class="nodetails" id="xpropisShadowed"><a class="morelink" onclick="hst('propisShadowed')">More...</a></span> <span class="details" id="propisShadowed">
The initial value is false.
</span><div class="details" id="dpropisShadowed"><p>
By default, setting this property to true will attempt to draw shadows only
on the GraphObjects in this Part that appear to act as background objects, and
not on GraphObjects that appear to be in front of other GraphObjects in the Part.
<p>
To finely control shadows, you may need to set <a href="../symbols/GraphObject.html#shadowVisible" class="linkProperty">GraphObject.shadowVisible</a> on
elements of this Part, so that they explicitly do or do not get shadowed accordingly.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#shadowOffset" class="linkProperty">shadowOffset</a></li>
<li><a href="../symbols/Part.html#shadowColor" class="linkProperty">shadowColor</a></li>
<li><a href="../symbols/Part.html#shadowBlur" class="linkProperty">shadowBlur</a></li>
<li><a href="../symbols/GraphObject.html#shadowVisible" class="linkProperty">GraphObject.shadowVisible</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="isTopLevel" >
<td class="name">
<div class="name">
isTopLevel
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property is true when this part is not member of any <a href="../symbols/Group.html" class="linkConstructor">Group</a> node
nor is it a label node for a <a href="../symbols/Link.html" class="linkConstructor">Link</a>.<span class="nodetails" id="xpropisTopLevel"><a class="morelink" onclick="hst('propisTopLevel')">More...</a></span> <span class="details" id="propisTopLevel"></span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#containingGroup" class="linkProperty">containingGroup</a></li>
<li><a href="../symbols/Node.html#labeledLink" class="linkProperty">Node.labeledLink</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="key" >
<td class="name">
<div class="name">
key
</div>
<div class="attributes">
<span class="light">{string | number | undefined}</span>
<span class="since" title="since">1.8</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the key of the model data of this Part.
</div>
</td>
</tr>
<tr id="layer" >
<td class="name">
<div class="name">
layer
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Layer.html" class="linkConstructor">Layer</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> that this Part is in.<span class="nodetails" id="xproplayer"><a class="morelink" onclick="hst('proplayer')">More...</a></span> <span class="details" id="proplayer">
The value is the Layer that is named with the value of <a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a>.
If you want to change what Layer this Part is in, change the value of <a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a> to refer to a different Layer.
</span><div class="details" id="dproplayer"><p>
This will be null if it has not yet been added to a <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a>,
or if it has already been removed from a Diagram.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="layerChanged" >
<td class="name">
<div class="name">
layerChanged
</div>
<div class="attributes">
<span class="light">{function(Part, Layer, Layer) | null}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the function to execute when this part changes layers.<span class="nodetails" id="xproplayerChanged"><a class="morelink" onclick="hst('proplayerChanged')">More...</a></span> <span class="details" id="proplayerChanged">
It is typically used to modify the appearance of the part.
This function must not change the layer of this part by setting <a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a>.
</span><div class="details" id="dproplayerChanged"><p>
If this property value is a function, it is called with three arguments,
this <a href="../symbols/Part.html" class="linkConstructor">Part</a>, the old <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> (may be null), and the new <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> (may be null).
By default this property is null -- no function is called.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="layerName" >
<td class="name">
<div class="name">
layerName
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the layer name for this part.<span class="nodetails" id="xproplayerName"><a class="morelink" onclick="hst('proplayerName')">More...</a></span> <span class="details" id="proplayerName">
The initial value is an empty string, which is the name of the default layer.
The value of this property determines the value of <a href="../symbols/Part.html#layer" class="linkProperty">layer</a>.
</span><div class="details" id="dproplayerName"><p>
If this part is not yet in a <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a>,
this value is used by <a href="../symbols/Diagram.html#add" class="linkMethod">Diagram.add</a>
to determine which <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> this part should go in.
If no layer can be found with this name, it uses the default layer.
<p>
Changing the value of this property while it is already in a layer
causes it to change layers if needed.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#layerChanged" class="linkProperty">layerChanged</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="layoutConditions" >
<td class="name">
<div class="name">
layoutConditions
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets flags that control when the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> that is responsible for this Part is invalidated.<span class="nodetails" id="xproplayoutConditions"><a class="morelink" onclick="hst('proplayoutConditions')">More...</a></span> <span class="details" id="proplayoutConditions">
The initial value is <a href="../symbols/Part.html#LayoutStandard" class="linkConstant">Part.LayoutStandard</a>,
which causes the layout for this part to be invalidated when the part is added or removed or changes visibility or size.
</span><div class="details" id="dproplayoutConditions"><p>
Individual layout conditions include: <a href="../symbols/Part.html#LayoutAdded" class="linkConstant">Part.LayoutAdded</a>, <a href="../symbols/Part.html#LayoutRemoved" class="linkConstant">Part.LayoutRemoved</a>,
<a href="../symbols/Part.html#LayoutShown" class="linkConstant">Part.LayoutShown</a>, <a href="../symbols/Part.html#LayoutHidden" class="linkConstant">Part.LayoutHidden</a>, and <a href="../symbols/Part.html#LayoutNodeSized" class="linkConstant">Part.LayoutNodeSized</a>.
<p>
This property is ignored when <a href="../symbols/Part.html#isLayoutPositioned" class="linkProperty">isLayoutPositioned</a> is false -- no operation on this Part
will by itself cause the responsible Layout to be invalidated.
<p>
You can also control when layouts are invalidated is by setting <a href="../symbols/Layout.html#isInitial" class="linkProperty">Layout.isInitial</a> or <a href="../symbols/Layout.html#isOngoing" class="linkProperty">Layout.isOngoing</a>.</div>
</div>
</td>
</tr>
<tr id="location" >
<td class="name">
<div class="name">
location
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Point.html" class="linkConstructor">Point</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the position of this part in document coordinates,
based on the <a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a> in this part's <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a>.<span class="nodetails" id="xproplocation"><a class="morelink" onclick="hst('proplocation')">More...</a></span> <span class="details" id="proplocation">
</span><div class="details" id="dproplocation"><p>
Value must be of type <a href="../symbols/Point.html" class="linkConstructor">Point</a>.
The initial value is Point(NaN, NaN).
It is commonplace to data bind this property to some property on your model node data.
<p>
The value is related to the <a href="../symbols/GraphObject.html#position" class="linkProperty">GraphObject.position</a>.
For Parts, both are in document coordinates; setting one property will set the other property.
By default both will have the same value.
However, by setting either or both of <a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a> and <a href="../symbols/Part.html#locationObjectName" class="linkProperty">locationObjectName</a>,
the location will be determined by a spot in the <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a>,
a <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that is in the visual tree of this Part.
The <a href="../symbols/GraphObject.html#position" class="linkProperty">GraphObject.position</a> will always refer to the point at the top-left corner of the whole part.
<p>
The <a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a> and <a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a> limit the location of a part, not its position.
Grid snapping will normally locate the location to be on grid points.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#locationObjectName" class="linkProperty">locationObjectName</a></li>
<li><a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a></li>
<li><a href="../symbols/Part.html#movable" class="linkProperty">movable</a></li>
<li><a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a></li>
<li><a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a></li>
<li><a href="../symbols/Part.html#dragComputation" class="linkProperty">dragComputation</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="locationObject" >
<td class="name">
<div class="name">
locationObject
</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>This read-only property returns the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that determines the location of this Part.<span class="nodetails" id="xproplocationObject"><a class="morelink" onclick="hst('proplocationObject')">More...</a></span> <span class="details" id="proplocationObject">
The value will be in the visual tree of this Part and is usually named with
the value of <a href="../symbols/Part.html#locationObjectName" class="linkProperty">locationObjectName</a>.</span>
</div>
</td>
</tr>
<tr id="locationObjectName" >
<td class="name">
<div class="name">
locationObjectName
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the name of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that provides the location of this Part.<span class="nodetails" id="xproplocationObjectName"><a class="morelink" onclick="hst('proplocationObjectName')">More...</a></span> <span class="details" id="proplocationObjectName">
This name determines the value of <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a>.
The actual <a href="../symbols/Part.html#location" class="linkProperty">location</a> also depends on the <a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a>.
</span><div class="details" id="dproplocationObjectName"><p>
The initial value is an empty string, meaning the whole Part itself determines the location.
If you want to use a particular GraphObject in the visual tree of this Part,
set this property to be the <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a> of the element that you want to be the <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#location" class="linkProperty">location</a></li>
<li><a href="../symbols/Part.html#locationSpot" class="linkProperty">locationSpot</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="locationSpot" >
<td class="name">
<div class="name">
locationSpot
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Spot.html" class="linkConstructor">Spot</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the location Spot of this Node, the spot on the <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a>
that is used in positioning this part in the diagram.<span class="nodetails" id="xproplocationSpot"><a class="morelink" onclick="hst('proplocationSpot')">More...</a></span> <span class="details" id="proplocationSpot">
</span><div class="details" id="dproplocationSpot"><p>
Value must be of the type <a href="../symbols/Spot.html" class="linkConstructor">Spot</a>.
The initial value is <code>Spot.TopLeft</code>.
The value must be a specific spot -- i.e. one for which <a href="../symbols/Spot.html#isSpot" class="linkMethod">Spot.isSpot</a> is true.
<p>
It is commonplace to set this property to <code>Spot.Center</code>, so that the <a href="../symbols/Part.html#location" class="linkProperty">location</a>
has a value corresponding to the point at the center of this Part's <a href="../symbols/Part.html#locationObject" class="linkProperty">locationObject</a> element.
But the <a href="../symbols/GraphObject.html#position" class="linkProperty">GraphObject.position</a> of a Part is always at the top-left corner
point of the <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#location" class="linkProperty">location</a></li>
<li><a href="../symbols/Part.html#locationObjectName" class="linkProperty">locationObjectName</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="maxLocation" >
<td class="name">
<div class="name">
maxLocation
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Point.html" class="linkConstructor">Point</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the maximum location of this Part to which the user may drag using the <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a>.<span class="nodetails" id="xpropmaxLocation"><a class="morelink" onclick="hst('propmaxLocation')">More...</a></span> <span class="details" id="propmaxLocation">
</span><div class="details" id="dpropmaxLocation"><p>
Value must be of type <a href="../symbols/Point.html" class="linkConstructor">Point</a>.
The initial value is (Infinity, Infinity), which imposes no position constraint.
A X value of NaN causes <a href="../symbols/DraggingTool.html#computeMove" class="linkMethod">DraggingTool.computeMove</a> to use the part's current location's X value as the maximum,
and similarly for NaN as the Y value.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#location" class="linkProperty">location</a></li>
<li><a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a></li>
<li><a href="../symbols/Part.html#dragComputation" class="linkProperty">dragComputation</a></li>
<li><a href="../symbols/Part.html#movable" class="linkProperty">movable</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="minLocation" >
<td class="name">
<div class="name">
minLocation
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Point.html" class="linkConstructor">Point</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the minimum location of this Part to which the user may drag using the <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a>.<span class="nodetails" id="xpropminLocation"><a class="morelink" onclick="hst('propminLocation')">More...</a></span> <span class="details" id="propminLocation">
</span><div class="details" id="dpropminLocation"><p>
Value must be of type <a href="../symbols/Point.html" class="linkConstructor">Point</a>.
The initial value is (-Infinity, -Infinity), which imposes no position constraint.
A X value of NaN causes <a href="../symbols/DraggingTool.html#computeMove" class="linkMethod">DraggingTool.computeMove</a> to use the part's current location's X value as the minimum,
and similarly for NaN as the Y value.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#location" class="linkProperty">location</a></li>
<li><a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a></li>
<li><a href="../symbols/Part.html#dragComputation" class="linkProperty">dragComputation</a></li>
<li><a href="../symbols/Part.html#movable" class="linkProperty">movable</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="movable" >
<td class="name">
<div class="name">
movable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may move this part.<span class="nodetails" id="xpropmovable"><a class="morelink" onclick="hst('propmovable')">More...</a></span> <span class="details" id="propmovable">
The initial value is true.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canMove" class="linkMethod">canMove</a></li>
<li><a href="../symbols/Part.html#dragComputation" class="linkProperty">dragComputation</a></li>
<li><a href="../symbols/Part.html#maxLocation" class="linkProperty">maxLocation</a></li>
<li><a href="../symbols/Part.html#minLocation" class="linkProperty">minLocation</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="reshapable" >
<td class="name">
<div class="name">
reshapable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may reshape this part.<span class="nodetails" id="xpropreshapable"><a class="morelink" onclick="hst('propreshapable')">More...</a></span> <span class="details" id="propreshapable">
The initial value is false.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canReshape" class="linkMethod">canReshape</a></li>
<li><a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="resizable" >
<td class="name">
<div class="name">
resizable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may resize this part.<span class="nodetails" id="xpropresizable"><a class="morelink" onclick="hst('propresizable')">More...</a></span> <span class="details" id="propresizable">
The initial value is false.
</span><div class="details" id="dpropresizable"><p>
If you set this to true you may also want to set <a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a>
to the <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a>d element that you want the user to resize.
It is also commonplace to add a TwoWay <a href="../symbols/Binding.html" class="linkConstructor">Binding</a> of that named element's
<a href="../symbols/GraphObject.html#desiredSize" class="linkProperty">GraphObject.desiredSize</a> in order to save to the model data the value that the user
set via the <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canResize" class="linkMethod">canResize</a></li>
<li><a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a></li>
<li><a href="../symbols/Part.html#resizeCellSize" class="linkProperty">resizeCellSize</a></li>
<li><a href="../symbols/Part.html#resizeAdornmentTemplate" class="linkProperty">resizeAdornmentTemplate</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="resizeAdornmentTemplate" >
<td class="name">
<div class="name">
resizeAdornmentTemplate
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the adornment template used to create a resize handle <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> for this part.<span class="nodetails" id="xpropresizeAdornmentTemplate"><a class="morelink" onclick="hst('propresizeAdornmentTemplate')">More...</a></span> <span class="details" id="propresizeAdornmentTemplate">
This is used by the <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a>, <a href="../symbols/ToolManager.html#resizingTool" class="linkProperty">ToolManager.resizingTool</a>.
</span><div class="details" id="dpropresizeAdornmentTemplate"><p>
If an Adornment is supplied, it is normally a <a href="../symbols/Panel.html#Spot" class="linkConstant">Panel.Spot</a> panel that contains a <a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a>
with some number of resize handles at the four corners or at the four side midpoints.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a></li>
<li><a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="resizeCellSize" >
<td class="name">
<div class="name">
resizeCellSize
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Size.html" class="linkConstructor">Size</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the width and height multiples used when resizing.<span class="nodetails" id="xpropresizeCellSize"><a class="morelink" onclick="hst('propresizeCellSize')">More...</a></span> <span class="details" id="propresizeCellSize">
By default this property is the Size(NaN, NaN).</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a></li>
<li><a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="resizeObject" >
<td class="name">
<div class="name">
resizeObject
</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>This read-only property returns the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get resize handles when this part is selected.<span class="nodetails" id="xpropresizeObject"><a class="morelink" onclick="hst('propresizeObject')">More...</a></span> <span class="details" id="propresizeObject">
The value will be in the visual tree of this Part and is usually named with
the value of <a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a>.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a></li>
<li><a href="../symbols/Part.html#resizeObjectName" class="linkProperty">resizeObjectName</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="resizeObjectName" >
<td class="name">
<div class="name">
resizeObjectName
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the name of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get a resize handle
when this part is selected.<span class="nodetails" id="xpropresizeObjectName"><a class="morelink" onclick="hst('propresizeObjectName')">More...</a></span> <span class="details" id="propresizeObjectName">
The value of this property affects the value of <a href="../symbols/Part.html#resizeObject" class="linkProperty">resizeObject</a>.
The initial value is an empty string, meaning the whole <a href="../symbols/Part.html" class="linkConstructor">Part</a> itself gets any resize handle.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a></li>
<li><a href="../symbols/Part.html#resizeObject" class="linkProperty">resizeObject</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="rotatable" >
<td class="name">
<div class="name">
rotatable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may rotate this part.<span class="nodetails" id="xproprotatable"><a class="morelink" onclick="hst('proprotatable')">More...</a></span> <span class="details" id="proprotatable">
The initial value is false.
</span><div class="details" id="dproprotatable"><p>
If you set this to true you may also want to set <a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a>
to the <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a>d element that you want the user to rotate.
It is also commonplace to add a TwoWay <a href="../symbols/Binding.html" class="linkConstructor">Binding</a> of that named element's
<a href="../symbols/GraphObject.html#angle" class="linkProperty">GraphObject.angle</a> in order to save to the model data the value that the user
set via the <a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canRotate" class="linkMethod">canRotate</a></li>
<li><a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a></li>
<li><a href="../symbols/Part.html#rotateAdornmentTemplate" class="linkProperty">rotateAdornmentTemplate</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="rotateAdornmentTemplate" >
<td class="name">
<div class="name">
rotateAdornmentTemplate
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the adornment template used to create a rotation handle <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> for this part.<span class="nodetails" id="xproprotateAdornmentTemplate"><a class="morelink" onclick="hst('proprotateAdornmentTemplate')">More...</a></span> <span class="details" id="proprotateAdornmentTemplate">
This is used by the <a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a>, <a href="../symbols/ToolManager.html#rotatingTool" class="linkProperty">ToolManager.rotatingTool</a>.
</span><div class="details" id="dproprotateAdornmentTemplate"><p>
This Adornment should not have a <a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a> in it, because the RotatingTool will position it away from the
<a href="../symbols/Part.html#rotateObject" class="linkProperty">rotateObject</a> at its <a href="../symbols/GraphObject.html#angle" class="linkProperty">GraphObject.angle</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#rotatable" class="linkProperty">rotatable</a></li>
<li><a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a></li>
<li><a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="rotateObject" >
<td class="name">
<div class="name">
rotateObject
</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>This read-only property returns the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get rotate handles when this part is selected.<span class="nodetails" id="xproprotateObject"><a class="morelink" onclick="hst('proprotateObject')">More...</a></span> <span class="details" id="proprotateObject">
The value will be in the visual tree of this Part and is usually named with
the value of <a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a>.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#rotatable" class="linkProperty">rotatable</a></li>
<li><a href="../symbols/Part.html#rotateObjectName" class="linkProperty">rotateObjectName</a></li>
<li><a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="rotateObjectName" >
<td class="name">
<div class="name">
rotateObjectName
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the name of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get a rotate handle
when this part is selected.<span class="nodetails" id="xproprotateObjectName"><a class="morelink" onclick="hst('proprotateObjectName')">More...</a></span> <span class="details" id="proprotateObjectName">
The value of this property affects the value of <a href="../symbols/Part.html#rotateObject" class="linkProperty">rotateObject</a>.
The initial value is an empty string, meaning the whole <a href="../symbols/Part.html" class="linkConstructor">Part</a> itself gets any rotate handle.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#rotatable" class="linkProperty">rotatable</a></li>
<li><a href="../symbols/Part.html#rotateObject" class="linkProperty">rotateObject</a></li>
<li><a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectable" >
<td class="name">
<div class="name">
selectable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may select this part.<span class="nodetails" id="xpropselectable"><a class="morelink" onclick="hst('propselectable')">More...</a></span> <span class="details" id="propselectable">
The initial value is true.
</span><div class="details" id="dpropselectable"><p>
If you set this to true you may also want to set <a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a>
to the <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a>d element that you want to be adorned
when the Part is selected.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canSelect" class="linkMethod">canSelect</a></li>
<li><a href="../symbols/Part.html#isSelected" class="linkProperty">isSelected</a></li>
<li><a href="../symbols/Part.html#selectionAdorned" class="linkProperty">selectionAdorned</a></li>
<li><a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a></li>
<li><a href="../symbols/Part.html#selectionAdornmentTemplate" class="linkProperty">selectionAdornmentTemplate</a></li>
<li><a href="../symbols/Part.html#selectionChanged" class="linkProperty">selectionChanged</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectionAdorned" >
<td class="name">
<div class="name">
selectionAdorned
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether a selection adornment is shown for this part when it is selected.<span class="nodetails" id="xpropselectionAdorned"><a class="morelink" onclick="hst('propselectionAdorned')">More...</a></span> <span class="details" id="propselectionAdorned">
The initial value is true.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#selectionChanged" class="linkProperty">selectionChanged</a></li>
<li><a href="../symbols/Part.html#selectionAdornmentTemplate" class="linkProperty">selectionAdornmentTemplate</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectionAdornmentTemplate" >
<td class="name">
<div class="name">
selectionAdornmentTemplate
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> template used to create a selection handle for this Part.<span class="nodetails" id="xpropselectionAdornmentTemplate"><a class="morelink" onclick="hst('propselectionAdornmentTemplate')">More...</a></span> <span class="details" id="propselectionAdornmentTemplate">
</span><div class="details" id="dpropselectionAdornmentTemplate"><p>
If this is null, depending on the class of this Part, the value of <a href="../symbols/Diagram.html#nodeSelectionAdornmentTemplate" class="linkProperty">Diagram.nodeSelectionAdornmentTemplate</a>, <a href="../symbols/Diagram.html#groupSelectionAdornmentTemplate" class="linkProperty">Diagram.groupSelectionAdornmentTemplate</a>,
or <a href="../symbols/Diagram.html#linkSelectionAdornmentTemplate" class="linkProperty">Diagram.linkSelectionAdornmentTemplate</a> is used instead.
<p>
It is commonplace to make use of a <a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a> in an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> for a <a href="../symbols/Node.html" class="linkConstructor">Node</a>, <a href="../symbols/Group.html" class="linkConstructor">Group</a>, or simple <a href="../symbols/Part.html" class="linkConstructor">Part</a>.
The Placeholder represents the <a href="../symbols/Adornment.html#adornedObject" class="linkProperty">Adornment.adornedObject</a> of the adorned Part.
For <a href="../symbols/Link.html" class="linkConstructor">Link</a>s, the Adornment must be of <a href="../symbols/Panel.html#type" class="linkProperty">Panel.type</a> <a href="../symbols/Panel.html#Link" class="linkConstant">Panel.Link</a>.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a></li>
<li><a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectionChanged" >
<td class="name">
<div class="name">
selectionChanged
</div>
<div class="attributes">
<span class="light">{function(Part) | null}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the function to execute when this part is selected or deselected.<span class="nodetails" id="xpropselectionChanged"><a class="morelink" onclick="hst('propselectionChanged')">More...</a></span> <span class="details" id="propselectionChanged">
It is typically used to modify the appearance of the part.
This function must not select or deselect any parts.
</span><div class="details" id="dpropselectionChanged"><p>
If this property value is a function, it is called with one argument,
this <a href="../symbols/Part.html" class="linkConstructor">Part</a> that was selected or that became unselected.
When it is called, the value of <a href="../symbols/Diagram.html#skipsUndoManager" class="linkProperty">Diagram.skipsUndoManager</a> is temporarily set to true.
By default this property is null.
<p>
This function is called with <a href="../symbols/Diagram.html#skipsUndoManager" class="linkProperty">Diagram.skipsUndoManager</a> temporarily set to true,
so that any changes to <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s are not recorded in the <a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a>.
You do not need to start and commit any transaction in this function.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#isSelected" class="linkProperty">isSelected</a></li>
<li><a href="../symbols/Part.html#selectionAdorned" class="linkProperty">selectionAdorned</a></li>
<li><a href="../symbols/Part.html#selectionAdornmentTemplate" class="linkProperty">selectionAdornmentTemplate</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectionObject" >
<td class="name">
<div class="name">
selectionObject
</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>This read-only property returns the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get a selection handle when this part is selected.<span class="nodetails" id="xpropselectionObject"><a class="morelink" onclick="hst('propselectionObject')">More...</a></span> <span class="details" id="propselectionObject">
The value will be in the visual tree of this Part and is usually named with
the value of <a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a>.
When the <a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a> is unspecified, this whole Part is used as the "selection object".</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a></li>
<li><a href="../symbols/Part.html#selectionObjectName" class="linkProperty">selectionObjectName</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="selectionObjectName" >
<td class="name">
<div class="name">
selectionObjectName
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the name of the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> that should get a selection handle
when this part is selected.<span class="nodetails" id="xpropselectionObjectName"><a class="morelink" onclick="hst('propselectionObjectName')">More...</a></span> <span class="details" id="propselectionObjectName">
The value of this property affects the value of <a href="../symbols/Part.html#selectionObject" class="linkProperty">selectionObject</a>.
The initial value is an empty string, meaning the whole <a href="../symbols/Part.html" class="linkConstructor">Part</a> itself gets any selection handle.
</span><div class="details" id="dpropselectionObjectName"><p>
If no GraphObject has a <a href="../symbols/GraphObject.html#name" class="linkProperty">GraphObject.name</a> that is this name, <a href="../symbols/Part.html#selectionObject" class="linkProperty">selectionObject</a> returns the whole Part.</div>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a></li>
<li><a href="../symbols/Part.html#selectionObject" class="linkProperty">selectionObject</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="shadowBlur" >
<td class="name">
<div class="name">
shadowBlur
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the numerical value that describes the shadow's blur.<span class="nodetails" id="xpropshadowBlur"><a class="morelink" onclick="hst('propshadowBlur')">More...</a></span> <span class="details" id="propshadowBlur"> Default is 4.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#isShadowed" class="linkProperty">isShadowed</a></li>
<li><a href="../symbols/Part.html#shadowOffset" class="linkProperty">shadowOffset</a></li>
<li><a href="../symbols/Part.html#shadowColor" class="linkProperty">shadowColor</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="shadowColor" >
<td class="name">
<div class="name">
shadowColor
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the CSS string that describes a shadow color.<span class="nodetails" id="xpropshadowColor"><a class="morelink" onclick="hst('propshadowColor')">More...</a></span> <span class="details" id="propshadowColor"> Default is 'gray'.
Brushes cannot be used for this property -- only strings.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#isShadowed" class="linkProperty">isShadowed</a></li>
<li><a href="../symbols/Part.html#shadowOffset" class="linkProperty">shadowOffset</a></li>
<li><a href="../symbols/Part.html#shadowBlur" class="linkProperty">shadowBlur</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="shadowOffset" >
<td class="name">
<div class="name">
shadowOffset
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Point.html" class="linkConstructor">Point</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the X and Y offset of this part's shadow.<span class="nodetails" id="xpropshadowOffset"><a class="morelink" onclick="hst('propshadowOffset')">More...</a></span> <span class="details" id="propshadowOffset"> This is only relevant if <a href="../symbols/Part.html#isShadowed" class="linkProperty">isShadowed</a> is true.
The initial value is (6, 6).</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#isShadowed" class="linkProperty">isShadowed</a></li>
<li><a href="../symbols/Part.html#shadowColor" class="linkProperty">shadowColor</a></li>
<li><a href="../symbols/Part.html#shadowBlur" class="linkProperty">shadowBlur</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="text" >
<td class="name">
<div class="name">
text
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets a text string that is associated with this part.<span class="nodetails" id="xproptext"><a class="morelink" onclick="hst('proptext')">More...</a></span> <span class="details" id="proptext">
</span><div class="details" id="dproptext"><p>
The initial value is an empty string.
This value is often used for sorting.</div>
</div>
</td>
</tr>
<tr id="textEditable" >
<td class="name">
<div class="name">
textEditable
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets whether the user may do in-place text editing on <a href="../symbols/TextBlock.html" class="linkConstructor">TextBlock</a>s in this part
that have <a href="../symbols/TextBlock.html#editable" class="linkProperty">TextBlock.editable</a> set to true.<span class="nodetails" id="xproptextEditable"><a class="morelink" onclick="hst('proptextEditable')">More...</a></span> <span class="details" id="proptextEditable">
The initial value is true.</span>
<div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#canEdit" class="linkMethod">canEdit</a></li>
<li><a href="../symbols/TextBlock.html#editable" class="linkProperty">TextBlock.editable</a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr id="zOrder" >
<td class="name">
<div class="name">
zOrder
</div>
<div class="attributes">
<span class="light">{number}</span>
<span class="since" title="since">1.6</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the Z-ordering position of this Part within its Layer.<span class="nodetails" id="xpropzOrder"><a class="morelink" onclick="hst('propzOrder')">More...</a></span> <span class="details" id="propzOrder">
</span><div class="details" id="dpropzOrder"><p>
Within the same layer, nodes with larger zOrder values are placed in front of nodes with smaller zOrder values.
When the value is NaN the ordering is not specified.
The default value is NaN.
<p>
When a <a href="../symbols/Group.html" class="linkConstructor">Group</a> has a zOrder value of NaN, it is automatically placed behind its member nodes and links
that also have no zOrder.
Such automatic ordering is not guaranteed if any nodes including the groups have a numeric zOrder.
If you do want to specify the zOrder of nodes, you should also specify the zOrder of their containing groups
unless those groups are in different layers.</div>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Properties borrowed from class <a href="../symbols/Panel.html" class="linkConstructor">Panel</a>: </dt><dd><a href="../symbols/Panel.html#alignmentFocusName" class="linkProperty">alignmentFocusName</a>, <a href="../symbols/Panel.html#Auto" class="linkConstant">Auto</a>, <a href="../symbols/Panel.html#columnCount" class="linkProperty">columnCount</a>, <a href="../symbols/Panel.html#columnSizing" class="linkProperty">columnSizing</a>, <a href="../symbols/Panel.html#data" class="linkProperty">data</a>, <a href="../symbols/Panel.html#defaultAlignment" class="linkProperty">defaultAlignment</a>, <a href="../symbols/Panel.html#defaultColumnSeparatorDashArray" class="linkProperty">defaultColumnSeparatorDashArray</a>, <a href="../symbols/Panel.html#defaultColumnSeparatorStroke" class="linkProperty">defaultColumnSeparatorStroke</a>, <a href="../symbols/Panel.html#defaultColumnSeparatorStrokeWidth" class="linkProperty">defaultColumnSeparatorStrokeWidth</a>, <a href="../symbols/Panel.html#defaultRowSeparatorDashArray" class="linkProperty">defaultRowSeparatorDashArray</a>, <a href="../symbols/Panel.html#defaultRowSeparatorStroke" class="linkProperty">defaultRowSeparatorStroke</a>, <a href="../symbols/Panel.html#defaultRowSeparatorStrokeWidth" class="linkProperty">defaultRowSeparatorStrokeWidth</a>, <a href="../symbols/Panel.html#defaultSeparatorPadding" class="linkProperty">defaultSeparatorPadding</a>, <a href="../symbols/Panel.html#defaultStretch" class="linkProperty">defaultStretch</a>, <a href="../symbols/Panel.html#elements" class="linkProperty">elements</a>, <a href="../symbols/Panel.html#Graduated" class="linkConstant">Graduated</a>, <a href="../symbols/Panel.html#graduatedMax" class="linkProperty">graduatedMax</a>, <a href="../symbols/Panel.html#graduatedMin" class="linkProperty">graduatedMin</a>, <a href="../symbols/Panel.html#graduatedRange" class="linkProperty">graduatedRange</a>, <a href="../symbols/Panel.html#graduatedTickBase" class="linkProperty">graduatedTickBase</a>, <a href="../symbols/Panel.html#graduatedTickUnit" class="linkProperty">graduatedTickUnit</a>, <a href="../symbols/Panel.html#Grid" class="linkConstant">Grid</a>, <a href="../symbols/Panel.html#gridCellSize" class="linkProperty">gridCellSize</a>, <a href="../symbols/Panel.html#gridOrigin" class="linkProperty">gridOrigin</a>, <a href="../symbols/Panel.html#Horizontal" class="linkConstant">Horizontal</a>, <a href="../symbols/Panel.html#isClipping" class="linkProperty">isClipping</a>, <a href="../symbols/Panel.html#isEnabled" class="linkProperty">isEnabled</a>, <a href="../symbols/Panel.html#isOpposite" class="linkProperty">isOpposite</a>, <a href="../symbols/Panel.html#itemArray" class="linkProperty">itemArray</a>, <a href="../symbols/Panel.html#itemCategoryProperty" class="linkProperty">itemCategoryProperty</a>, <a href="../symbols/Panel.html#itemIndex" class="linkProperty">itemIndex</a>, <a href="../symbols/Panel.html#itemTemplate" class="linkProperty">itemTemplate</a>, <a href="../symbols/Panel.html#itemTemplateMap" class="linkProperty">itemTemplateMap</a>, <a href="../symbols/Panel.html#leftIndex" class="linkProperty">leftIndex</a>, <a href="../symbols/Panel.html#Link" class="linkConstant">Link</a>, <a href="../symbols/Panel.html#padding" class="linkProperty">padding</a>, <a href="../symbols/Panel.html#Position" class="linkConstant">Position</a>, <a href="../symbols/Panel.html#rowCount" class="linkProperty">rowCount</a>, <a href="../symbols/Panel.html#rowSizing" class="linkProperty">rowSizing</a>, <a href="../symbols/Panel.html#Spot" class="linkConstant">Spot</a>, <a href="../symbols/Panel.html#Table" class="linkConstant">Table</a>, <a href="../symbols/Panel.html#TableColumn" class="linkConstant">TableColumn</a>, <a href="../symbols/Panel.html#TableRow" class="linkConstant">TableRow</a>, <a href="../symbols/Panel.html#topIndex" class="linkProperty">topIndex</a>, <a href="../symbols/Panel.html#type" class="linkProperty">type</a>, <a href="../symbols/Panel.html#Vertical" class="linkConstant">Vertical</a>, <a href="../symbols/Panel.html#Viewbox" class="linkConstant">Viewbox</a>, <a href="../symbols/Panel.html#viewboxStretch" class="linkProperty">viewboxStretch</a></dd><dt>Properties borrowed from class <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>: </dt><dd><a href="../symbols/GraphObject.html#actionCancel" class="linkProperty">actionCancel</a>, <a href="../symbols/GraphObject.html#actionDown" class="linkProperty">actionDown</a>, <a href="../symbols/GraphObject.html#actionMove" class="linkProperty">actionMove</a>, <a href="../symbols/GraphObject.html#actionUp" class="linkProperty">actionUp</a>, <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">actualBounds</a>, <a href="../symbols/GraphObject.html#alignment" class="linkProperty">alignment</a>, <a href="../symbols/GraphObject.html#alignmentFocus" class="linkProperty">alignmentFocus</a>, <a href="../symbols/GraphObject.html#angle" class="linkProperty">angle</a>, <a href="../symbols/GraphObject.html#areaBackground" class="linkProperty">areaBackground</a>, <a href="../symbols/GraphObject.html#background" class="linkProperty">background</a>, <a href="../symbols/GraphObject.html#click" class="linkProperty">click</a>, <a href="../symbols/GraphObject.html#column" class="linkProperty">column</a>, <a href="../symbols/GraphObject.html#columnSpan" class="linkProperty">columnSpan</a>, <a href="../symbols/GraphObject.html#contextClick" class="linkProperty">contextClick</a>, <a href="../symbols/GraphObject.html#contextMenu" class="linkProperty">contextMenu</a>, <a href="../symbols/GraphObject.html#cursor" class="linkProperty">cursor</a>, <a href="../symbols/GraphObject.html#Default" class="linkConstant">Default</a>, <a href="../symbols/GraphObject.html#desiredSize" class="linkProperty">desiredSize</a>, <a href="../symbols/GraphObject.html#doubleClick" class="linkProperty">doubleClick</a>, <a href="../symbols/GraphObject.html#enabledChanged" class="linkProperty">enabledChanged</a>, <a href="../symbols/GraphObject.html#Fill" class="linkConstant">Fill</a>, <a href="../symbols/GraphObject.html#fromEndSegmentLength" class="linkProperty">fromEndSegmentLength</a>, <a href="../symbols/GraphObject.html#fromLinkable" class="linkProperty">fromLinkable</a>, <a href="../symbols/GraphObject.html#fromLinkableDuplicates" class="linkProperty">fromLinkableDuplicates</a>, <a href="../symbols/GraphObject.html#fromLinkableSelfNode" class="linkProperty">fromLinkableSelfNode</a>, <a href="../symbols/GraphObject.html#fromMaxLinks" class="linkProperty">fromMaxLinks</a>, <a href="../symbols/GraphObject.html#fromShortLength" class="linkProperty">fromShortLength</a>, <a href="../symbols/GraphObject.html#fromSpot" class="linkProperty">fromSpot</a>, <a href="../symbols/GraphObject.html#height" class="linkProperty">height</a>, <a href="../symbols/GraphObject.html#isActionable" class="linkProperty">isActionable</a>, <a href="../symbols/GraphObject.html#isPanelMain" class="linkProperty">isPanelMain</a>, <a href="../symbols/GraphObject.html#margin" class="linkProperty">margin</a>, <a href="../symbols/GraphObject.html#maxSize" class="linkProperty">maxSize</a>, <a href="../symbols/GraphObject.html#measuredBounds" class="linkProperty">measuredBounds</a>, <a href="../symbols/GraphObject.html#minSize" class="linkProperty">minSize</a>, <a href="../symbols/GraphObject.html#mouseDragEnter" class="linkProperty">mouseDragEnter</a>, <a href="../symbols/GraphObject.html#mouseDragLeave" class="linkProperty">mouseDragLeave</a>, <a href="../symbols/GraphObject.html#mouseDrop" class="linkProperty">mouseDrop</a>, <a href="../symbols/GraphObject.html#mouseEnter" class="linkProperty">mouseEnter</a>, <a href="../symbols/GraphObject.html#mouseHold" class="linkProperty">mouseHold</a>, <a href="../symbols/GraphObject.html#mouseHover" class="linkProperty">mouseHover</a>, <a href="../symbols/GraphObject.html#mouseLeave" class="linkProperty">mouseLeave</a>, <a href="../symbols/GraphObject.html#mouseOver" class="linkProperty">mouseOver</a>, <a href="../symbols/GraphObject.html#name" class="linkProperty">name</a>, <a href="../symbols/GraphObject.html#naturalBounds" class="linkProperty">naturalBounds</a>, <a href="../symbols/GraphObject.html#None" class="linkConstant">None</a>, <a href="../symbols/GraphObject.html#opacity" class="linkProperty">opacity</a>, <a href="../symbols/GraphObject.html#panel" class="linkProperty">panel</a>, <a href="../symbols/GraphObject.html#part" class="linkProperty">part</a>, <a href="../symbols/GraphObject.html#pickable" class="linkProperty">pickable</a>, <a href="../symbols/GraphObject.html#portId" class="linkProperty">portId</a>, <a href="../symbols/GraphObject.html#position" class="linkProperty">position</a>, <a href="../symbols/GraphObject.html#row" class="linkProperty">row</a>, <a href="../symbols/GraphObject.html#rowSpan" class="linkProperty">rowSpan</a>, <a href="../symbols/GraphObject.html#scale" class="linkProperty">scale</a>, <a href="../symbols/GraphObject.html#segmentFraction" class="linkProperty">segmentFraction</a>, <a href="../symbols/GraphObject.html#segmentIndex" class="linkProperty">segmentIndex</a>, <a href="../symbols/GraphObject.html#segmentOffset" class="linkProperty">segmentOffset</a>, <a href="../symbols/GraphObject.html#segmentOrientation" class="linkProperty">segmentOrientation</a>, <a href="../symbols/GraphObject.html#shadowVisible" class="linkProperty">shadowVisible</a>, <a href="../symbols/GraphObject.html#stretch" class="linkProperty">stretch</a>, <a href="../symbols/GraphObject.html#toEndSegmentLength" class="linkProperty">toEndSegmentLength</a>, <a href="../symbols/GraphObject.html#toLinkable" class="linkProperty">toLinkable</a>, <a href="../symbols/GraphObject.html#toLinkableDuplicates" class="linkProperty">toLinkableDuplicates</a>, <a href="../symbols/GraphObject.html#toLinkableSelfNode" class="linkProperty">toLinkableSelfNode</a>, <a href="../symbols/GraphObject.html#toMaxLinks" class="linkProperty">toMaxLinks</a>, <a href="../symbols/GraphObject.html#toolTip" class="linkProperty">toolTip</a>, <a href="../symbols/GraphObject.html#toShortLength" class="linkProperty">toShortLength</a>, <a href="../symbols/GraphObject.html#toSpot" class="linkProperty">toSpot</a>, <a href="../symbols/GraphObject.html#Uniform" class="linkConstant">Uniform</a>, <a href="../symbols/GraphObject.html#UniformToFill" class="linkConstant">UniformToFill</a>, <a href="../symbols/GraphObject.html#visible" class="linkProperty">visible</a>, <a href="../symbols/GraphObject.html#width" class="linkProperty">width</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 Part.">
<thead>
<tr>
<th scope="col" class="name">Name, Return Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="addAdornment">
<td class="name">
<div class="name">
addAdornment(category, ad)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Associate an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> with this Part, perhaps replacing any existing adornment of the same category.<span class="nodetails" id="xmethaddAdornment"><a class="morelink" onclick="hst('methaddAdornment')">More...</a></span> <span class="details" id="methaddAdornment">
Don't forget to set <a href="../symbols/Adornment.html#adornedObject" class="linkProperty">Adornment.adornedObject</a> before calling this method.
This adds the Adornment to the <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> named by <a href="../symbols/Part.html#layerName" class="linkProperty">layerName</a>, normally "Adornment".
</span><div class="details" id="dmethaddAdornment"><p>
Adornments are also data bound to the same data that this Part has, if any.
If the Adornment was already associated with a Part, it is unassociated with that old Part.
<p>
This method should not be called on templates.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string}</span> <b>category</b>
</dt>
<dd>a string identifying the kind or role of the given adornment for this Part.</dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span> <b>ad</b>
</dt>
<dd>the new Adornment.</dd>
</dl>
</div>
</td>
</tr>
<tr id="canCopy">
<td class="name">
<div class="name">
canCopy()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#copyable" class="linkProperty">copyable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowCopy" class="linkProperty">Layer.allowCopy</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowCopy" class="linkProperty">Diagram.allowCopy</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may copy this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canDelete">
<td class="name">
<div class="name">
canDelete()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#deletable" class="linkProperty">deletable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowDelete" class="linkProperty">Layer.allowDelete</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowDelete" class="linkProperty">Diagram.allowDelete</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may delete this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canEdit">
<td class="name">
<div class="name">
canEdit()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#textEditable" class="linkProperty">textEditable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowTextEdit" class="linkProperty">Layer.allowTextEdit</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowTextEdit" class="linkProperty">Diagram.allowTextEdit</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may edit this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canGroup">
<td class="name">
<div class="name">
canGroup()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#groupable" class="linkProperty">groupable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowGroup" class="linkProperty">Layer.allowGroup</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowGroup" class="linkProperty">Diagram.allowGroup</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may group this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canLayout">
<td class="name">
<div class="name">
canLayout()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate is called by Layout implementations to decide whether this Part
should be positioned and might affect the positioning of other Parts.<span class="nodetails" id="xmethcanLayout"><a class="morelink" onclick="hst('methcanLayout')">More...</a></span> <span class="details" id="methcanLayout">
</span><div class="details" id="dmethcanLayout"><p>
This is false if <a href="../symbols/Part.html#isLayoutPositioned" class="linkProperty">isLayoutPositioned</a> is false, if <a href="../symbols/Part.html#isVisible" class="linkMethod">isVisible</a> returns false,
or if the part is in a temporary <a href="../symbols/Layer.html" class="linkConstructor">Layer</a>.</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="canMove">
<td class="name">
<div class="name">
canMove()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#movable" class="linkProperty">movable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowMove" class="linkProperty">Layer.allowMove</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowMove" class="linkProperty">Diagram.allowMove</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may move this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canReshape">
<td class="name">
<div class="name">
canReshape()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#reshapable" class="linkProperty">reshapable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowReshape" class="linkProperty">Layer.allowReshape</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowReshape" class="linkProperty">Diagram.allowReshape</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may reshape this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canResize">
<td class="name">
<div class="name">
canResize()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#resizable" class="linkProperty">resizable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowResize" class="linkProperty">Layer.allowResize</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowResize" class="linkProperty">Diagram.allowResize</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may resize this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canRotate">
<td class="name">
<div class="name">
canRotate()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#rotatable" class="linkProperty">rotatable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowRotate" class="linkProperty">Layer.allowRotate</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowRotate" class="linkProperty">Diagram.allowRotate</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may rotate this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canSelect">
<td class="name">
<div class="name">
canSelect()
</div>
<div class="attributes">
<span class="light">{boolean}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This predicate returns true if <a href="../symbols/Part.html#selectable" class="linkProperty">selectable</a> is true,
if the layer's <a href="../symbols/Layer.html#allowSelect" class="linkProperty">Layer.allowSelect</a> is true, and
if the diagram's <a href="../symbols/Diagram.html#allowSelect" class="linkProperty">Diagram.allowSelect</a> is true.
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if the user may select this part.</dt>
</dl>
</div>
</td>
</tr>
<tr id="clearAdornments">
<td class="name">
<div class="name">
clearAdornments()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Remove all adornments associated with this part.
</div>
</td>
</tr>
<tr id="ensureBounds">
<td class="name">
<div class="name">
ensureBounds()
</div>
<div class="attributes">
<span class="since" title="since">1.6</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Measures if needed to make sure the <a href="../symbols/GraphObject.html#measuredBounds" class="linkProperty">GraphObject.measuredBounds</a> and <a href="../symbols/GraphObject.html#naturalBounds" class="linkProperty">GraphObject.naturalBounds</a> are all real numbers,
primarily to get the actual width and height.<span class="nodetails" id="xmethensureBounds"><a class="morelink" onclick="hst('methensureBounds')">More...</a></span> <span class="details" id="methensureBounds">
<a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a> will get a real width and height, but the x and y values may continue to be <code>NaN</code>
if they were that way beforehand.
</span><div class="details" id="dmethensureBounds"><p>
This is sometimes necessary to call when defining custom layouts or implementing virtualization,
so that it can work with the actual size of the nodes.
<p>
For efficiency, do not call this method unnecessarily.</div>
</div>
</td>
</tr>
<tr id="findAdornment">
<td class="name">
<div class="name">
findAdornment(category)
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Find an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> of a given category associated with this Part.<span class="nodetails" id="xmethfindAdornment"><a class="morelink" onclick="hst('methfindAdornment')">More...</a></span> <span class="details" id="methfindAdornment">
</span><div class="details" id="dmethfindAdornment"><p>
Templates should not have any adornments.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string}</span> <b>category</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span> Returns null if no such Adornment was found.</dt>
</dl>
</div>
</td>
</tr>
<tr id="findCommonContainingGroup">
<td class="name">
<div class="name">
findCommonContainingGroup(other)
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Group.html" class="linkConstructor">Group</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Find the <a href="../symbols/Group.html" class="linkConstructor">Group</a> that perhaps indirectly contains both this part and another one.<span class="nodetails" id="xmethfindCommonContainingGroup"><a class="morelink" onclick="hst('methfindCommonContainingGroup')">More...</a></span> <span class="details" id="methfindCommonContainingGroup">
If this is a Group and it contains the OTHER Part, return this.
If the OTHER Part is a Group and it contains this Part, return that OTHER Part.
</span><div class="details" id="dmethfindCommonContainingGroup"><p>
This returns null if the two parts are unrelated in the hierarchy of part membership.
If non-null, the result is a <a href="../symbols/Group.html" class="linkConstructor">Group</a>.
<p>
If you want to find the <a href="../symbols/Node.html" class="linkConstructor">Node</a> that is the tree parent of two Nodes,
call <a href="../symbols/Node.html#findCommonTreeParent" class="linkMethod">Node.findCommonTreeParent</a>.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Part.html" class="linkConstructor">Part</a>}</span> <b>other</b>
</dt>
<dd></dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/Group.html" class="linkConstructor">Group</a>}</span> may be null</dt>
</dl>
</div>
</td>
</tr>
<tr id="findSubGraphLevel">
<td class="name">
<div class="name">
findSubGraphLevel()
</div>
<div class="attributes">
<span class="light">{number}</span>
<span class="since" title="since">1.5</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Return how deep this part is in the hierarchy of nested <a href="../symbols/Group.html" class="linkConstructor">Group</a>s.<span class="nodetails" id="xmethfindSubGraphLevel"><a class="morelink" onclick="hst('methfindSubGraphLevel')">More...</a></span> <span class="details" id="methfindSubGraphLevel">
For parts that have no <a href="../symbols/Part.html#containingGroup" class="linkProperty">containingGroup</a> this returns zero.
</span><div class="details" id="dmethfindSubGraphLevel"><p>
If you want to know how deep a Node is in a tree structure, call <a href="../symbols/Node.html#findTreeLevel" class="linkMethod">Node.findTreeLevel</a>.</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{number}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="findTopLevelPart">
<td class="name">
<div class="name">
findTopLevelPart()
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Part.html" class="linkConstructor">Part</a>}</span>
<span class="since" title="since">1.1</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Gets the top-level Part for this part, which is itself when <a href="../symbols/Part.html#isTopLevel" class="linkProperty">isTopLevel</a> is true.<span class="nodetails" id="xmethfindTopLevelPart"><a class="morelink" onclick="hst('methfindTopLevelPart')">More...</a></span> <span class="details" id="methfindTopLevelPart">
If this Part is a member of a <a href="../symbols/Group.html" class="linkConstructor">Group</a>, this returns the top-level Part for that Group.
If this is a <a href="../symbols/Node.html" class="linkConstructor">Node</a> that is a label node for a labeled <a href="../symbols/Link.html" class="linkConstructor">Link</a>, this returns the top-level Part for that Link.
</span><div class="details" id="dmethfindTopLevelPart"><p>
If this is a Node and you are searching for the root of the tree that this node is in, use <a href="../symbols/Node.html#findTreeRoot" class="linkMethod">Node.findTreeRoot</a>.</div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/Part.html" class="linkConstructor">Part</a>}</span> This will not return null.</dt>
</dl>
</div>
</td>
</tr>
<tr id="invalidateLayout">
<td class="name">
<div class="name">
invalidateLayout(condition)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Invalidate the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> that is responsible for positioning this Part.<span class="nodetails" id="xmethinvalidateLayout"><a class="morelink" onclick="hst('methinvalidateLayout')">More...</a></span> <span class="details" id="methinvalidateLayout">
If this part is in a <a href="../symbols/Group.html" class="linkConstructor">Group</a>, invalidate its <a href="../symbols/Group.html#layout" class="linkProperty">Group.layout</a>, if it has one.
Otherwise invalidate the <a href="../symbols/Diagram.html#layout" class="linkProperty">Diagram.layout</a>.
</span><div class="details" id="dmethinvalidateLayout"><p>
But note that if <a href="../symbols/Part.html#isLayoutPositioned" class="linkProperty">isLayoutPositioned</a> is false, or if it is in a temporary <a href="../symbols/Layer.html" class="linkConstructor">Layer</a>,
or if it is not in a diagram or group, no layout is invalidated.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{number=}</span> <b>condition</b>
</dt>
<dd>the reason that the layout should be invalidated;
if this argument is not supplied, any value of <a href="../symbols/Part.html#layoutConditions" class="linkProperty">layoutConditions</a> other than <a href="../symbols/Part.html#LayoutNone" class="linkConstant">Part.LayoutNone</a>
will allow the layout to be invalidated.</dd>
</dl>
</div>
</td>
</tr>
<tr id="isMemberOf">
<td class="name">
<div class="name">
isMemberOf(part)
</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 this part is a member of the given <a href="../symbols/Part.html" class="linkConstructor">Part</a>, perhaps indirectly.<span class="nodetails" id="xmethisMemberOf"><a class="morelink" onclick="hst('methisMemberOf')">More...</a></span> <span class="details" id="methisMemberOf">
</span><div class="details" id="dmethisMemberOf"><p>
If the given part is a <a href="../symbols/Group.html" class="linkConstructor">Group</a> and this part is a member of the given group, this returns true.
If this part is a <a href="../symbols/Node.html" class="linkConstructor">Node</a> and it is a label node for the given link, this returns true.
Otherwise this searches recursively any <a href="../symbols/Part.html#containingGroup" class="linkProperty">Part.containingGroup</a> of the given part.
<p>
A part cannot be contained by itself.
A template should not be a member of any group.
<p>
If this is a Node and you want to find whether it is in a subtree whose root is a given Node, use <a href="../symbols/Node.html#isInTreeOf" class="linkMethod">Node.isInTreeOf</a>.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Part.html" class="linkConstructor">Part</a>}</span> <b>part</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="isVisible">
<td class="name">
<div class="name">
isVisible()
</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 this Part can be seen.<span class="nodetails" id="xmethisVisible"><a class="morelink" onclick="hst('methisVisible')">More...</a></span> <span class="details" id="methisVisible">
Parts that can be seen can be manipulated by the user, can take space in the document, or can take part in a layout,
among many possibilities.
Note that the value of this predicate can often be false even while <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> is true.
</span><div class="details" id="dmethisVisible"><p>
A Part is not seen if it is not <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> or if it is in a <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> that is not <a href="../symbols/Layer.html#visible" class="linkProperty">Layer.visible</a>.
<p>
If a Part is a member of a <a href="../symbols/Group.html" class="linkConstructor">Group</a> and the Group is not <a href="../symbols/Group.html#isSubGraphExpanded" class="linkProperty">Group.isSubGraphExpanded</a>, the part is not seen.
(The containing Group might still be visible.)
<p>
If a <a href="../symbols/Node.html" class="linkConstructor">Node</a> is a "tree child" of a Node that is not <a href="../symbols/Node.html#isTreeExpanded" class="linkProperty">Node.isTreeExpanded</a>, the node is not seen.
(The parent Node might still be visible.)
<p>
If a <a href="../symbols/Link.html" class="linkConstructor">Link</a> is connected to or from a <a href="../symbols/Node.html" class="linkConstructor">Node</a> that is not <code>isVisible()</code>
and is not a member of a <a href="../symbols/Group.html" class="linkConstructor">Group</a> that <code>isVisible()</code>, the link is not seen.
<p>
If a <a href="../symbols/Node.html" class="linkConstructor">Node</a> is a "link label" of a <a href="../symbols/Link.html" class="linkConstructor">Link</a> and that Link is not <code>isVisible()</code>, the node is not seen.
<p>
This is different from <a href="../symbols/GraphObject.html#isVisibleObject" class="linkMethod">GraphObject.isVisibleObject</a>,
which ignores whether the <a href="../symbols/Layer.html" class="linkConstructor">Layer</a> is visible and just checks <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a>
up the chain of containing <a href="../symbols/Panel.html" class="linkConstructor">Panel</a>s.
<p>
If you want to know whether a Part is in the Diagram's viewport, try:
<pre class="javascript">
diagram.viewportBounds.containsRect(part.actualBounds);
</pre>
<p>
or:
<pre class="javascript">
diagram.viewportBounds.intersectsRect(part.actualBounds);
</pre></div>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> is true and if <a href="../symbols/Layer.html#visible" class="linkProperty">Layer.visible</a> is true.</dt>
</dl>
</div>
</td>
</tr>
<tr id="move">
<td class="name">
<div class="name">
move(newpos)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Move this part and any parts that are owned by this part to a new position.<span class="nodetails" id="xmethmove"><a class="morelink" onclick="hst('methmove')">More...</a></span> <span class="details" id="methmove">
</span><div class="details" id="dmethmove"><p>
If this part is a <a href="../symbols/Group.html" class="linkConstructor">Group</a>, it also moves all of its members, recursively.
If this part is a <a href="../symbols/Link.html" class="linkConstructor">Link</a>, it also moves all of its label nodes.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Point.html" class="linkConstructor">Point</a>}</span> <b>newpos</b>
</dt>
<dd>a new <a href="../symbols/Point.html" class="linkConstructor">Point</a> in document coordinates.</dd>
</dl>
</div>
</td>
</tr>
<tr id="moveTo">
<td class="name">
<div class="name">
moveTo(newx, newy)
</div>
<div class="attributes">
<span class="since" title="since">1.4</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Move this part and any parts that are owned by this part to a new position.<span class="nodetails" id="xmethmoveTo"><a class="morelink" onclick="hst('methmoveTo')">More...</a></span> <span class="details" id="methmoveTo">
This just calls <a href="../symbols/Part.html#move" class="linkMethod">move</a> without the caller having to allocate a new <a href="../symbols/Point.html" class="linkConstructor">Point</a>.</span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{number}</span> <b>newx</b>
</dt>
<dd>a new X value in document coordinates.</dd>
<dt>
<span class="light fixedFont">{number}</span> <b>newy</b>
</dt>
<dd>a new Y value in document coordinates.</dd>
</dl>
</div>
</td>
</tr>
<tr id="removeAdornment">
<td class="name">
<div class="name">
removeAdornment(category)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Remove any <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> of the given category that may be associated with this Part.<span class="nodetails" id="xmethremoveAdornment"><a class="morelink" onclick="hst('methremoveAdornment')">More...</a></span> <span class="details" id="methremoveAdornment"></span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string}</span> <b>category</b>
</dt>
<dd>a string identifying the kind or role of the given adornment for this Part.</dd>
</dl>
</div>
</td>
</tr>
<tr id="updateAdornments">
<td class="name">
<div class="name">
updateAdornments()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This is responsible for creating any selection <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a> (if this Part <a href="../symbols/Part.html#isSelected" class="linkProperty">isSelected</a>) and
any tool adornments for this part.
</div>
</td>
</tr>
<tr id="updateRelationshipsFromData">
<td class="name">
<div class="name">
updateRelationshipsFromData()
</div>
<div class="attributes">
<span class="since" title="since">1.5</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Update all of the references to nodes in case they had been modified in the model without
properly notifying the model by calling <a href="../symbols/GraphLinksModel.html#setGroupKeyForNodeData" class="linkMethod">GraphLinksModel.setGroupKeyForNodeData</a> or
<a href="../symbols/GraphLinksModel.html#setToKeyForLinkData" class="linkMethod">GraphLinksModel.setToKeyForLinkData</a> or other similar methods.<span class="nodetails" id="xmethupdateRelationshipsFromData"><a class="morelink" onclick="hst('methupdateRelationshipsFromData')">More...</a></span> <span class="details" id="methupdateRelationshipsFromData">
This method does not conduct a transaction, so you need to start and commit one yourself.
</span><div class="details" id="dmethupdateRelationshipsFromData"><p>
This only updates the relationships between nodes, to have them reflect what is now declared in the model data.
For example, in a GraphLinksModel if code has changed the value of the "to" property of a link data,
calling this method on the corresponding <a href="../symbols/Link.html" class="linkConstructor">Link</a> would cause the link to connect with
the <a href="../symbols/Node.html" class="linkConstructor">Node</a> whose data has the new key.
<p>
To update <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> properties that are data bound, call <a href="../symbols/Part.html#updateTargetBindings" class="linkMethod">updateTargetBindings</a>.</div>
</p><div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#updateTargetBindings" class="linkMethod">updateTargetBindings</a></li>
</ul></div>
</div>
</td>
</tr>
<tr id="updateTargetBindings">
<td class="name">
<div class="name">
updateTargetBindings(srcprop)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Re-evaluate all data bindings in this Part,
in order to assign new property values to the <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>s in this visual tree
based on this this object's <a href="../symbols/Panel.html#data" class="linkProperty">data</a> property values.<span class="nodetails" id="xmethupdateTargetBindings"><a class="morelink" onclick="hst('methupdateTargetBindings')">More...</a></span> <span class="details" id="methupdateTargetBindings">
This method does nothing if <a href="../symbols/Panel.html#data" class="linkProperty">data</a> is null.
</span><div class="details" id="dmethupdateTargetBindings"><p>
It is better to call <a href="../symbols/Model.html#setDataProperty" class="linkMethod">Model.setDataProperty</a> to modify data properties,
because that will both record changes for undo/redo and will update all bindings
that make depend on that property.
<p>
To update relationships between nodes, call <a href="../symbols/Part.html#updateRelationshipsFromData" class="linkMethod">updateRelationshipsFromData</a>.</div>
</p><div class="seealso">See also:
<ul class="seealsolist">
<li><a href="../symbols/Part.html#updateRelationshipsFromData" class="linkMethod">updateRelationshipsFromData</a></li>
</ul></div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string=}</span> <b>srcprop</b>
</dt>
<dd>An optional source data property name:
when provided, only evaluates those <a href="../symbols/Binding.html" class="linkConstructor">Binding</a>s that use that particular property;
when not provided or when it is the empty string, all bindings are evaluated.</dd>
</dl>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Methods borrowed from class <a href="../symbols/Panel.html" class="linkConstructor">Panel</a>: </dt><dd><a href="../symbols/Panel.html#add" class="linkMethod">add</a>, <a href="../symbols/Panel.html#copy" class="linkMethod">copy</a>, <a href="../symbols/Panel.html#elt" class="linkMethod">elt</a>, <a href="../symbols/Panel.html#findColumnForLocalX" class="linkMethod">findColumnForLocalX</a>, <a href="../symbols/Panel.html#findItemPanelForData" class="linkMethod">findItemPanelForData</a>, <a href="../symbols/Panel.html#findMainElement" class="linkMethod">findMainElement</a>, <a href="../symbols/Panel.html#findObject" class="linkMethod">findObject</a>, <a href="../symbols/Panel.html#findRowForLocalY" class="linkMethod">findRowForLocalY</a>, <a href="../symbols/Panel.html#getColumnDefinition" class="linkMethod">getColumnDefinition</a>, <a href="../symbols/Panel.html#getRowDefinition" class="linkMethod">getRowDefinition</a>, <a href="../symbols/Panel.html#graduatedPointForValue" class="linkMethod">graduatedPointForValue</a>, <a href="../symbols/Panel.html#graduatedValueForPoint" class="linkMethod">graduatedValueForPoint</a>, <a href="../symbols/Panel.html#insertAt" class="linkMethod">insertAt</a>, <a href="../symbols/Panel.html#rebuildItemElements" class="linkMethod">rebuildItemElements</a>, <a href="../symbols/Panel.html#remove" class="linkMethod">remove</a>, <a href="../symbols/Panel.html#removeAt" class="linkMethod">removeAt</a>, <a href="../symbols/Panel.html#removeColumnDefinition" class="linkMethod">removeColumnDefinition</a>, <a href="../symbols/Panel.html#removeRowDefinition" class="linkMethod">removeRowDefinition</a></dd><dt>Methods borrowed from class <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>: </dt><dd><a href="../symbols/GraphObject.html#bind" class="linkMethod">bind</a>, <a href="../symbols/GraphObject.html#getDocumentAngle" class="linkMethod">getDocumentAngle</a>, <a href="../symbols/GraphObject.html#getDocumentPoint" class="linkMethod">getDocumentPoint</a>, <a href="../symbols/GraphObject.html#getDocumentScale" class="linkMethod">getDocumentScale</a>, <a href="../symbols/GraphObject.html#getLocalPoint" class="linkMethod">getLocalPoint</a>, <a href="../symbols/GraphObject.html#isContainedBy" class="linkMethod">isContainedBy</a>, <a href="../symbols/GraphObject.html#isEnabledObject" class="linkMethod">isEnabledObject</a>, <a href="../symbols/GraphObject.html#isVisibleObject" class="linkMethod">isVisibleObject</a>, <a href="../symbols/GraphObject.html#setProperties" class="linkMethod">setProperties</a></dd>
</dl>
<!-- ============================== events summary ======================== -->
<!-- ============================== fields summary ===================== -->
<h2 class="summaryCaption">Constants<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 Part.">
<thead>
<tr>
<th scope="col" class="name">Name</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="LayoutAdded">
<td class="name">
<div class="name">
LayoutAdded
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Part is added to a Diagram or Group, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part.
</div>
</td>
</tr>
<tr id="LayoutGroupLayout">
<td class="name">
<div class="name">
LayoutGroupLayout
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a <a href="../symbols/Group.html" class="linkConstructor">Group</a> has been laid out, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for that Group;
this flag is ignored for Parts that are not Groups.
</div>
</td>
</tr>
<tr id="LayoutHidden">
<td class="name">
<div class="name">
LayoutHidden
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Part's <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> becomes false, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part.
</div>
</td>
</tr>
<tr id="LayoutNodeReplaced">
<td class="name">
<div class="name">
LayoutNodeReplaced
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Node or simple Part's <a href="../symbols/Part.html#category" class="linkProperty">category</a> changes, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part;
this flag is ignored for Parts that are Links.
</div>
</td>
</tr>
<tr id="LayoutNodeSized">
<td class="name">
<div class="name">
LayoutNodeSized
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Node or simple Part's <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a> changes size, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part;
this flag is ignored for Parts that are Links.
</div>
</td>
</tr>
<tr id="LayoutNone">
<td class="name">
<div class="name">
LayoutNone
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value may be used as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
no operation on this Part causes invalidation of the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for this Part.
</div>
</td>
</tr>
<tr id="LayoutRemoved">
<td class="name">
<div class="name">
LayoutRemoved
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Part is removed from a Diagram or Group, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part.
</div>
</td>
</tr>
<tr id="LayoutShown">
<td class="name">
<div class="name">
LayoutShown
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This flag may be combined with other "Layout" flags as the value of the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property to indicate that
when a Part's <a href="../symbols/GraphObject.html#visible" class="linkProperty">GraphObject.visible</a> becomes true, it invalidates the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part.
</div>
</td>
</tr>
<tr id="LayoutStandard">
<td class="name">
<div class="name">
LayoutStandard
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This is the default value for the <a href="../symbols/Part.html#layoutConditions" class="linkProperty">Part.layoutConditions</a> property, basically a combination of all of the conditions:
the <a href="../symbols/Layout.html" class="linkConstructor">Layout</a> responsible for the Part is invalidated when the Part is added or removed or replaced
from the Diagram or Group, or when it changes visibility or size, or when a Group's layout has been performed.
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== 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>