This read-only property returns an iterator over all of the Adornments associated with this part.
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 Adornment.
Gets or sets the function that is called after this Part has changed which Group it belongs to, if any.
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.
Gets or sets the function used to determine the location that this Part can be dragged to.
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.
Gets or sets the function to execute when this #isHighlighted changes.
It is typically used to modify the appearance of the part.
This function must not highlight or unhighlight any parts.
This read-only property returns the Layer that this Part is in.
The value is the Layer that is named with the value of #layerName.
If you want to change what Layer this Part is in, change the value of #layerName to refer to a different Layer.
Gets or sets the function to execute when this part changes layers.
It is typically used to modify the appearance of the part.
This function must not change the layer of this part by setting #layerName.
Gets or sets the layer name for this part.
The initial value is an empty string, which is the name of the default layer.
The value of this property determines the value of #layer.
Gets or sets flags that control when the Layout that is responsible for this Part is invalidated.
The initial value is Part.LayoutStandard,
which causes the layout for this part to be invalidated when the part is added or removed or changes visibility or size.
This read-only property returns the GraphObject that determines the location of this Part.
The value will be in the visual tree of this Part and is usually named with
the value of #locationObjectName.
Gets or sets the name of the GraphObject that provides the location of this Part.
This name determines the value of #locationObject.
The actual #location also depends on the #locationSpot.
Gets or sets the adornment template used to create a resize handle Adornment for this part.
This is used by the ResizingTool, ToolManager#resizingTool.
This read-only property returns the GraphObject that should get resize handles when this part is selected.
The value will be in the visual tree of this Part and is usually named with
the value of #resizeObjectName.
Gets or sets the name of the GraphObject that should get a resize handle
when this part is selected.
The value of this property affects the value of #resizeObject.
The initial value is an empty string, meaning the whole Part itself gets any resize handle.
Gets or sets the adornment template used to create a rotation handle Adornment for this part.
This is used by the RotatingTool, ToolManager#rotatingTool.
This read-only property returns the GraphObject that should get rotate handles when this part is selected.
The value will be in the visual tree of this Part and is usually named with
the value of #rotateObjectName.
Gets or sets the name of the GraphObject that should get a rotate handle
when this part is selected.
The value of this property affects the value of #rotateObject.
The initial value is an empty string, meaning the whole Part itself gets any rotate handle.
Gets or sets the function to execute when this part is selected or deselected.
It is typically used to modify the appearance of the part.
This function must not select or deselect any parts.
This read-only property returns the GraphObject that should get a selection handle when this part is selected.
The value will be in the visual tree of this Part and is usually named with
the value of #selectionObjectName.
When the #selectionObjectName is unspecified, this whole Part is used as the "selection object".
Gets or sets the name of the GraphObject that should get a selection handle
when this part is selected.
The value of this property affects the value of #selectionObject.
The initial value is an empty string, meaning the whole Part itself gets any selection handle.
Gets or sets the numerical value that describes the shadow's blur. Number must be non-negative and non-infinity.
A value of 0 would mean the shadow does not blur and larger numbers represent increasingly more blur.
The total blur area is independent of the Part's area and can become quite large as this number is increased.
Gets or sets whether the user may do in-place text editing on TextBlocks in this part
that have TextBlock#editable set to true.
The initial value is true.
Associate an Adornment with this Part, perhaps replacing any existing adornment of the same category.
Don't forget to set Adornment#adornedObject before calling this method.
This adds the Adornment to the Layer named by #layerName, normally "Adornment".
Measures if needed to make sure the GraphObject#measuredBounds and GraphObject#naturalBounds are all real numbers,
primarily to get the actual width and height.
GraphObject#actualBounds will get a real width and height, but the x and y values may continue to be NaN
if they were that way beforehand.
Find the Group that perhaps indirectly contains both this part and another one.
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.
Gets the top-level Part for this part, which is itself when #isTopLevel is true.
If this Part is a member of a Group, this returns the top-level Part for that Group.
If this is a Node that is a label node for a labeled Link, this returns the top-level Part for that Link.
Returns the Rect in document coordinates for this object's bounds.
If this GraphObject is a Part, the rect will be identical to its #actualBounds.
@param {Rect=} result an optional Rect that is modified and returned.
@return {Rect} in document coordinates.
@see #getDocumentPoint
@since 2.0
Invalidate the Layout that is responsible for positioning this Part.
If this part is in a Group, invalidate its Group#layout, if it has one.
Otherwise invalidate the Diagram#layout.
This predicate is true if this Part can be seen.
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 GraphObject#visible is true.
Move this part and any parts that are owned by this part to a new position.
This just calls #move without the caller having to allocate a new Point.
@param {number} newx a new X value in document coordinates.
@param {number} newy a new Y value in document coordinates.
@param {boolean=} useLocation true if you want to set the #location instead of the position. False by default.
@since 1.4
Remove any Adornment of the given category that may be associated with this Part.
@param {string} category a string identifying the kind or role of the given adornment for this Part.
Update all of the references to nodes in case they had been modified in the model without
properly notifying the model by calling GraphLinksModel#setGroupKeyForNodeData or
GraphLinksModel#setToKeyForLinkData or other similar methods.
This method does not conduct a transaction, so you need to start and commit one yourself.
Re-evaluate all data bindings in this Part,
in order to assign new property values to the GraphObjects in this visual tree
based on this this object's #data property values.
This method does nothing if #data is null.