A Node is a Part that may connect to other nodes with Links, or that may be a member of a Group. Group inherits from Node, enabling nodes to logically contain other nodes and links.
Constructs an empty Node.
if not supplied, the default Panel type is Panel#Position.
This value for GraphObject#fromEndSegmentDirection and GraphObject#toEndSegmentDirection indicates that the link's end segment angle stays the same even if the node is rotated.
This value for Link#fromEndSegmentDirection and Link#toEndSegmentDirection indicates that the real value is inherited from the corresponding connected port.
This value for GraphObject#fromEndSegmentDirection and GraphObject#toEndSegmentDirection indicates that the link's end segment angle is rotated to match the node's angle.
This value for GraphObject#fromEndSegmentDirection and GraphObject#toEndSegmentDirection indicates that the link's end segment angle is rotated to match the node's angle, but only in increments of 90 degrees.
Gets or sets the function to execute when the ActionTool is cancelled and this GraphObject's #isActionable is set to true.
Gets or sets the function to execute on a mouse-down event when this GraphObject's #isActionable is set to true.
Gets or sets the function to execute on a mouse-move event when this GraphObject's #isActionable is set to true.
Gets or sets the function to execute on a mouse-up event when this GraphObject's #isActionable is set to true.
Gets the bounds of this GraphObject in container coordinates.
Gets an iterator over all of the Adornments associated with this part.
Gets or sets the alignment Spot of this GraphObject used in Panel layouts, to determine where in the area allocated by the panel this object should be placed.
Gets or sets the spot on this GraphObject to be used as the alignment point in Spot and Fixed Panels.
Gets or sets the angle transform, in degrees, of this GraphObject.
Gets or sets the areaBackground Brush (or CSS color string) of this GraphObject.
Gets or sets whether this Node is to be avoided by Links whose Link#routing is Link#AvoidsNodes.
Gets or sets the Margin (or number for a uniform Margin) around this Node in which avoidable links will not be routed.
Gets or sets the background Brush (or CSS color string) of this GraphObject, filling the rectangle of this object's local coordinate space.
Gets or sets the category of this part, typically used to distinguish different kinds of nodes or links.
Gets or sets the function to execute when the user single-primary-clicks on this object.
Gets or sets the column of this GraphObject if it is in a Table Panel.
Gets the number of columns in this Panel if it is of #type Panel#Table.
Gets or sets how this Panel's columns deal with extra space if the Panel is of #type Panel#Table.
Gets or sets the number of columns spanned by this GraphObject if it is in a Table Panel.
Gets or sets the Group of which this Part or Node is a member.
Gets or sets the function that is called after this Part has changed which Group it belongs to, if any.
Gets or sets the function to execute when the user single-secondary-clicks on this object.
This Adornment is shown upon a context click on this object.
Gets or sets whether the user may copy this part.
Gets or sets the mouse cursor to use when the mouse is over this object with no mouse buttons pressed.
Gets or sets the optional model data to which this panel is data-bound.
Gets or sets the default alignment spot of this Panel, used as the alignment for an element when its GraphObject#alignment value is Spot#Default.
Gets or sets the default dash array for a particular column's separator.
Gets or sets the default Brush stroke (or CSS color string) for columns in a Table Panel provided a given column has a nonzero RowColumnDefinition#separatorStrokeWidth.
Gets or sets the default stroke width for a particular column's separator.
Gets or sets the default dash array for a particular row's separator.
Gets or sets the default Brush stroke (or CSS color string) for rows in a Table Panel provided a given row has a nonzero RowColumnDefinition#separatorStrokeWidth.
Gets or sets the default stroke width for a particular row's separator.
Gets or sets the additional padding for a particular row or column, a Margin (or number for a uniform Margin).
Gets or sets the default stretch of this Panel, used as the stretch for an element when its GraphObject#stretch value is GraphObject#Default.
Gets or sets whether the user may delete this part.
Gets or sets the desired size of this GraphObject in local coordinates.
Gets the Diagram that this Part is in.
Gets or sets the function to execute when the user double-primary-clicks on this object.
Gets or sets the function used to determine the location that this Part can be dragged to.
Gets an iterator over the collection of the GraphObjects that this panel manages.
Gets or sets how the direction of the last segment of a link coming from this port is computed when the node is rotated.
Gets or sets the length of the last segment of a link coming from this port.
Gets or sets whether the user may draw Links from this port.
Gets or sets whether the user may draw duplicate Links from this port.
Gets or sets whether the user may draw Links that connect from this port's Node.
Gets or sets the maximum number of links that may come out of this port.
Gets or sets how far the end segment of a link coming from this port stops short of the actual port.
Gets or sets where a link should connect from this port.
Gets or sets the distance between lines in a #Grid panel.
Gets or sets an origin point for the grid cells in a #Grid panel.
Gets or sets whether the user may group this part to be a member of a new Group.
Gets or sets the desired height of this GraphObject in local coordinates.
This property determines whether or not this GraphObject's events occur before all other events, including selection.
Gets or sets whether this Part is part of the document bounds.
Gets or sets whether a Layout positions this Node or routes this Link.
Gets whether a Node is a label node for a Link.
Gets or sets whether a GraphObject is the "main" object for some types of Panel.
Gets or sets whether this Part is selected.
Gets or sets whether this part will draw shadows.
Gets whether this part is not member of any Group node nor is it a label node for a Link.
Gets or sets whether the subtree graph starting at this node is expanded.
Gets whether this node has no tree children.
Gets or sets a JavaScript Array of values or objects, each of which will be represented by a Panel as elements in this Panel.
Gets or sets the name of the item data property that returns a string describing that data's category, or a function that takes an item data object and returns that string; the default value is the name 'category'.
Gets or sets the default Panel template used as the archetype for item data that are in #itemArray.
Gets or sets a Map mapping template names to Panels.
Gets or sets the Link for which this Node is acting as a smart label.
Gets the Layer that this Part is in.
Gets or sets the function to execute when this part changes layers.
Gets or sets the layer name for this part.
Gets or sets "Layout..." flags that control when the Layout that is responsible for this Part is invalidated.
Gets or sets the first column that this Panel of #type Panel#Table displays.
Gets or sets the function that is called after a Link has been connected with this Node.
Gets or sets the function that is called after a Link has been disconnected from this Node.
Gets an iterator over all of the Links that are connected with this node.
Gets or sets the position of this part in document coordinates, based on the #locationSpot in this part's #locationObject.
Gets the GraphObject that determines the location of this Part.
Gets or sets the name of the GraphObject that provides the location of this Part.
Gets or sets the location Spot of this Node, the spot on the #locationObject that is used in positioning this part in the diagram.
Gets or sets the size of empty area around this GraphObject, as a Margin (or number for a uniform Margin), in the containing Panel coordinates.
Gets or sets the maximum location of this Part to which the user may drag using the DraggingTool.
Gets or sets the maximum size of this GraphObject in container coordinates (either a Panel or the document).
Gets the measuredBounds of the GraphObject in container coordinates (either a Panel or the document).
Gets or sets the minimum location of this Part to which the user may drag using the DraggingTool.
Gets or sets the minimum size of this GraphObject in container coordinates (either a Panel or the document).
Gets or sets the function to execute when the user moves the mouse into this stationary object during a DraggingTool drag.
Gets or sets the function to execute when the user moves the mouse out of this stationary object during a DraggingTool drag.
Gets or sets the function to execute when a user drops the selection on this object at the end of a DraggingTool drag.
Gets or sets the function to execute when the user moves the mouse into this object without holding down any buttons.
Gets or sets the function to execute when the user holds the mouse stationary in the background of the diagram while holding down a button over this object.
Gets or sets the function to execute when the user holds the mouse stationary in the background of the diagram without holding down any buttons over this object.
Gets or sets the function to execute when the user moves the mouse into this object without holding down any buttons.
Gets or sets the function to execute when the user moves the mouse over this object without holding down any buttons.
Gets or sets whether the user may move this part.
Gets or sets the name for this object.
Gets the natural bounding rectangle of this GraphObject in local coordinates, before any transformation by #scale or #angle, and before any resizing due to #minSize or #maxSize or #stretch.
Gets or sets the multiplicative opacity for this Panel and all children.
Gets or sets the space between this Panel's border and its content, as a Margin (or number for a uniform Margin), depending on the type of panel.
Gets the GraphObject's containing Panel, or null if this object is not in a Panel.
Gets the Part containing this object, if any.
Gets or sets whether or not this GraphObject can be chosen by visual "find" methods such as Diagram#findObjectAt.
Get the primary GraphObject representing a port in this node.
Gets or sets an identifier for an object acting as a port on a Node.
Gets an iterator over all of the GraphObjects in this node that act as ports.
Gets or sets the position of this GraphObject in container coordinates (either a Panel or the document).
Gets or sets whether the user may reshape this part.
Gets or sets whether the user may resize this part.
Gets or sets the adornment template used to create a resize handle Adornment for this part.
Gets or sets the width and height multiples used when resizing.
Gets the GraphObject that should get resize handles when this part is selected.
Gets or sets the name of the GraphObject that should get a resize handle when this part is selected.
Gets or sets whether the user may rotate this part.
Gets or sets the adornment template used to create a rotation handle Adornment for this part.
Gets the GraphObject that should get rotate handles when this part is selected.
Gets or sets the name of the GraphObject that should get a rotate handle when this part is selected.
Gets or sets the row of this GraphObject if it is in a Table Panel.
Gets the number of row in this Panel if it is of #type Panel#Table.
Gets or sets how this Panel's rows deal with extra space if the Panel is of #type Panel#Table.
Gets or sets the number of rows spanned by this GraphObject if it is in a Table Panel.
Gets or sets the scale transform of this GraphObject.
Gets or sets the fractional distance along a segment of a GraphObject that is in a Link.
Gets or sets the segment index of a GraphObject that is in a Link.
Gets or sets the offset of a GraphObject that is in a Link from a point on a segment.
Gets or sets the orientation of a GraphObject that is in a Link.
Gets or sets whether the user may select this part.
Gets or sets whether a selection adornment is shown for this part when it is selected.
Gets or sets the Adornment template used to create a selection handle for this Part.
Gets or sets the function to execute when this part is selected or deselected.
Gets the GraphObject that should get a selection handle when this part is selected.
Gets or sets the name of the GraphObject that should get a selection handle when this part is selected.
Gets or sets the numerical value that describes the shadow's blur.
Gets or sets the CSS string that describes a shadow color.
Gets or sets the X and Y offset of this part's shadow.
Gets or sets the stretch of the GraphObject.
Gets or sets a text string that is associated with this part.
Gets or sets whether the user may do in-place text editing on TextBlocks in this part that have TextBlock#editable set to true.
Gets or sets how the direction of the last segment of a link going to this port is computed when the node is rotated.
Gets or sets the length of the last segment of a link going to this port.
Gets or sets whether the user may draw Links to this port.
Gets or sets whether the user may draw duplicate Links to this port.
Gets or sets whether the user may draw Links that connect to this port's Node.
Gets or sets the maximum number of links that may go into this port.
Gets or sets how far the end segment of a link going to this port stops short of the actual port.
Gets or sets where a link should connect to this port.
This Adornment is shown when the mouse hovers over this object.
Gets or sets the first row that this this Panel of #type Panel#Table displays.
Gets or sets the function that is called when #isTreeExpanded has changed value.
Gets or sets the type of the Panel.
Gets or sets how a #Viewbox panel will resize its content.
Gets or sets whether a GraphObject is visible.
Gets or sets whether the subtree graph starting at this node had been collapsed by a call to #expandTree on the parent node.
Gets or sets the desired width of this GraphObject in local coordinates.
Adds a GraphObject to the end of this Panel's list of elements, visually in front of all of the other elements.
A GraphObject.
any
Associate an Adornment with this Part, perhaps replacing any existing adornment.
a string identifying the kind or role of the given adornment for this Part.
any
Add a data-binding of a property on this GraphObject to a property on a data object.
any
This predicate returns true if #copyable is true, if the layer's Layer#allowCopy is true, and if the diagram's Diagram#allowCopy is true.
boolean
This predicate returns true if #deletable is true, if the layer's Layer#allowDelete is true, and if the diagram's Diagram#allowDelete is true.
boolean
This predicate returns true if #textEditable is true, if the layer's Layer#allowTextEdit is true, and if the diagram's Diagram#allowTextEdit is true.
boolean
This predicate returns true if #groupable is true, if the layer's Layer#allowGroup is true, and if the diagram's Diagram#allowGroup is true.
boolean
This predicate is called by Layout implementations to decide whether this Part should be positioned and might affect the positioning of other Parts.
boolean
This predicate returns true if #movable is true, if the layer's Layer#allowMove is true, and if the diagram's Diagram#allowMove is true.
boolean
This predicate returns true if #reshapable is true, if the layer's Layer#allowReshape is true, and if the diagram's Diagram#allowReshape is true.
boolean
This predicate returns true if #resizable is true, if the layer's Layer#allowResize is true, and if the diagram's Diagram#allowResize is true.
boolean
This predicate returns true if #rotatable is true, if the layer's Layer#allowRotate is true, and if the diagram's Diagram#allowRotate is true.
boolean
This predicate returns true if #selectable is true, if the layer's Layer#allowSelect is true, and if the diagram's Diagram#allowSelect is true.
boolean
Remove all adornments associated with this part.
any
Hide each child node and the connecting link, and recursively collapse each child node.
How many levels of the tree, starting at this node, to keep expanded if already expanded; the default is 1, hiding all tree children of this node. Values less than 1 are treated as 1.
any
Creates a deep copy of this Panel and returns it.
Returns the GraphObject in this Panel's list of elements at the specified index.
a zero-based index
any
Show each child node and the connecting link, and perhaps recursively expand their child nodes.
How many levels of the tree should be expanded; the default is 2, showing all tree children of this node and potentially more. Values less than 2 are treated as 2.
any
Find an Adornment of a given category associated with this Part.
Returns the cell at a given x-coordinate in local coordinates.
number
Find the Group that contains both this part and another one.
Returns an iterator over all of the Links that go from this node to another node or vice-versa, perhaps limited to a given port id on this node and a port id on the other node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over all of the Links that connect with this node in either direction, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over all of the Links that go into this node, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over all of the Links that come out of this node, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over all of the Links that go from this node to another node, perhaps limited to a given port id on this node and a port id on the other node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over the Nodes that are connected with this node in either direction, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over the Nodes that are connected with this node by links going into this node, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Returns an iterator over the Nodes that are connected with this node by links coming out of this node, perhaps limited to the given port id on this node.
A port identifier string; if null the link's portId is ignored and all links are included in the search.
Search the visual tree starting at this Panel for a GraphObject whose GraphObject#name is the given name.
The name to search for, using a case-sensitive string comparison.
Find a GraphObject with a given GraphObject#portId.
Returns the row at a given y-coordinate in local coordinates.
number
Gets the top-level Part for this part, which is itself when #isTopLevel is true.
Returns an Iterator for the collection of Links that connect with the immediate tree children of this node.
Returns an Iterator for the collection of Nodes that are the immediate tree children of this node.
Returns the Link that connects with the tree parent Node of this node if the graph is tree-structured, if there is such a link and Link#isTreeLink is true.
Returns the Node that is the tree parent of this node if the graph is tree-structured, if there is a parent.
Return a collection of Parts including this Node, all of the Links going to child Nodes, and all of their tree child nodes and links.
How many levels of the tree, starting at this node, to include; the default is Infinity, including all tree children of this node. Values less than 1 are treated as 1.
Return the Node that is at the root of the tree that this node is in, perhaps this node itself.
Gets the RowColumnDefinition for a particular column in this Table Panel.
the non-negative zero-based integer column index.
Returns the effective angle that the object is drawn at, in document coordinates.
number
Returns the Point in document coordinates for a given Spot in this object's bounds.
a real Spot describing a location relative to the GraphObject.
an optional Point that is modified and returned.
Returns the total scale that the object is drawn at, in document coordinates.
number
Given a Point in document coordinates, returns a new Point in local coordinates.
a Point in document coordinates.
an optional Point that is modified and returned.
Gets the RowColumnDefinition for a particular row in this Table Panel.
the non-negative zero-based integer row index.
Adds a GraphObject to the Panel's list of elements at the specified index.
A GraphObject.
any
Invalidate the Layout that is responsible for positioning this Part.
the reason that the layout should be invalidated -- some combination of "Layout..." flag values; if this argument is not supplied, any value of #layoutConditions other than Part#LayoutNone will allow the layout to be invalidated.
any
This predicate is true if this object is an element, perhaps indirectly, of the given panel.
or if it is contained by another panel that is contained by the given panel, to any depth; false if the argument is null or is not a Panel.
boolean
This predicate is true if this node is a child of the given Node, perhaps indirectly as a descendant.
the Node that might be a parent or ancestor of this node.
boolean
This predicate is true if this part is a member of the given Part, perhaps indirectly.
boolean
This predicate is true if this Part can be seen.
boolean
This predicate is true if this object is #visible and each of its visual containing panels are also visible.
boolean
Move this part and any parts that are owned by this part to a new position.
a new Point in document coordinates.
any
Create and add new GraphObjects corresponding to and bound to the data in the #itemArray, after removing all existing elements from this Panel.
any
Removes a GraphObject from this Panel's list of elements.
A GraphObject.
any
Remove any Adornment of the given category that may be associated with this Part.
a string identifying the kind or role of the given adornment for this Part.
any
Removes an GraphObject from this Panel's list of elements at the specified index.
any
Removes the RowColumnDefinition for a particular row in this Table Panel.
the non-negative zero-based integer row index.
any
Removes the RowColumnDefinition for a particular row in this Table Panel.
the non-negative zero-based integer row index.
any
This is responsible for creating any selection Adornment (if this Part #isSelected) and any tool adornments for this part.
any
Re-evaluate all data bindings on 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.
An optional source data property name: when provided, only evaluates those Bindings that use that particular property; when not provided or when it is the empty string, all bindings are evaluated.
any