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

1780 lines
65 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GoJS&reg; ChangedEvent 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 ChangedEvent
</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">
A ChangedEvent represents a change to an object, typically a <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>,
but also for model data, a <a href="../symbols/Model.html" class="linkConstructor">Model</a>, or a <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a>.
The most common case is for remembering the name of a property
and the before-and-after values for that property.
<p>
You can listen for changed events on the model using <a href="../symbols/Model.html#addChangedListener" class="linkMethod">Model.addChangedListener</a>
and on the Diagram using <a href="../symbols/Diagram.html#addChangedListener" class="linkMethod">Diagram.addChangedListener</a>.
<p>
There are four kinds of changes, represented by enumerated values:
<a href="../symbols/ChangedEvent.html#Property" class="linkConstant">ChangedEvent.Property</a> (the most common), <a href="../symbols/ChangedEvent.html#Insert" class="linkConstant">ChangedEvent.Insert</a> and <a href="../symbols/ChangedEvent.html#Remove" class="linkConstant">ChangedEvent.Remove</a>
(to represent inserting or removing objects from collections),
and <a href="../symbols/ChangedEvent.html#Transaction" class="linkConstant">ChangedEvent.Transaction</a> (to notify about beginning or ending transactions or undo or redo).
<p>
The most common kind of ChangedEvent is a Property change.
The name of the property is given by <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">propertyName</a>.
The modified object is given by <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a>.
Use the <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">oldValue</a> and <a href="../symbols/ChangedEvent.html#newValue" class="linkProperty">newValue</a> properties for the before and after property values.
<p>
For an Insert ChangedEvent, the modified collection (often an Array) is a property value on the <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a>.
The <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">propertyName</a> helps distinguish between different collections on the object.
Use the <a href="../symbols/ChangedEvent.html#newValue" class="linkProperty">newValue</a> property to indicate the value that was inserted.
Use the <a href="../symbols/ChangedEvent.html#newParam" class="linkProperty">newParam</a> property to indicate where or how, such as an array index or dictionary key.
<p>
For a Remove ChangedEvent, the modified collection is a property value on the <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a>.
The <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">propertyName</a> helps distinguish between different collections on the object.
Use the <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">oldValue</a> property to indicate the value that was removed.
Use the <a href="../symbols/ChangedEvent.html#oldParam" class="linkProperty">oldParam</a> property to indicate where or how, such as an array index or dictionary key.
<p>
Transaction ChangedEvents are generated by the <a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a>.
The <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">propertyName</a> names the nature of the ChangedEvent.
For the very first transaction, the property name is "StartingFirstTransaction".
This ChangedEvent precedes a ChangedEvent whose property name is "StartedTransaction",
which occurs for every top-level transaction.
<p>
When ending a transaction, there is first a ChangedEvent whose name is "ComittingTransaction".
This is followed by one with either "CommittedTransaction" or "RolledBackTransaction",
depending on how the transaction is ending.
The <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">oldValue</a> provides the transaction name and the <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a> is the <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a> being finished.
(Note that the Transaction value may be null if no Transaction is available at that time,
perhaps because there were no changes made during the transaction.)
That Transaction can be scanned to look for ChangedEvents that you may wish to record in a database,
all within a single database transaction.
<p>
There are also Transaction ChangedEvents corresponding to "StartingUndo", "FinishedUndo",
"StartingRedo", and "FinishedRedo".
The <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a> property provides the <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a> that is about-to-be or just-was undone or redone.
<p>
Non-Transaction ChangedEvents are remembered by the <a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a>, if <a href="../symbols/UndoManager.html#isEnabled" class="linkProperty">UndoManager.isEnabled</a>,
and held in the <a href="../symbols/UndoManager.html#history" class="linkProperty">UndoManager.history</a> as <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a>s which hold lists of ChangedEvents.
That is why ChangedEvent implements <a href="../symbols/ChangedEvent.html#undo" class="linkMethod">undo</a> and <a href="../symbols/ChangedEvent.html#redo" class="linkMethod">redo</a> of the change that it remembers.
<p>
When the ChangedEvent represents a change to a <a href="../symbols/Model.html" class="linkConstructor">Model</a>, the value of <a href="../symbols/ChangedEvent.html#model" class="linkProperty">model</a> is non-null
and the value of <a href="../symbols/ChangedEvent.html#diagram" class="linkProperty">diagram</a> is meaningless.
If the change is a structural change to the model,
the value of <a href="../symbols/ChangedEvent.html#modelChange" class="linkProperty">modelChange</a> indicates the kind of change.
Currently defined model changed event names include:
<ul>
<li><b>"nodeDataArray"</b>, after the model's <a href="../symbols/Model.html#nodeDataArray" class="linkProperty">Model.nodeDataArray</a> is replaced, inserted into or removed from
(setting <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 <a href="../symbols/Model.html#removeNodeData" class="linkMethod">Model.removeNodeData</a>)
</li>
<li><b>"nodeKey"</b>, after changing a node data's unique key (<a href="../symbols/Model.html#setKeyForNodeData" class="linkMethod">Model.setKeyForNodeData</a>)</li>
<li><b>"nodeCategory"</b>, after changing a node data's category (<a href="../symbols/Model.html#setCategoryForNodeData" class="linkMethod">Model.setCategoryForNodeData</a>)</li>
<li><b>"linkFromKey"</b>, after changing a link data's "from" node key (<a href="../symbols/GraphLinksModel.html#setFromKeyForLinkData" class="linkMethod">GraphLinksModel.setFromKeyForLinkData</a>)</li>
<li><b>"linkToKey"</b>, after changing a link data's "to" node key (<a href="../symbols/GraphLinksModel.html#setToKeyForLinkData" class="linkMethod">GraphLinksModel.setToKeyForLinkData</a>)</li>
<li><b>"linkFromPortId"</b>, after changing a link data's "from" port (<a href="../symbols/GraphLinksModel.html#setFromPortIdForLinkData" class="linkMethod">GraphLinksModel.setFromPortIdForLinkData</a>)</li>
<li><b>"linkToPortId"</b>, after changing a link data's "to" port (<a href="../symbols/GraphLinksModel.html#setToPortIdForLinkData" class="linkMethod">GraphLinksModel.setToPortIdForLinkData</a>)</li>
<li><b>"linkLabelKeys"</b>, after replacing, inserting into, or removing from a link data's array of keys to label nodes
(calling <a href="../symbols/GraphLinksModel.html#setLabelKeysForLinkData" class="linkMethod">GraphLinksModel.setLabelKeysForLinkData</a>, <a href="../symbols/GraphLinksModel.html#addLabelKeyForLinkData" class="linkMethod">GraphLinksModel.addLabelKeyForLinkData</a>,
or <a href="../symbols/GraphLinksModel.html#removeLabelKeyForLinkData" class="linkMethod">GraphLinksModel.removeLabelKeyForLinkData</a>)
</li>
<li><b>"linkDataArray"</b>, after the model's <a href="../symbols/GraphLinksModel.html#linkDataArray" class="linkProperty">GraphLinksModel.linkDataArray</a> is replaced, inserted into or removed from
(setting <a href="../symbols/GraphLinksModel.html#linkDataArray" class="linkProperty">GraphLinksModel.linkDataArray</a> or calling <a href="../symbols/GraphLinksModel.html#addLinkData" class="linkMethod">GraphLinksModel.addLinkData</a>
or <a href="../symbols/GraphLinksModel.html#removeLinkData" class="linkMethod">GraphLinksModel.removeLinkData</a>)
</li>
<li><b>"nodeGroupKey"</b>, after changing a node data's key for a containing group data (<a href="../symbols/GraphLinksModel.html#setGroupKeyForNodeData" class="linkMethod">GraphLinksModel.setGroupKeyForNodeData</a>)</li>
<li><b>"linkCategory"</b>, after changing a link data's category (<a href="../symbols/GraphLinksModel.html#setCategoryForLinkData" class="linkMethod">GraphLinksModel.setCategoryForLinkData</a>)</li>
<li><b>"nodeParentKey"</b>, after changing a node data's "parent" node key (<a href="../symbols/TreeModel.html#setParentKeyForNodeData" class="linkMethod">TreeModel.setParentKeyForNodeData</a>)</li>
<li><b>"parentLinkCategory"</b>, after changing a node data's "parent" link's category(<a href="../symbols/TreeModel.html#setParentLinkCategoryForNodeData" class="linkMethod">TreeModel.setParentLinkCategoryForNodeData</a>)</li>
<li><b>"SourceChanged"</b>, for internal implementation use only</li>
</ul>
The value of <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">ChangedEvent.propertyName</a> indicates the actual name of the property that was modified.
<a href="../symbols/ChangedEvent.html#modelChange" class="linkProperty">ChangedEvent.modelChange</a> is a non-empty string only when there is a known structural change to the model,
not just the setting of some property on some object.
<p>
When the ChangedEvent represents a change to a <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> or a <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> within a diagram,
the value of <a href="../symbols/ChangedEvent.html#diagram" class="linkProperty">diagram</a> is non-null and
the values of <a href="../symbols/ChangedEvent.html#model" class="linkProperty">model</a> and <a href="../symbols/ChangedEvent.html#modelChange" class="linkProperty">modelChange</a> are meaningless.
</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 ChangedEvent.">
<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">
ChangedEvent()
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>The ChangedEvent class constructor produces an empty ChangedEvent object.
</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 ChangedEvent.">
<thead>
<tr>
<th scope="col" class="name">Name, Value Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="change" >
<td class="name">
<div class="name">
change
</div>
<div class="attributes">
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the nature of change that occurred.<span class="nodetails" id="xpropchange"><a class="morelink" onclick="hst('propchange')">More...</a></span> <span class="details" id="propchange">
The default is <a href="../symbols/ChangedEvent.html#Property" class="linkConstant">ChangedEvent.Property</a>.
Other values are <a href="../symbols/ChangedEvent.html#Insert" class="linkConstant">ChangedEvent.Insert</a>, <a href="../symbols/ChangedEvent.html#Remove" class="linkConstant">ChangedEvent.Remove</a>,
and <a href="../symbols/ChangedEvent.html#Transaction" class="linkConstant">ChangedEvent.Transaction</a>.</span>
</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>Gets or sets the <a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a> that was modified.<span class="nodetails" id="xpropdiagram"><a class="morelink" onclick="hst('propdiagram')">More...</a></span> <span class="details" id="propdiagram">
When this property is non-null, the <a href="../symbols/ChangedEvent.html#model" class="linkProperty">model</a> property will be null.
However this property and the <a href="../symbols/ChangedEvent.html#model" class="linkProperty">model</a> property may both be null simultaneously,
when no particular model or diagram applies.</span>
</div>
</td>
</tr>
<tr id="isTransactionFinished" >
<td class="name">
<div class="name">
isTransactionFinished
</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 ChangedEvent is of type <a href="../symbols/ChangedEvent.html#Transaction" class="linkConstant">ChangedEvent.Transaction</a> and represents the end of a transactional change.<span class="nodetails" id="xpropisTransactionFinished"><a class="morelink" onclick="hst('propisTransactionFinished')">More...</a></span> <span class="details" id="propisTransactionFinished">
It is implemented as:
<pre>
return (this.change === ChangedEvent.Transaction &&
(this.propertyName === "CommittedTransaction" ||
this.propertyName === "FinishedUndo" ||
this.propertyName === "FinishedRedo"));
</pre></span>
</div>
</td>
</tr>
<tr id="model" >
<td class="name">
<div class="name">
model
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Model.html" class="linkConstructor">Model</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the <a href="../symbols/Model.html" class="linkConstructor">Model</a> or <a href="../symbols/TreeModel.html" class="linkConstructor">TreeModel</a> or <a href="../symbols/GraphLinksModel.html" class="linkConstructor">GraphLinksModel</a> that was modified.<span class="nodetails" id="xpropmodel"><a class="morelink" onclick="hst('propmodel')">More...</a></span> <span class="details" id="propmodel">
When this property is non-null, the <a href="../symbols/ChangedEvent.html#diagram" class="linkProperty">diagram</a> property will be null.
However this property and the <a href="../symbols/ChangedEvent.html#diagram" class="linkProperty">diagram</a> property may both be null simultaneously,
when no particular model or diagram applies.</span>
</div>
</td>
</tr>
<tr id="modelChange" >
<td class="name">
<div class="name">
modelChange
</div>
<div class="attributes">
<span class="light">{string}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets the name of the model change, reflecting a change to
model data in addition to a change to the model itself.<span class="nodetails" id="xpropmodelChange"><a class="morelink" onclick="hst('propmodelChange')">More...</a></span> <span class="details" id="propmodelChange">
</span><div class="details" id="dpropmodelChange"><p>
The default is an empty string, which indicates that this is just
a regular change to some object's state, probably its property.
For a list of possible model change names, see the documentation for <a href="../symbols/ChangedEvent.html" class="linkConstructor">ChangedEvent</a>.</div>
</div>
</td>
</tr>
<tr id="newParam" >
<td class="name">
<div class="name">
newParam
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets an optional value associated with the new value.<span class="nodetails" id="xpropnewParam"><a class="morelink" onclick="hst('propnewParam')">More...</a></span> <span class="details" id="propnewParam">
Most properties do not require any parameter to describe the change.
This is typically a value that helps distinguish the new value, such as an index into an array.
It is null if it is not used.
The default is null.</span>
</div>
</td>
</tr>
<tr id="newValue" >
<td class="name">
<div class="name">
newValue
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the next or current value that the property has.<span class="nodetails" id="xpropnewValue"><a class="morelink" onclick="hst('propnewValue')">More...</a></span> <span class="details" id="propnewValue">
The default is null.</span>
</div>
</td>
</tr>
<tr id="object" >
<td class="name">
<div class="name">
object
</div>
<div class="attributes">
<span class="light">{Object}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the Object that was modified.<span class="nodetails" id="xpropobject"><a class="morelink" onclick="hst('propobject')">More...</a></span> <span class="details" id="propobject">
The default is null.
</span><div class="details" id="dpropobject"><p>
For <a href="../symbols/ChangedEvent.html#Transaction" class="linkConstant">ChangedEvent.Transaction</a> changes, this may be the <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a>.</div>
</div>
</td>
</tr>
<tr id="oldParam" >
<td class="name">
<div class="name">
oldParam
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets an optional value associated with the old value.<span class="nodetails" id="xpropoldParam"><a class="morelink" onclick="hst('propoldParam')">More...</a></span> <span class="details" id="propoldParam">
Most properties do not require any parameter to describe the change.
This is typically a value that helps distinguish the old value, such as an index into an array.
It is null if it is not used.
The default is null.</span>
</div>
</td>
</tr>
<tr id="oldValue" >
<td class="name">
<div class="name">
oldValue
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the previous or old value that the property had.<span class="nodetails" id="xpropoldValue"><a class="morelink" onclick="hst('propoldValue')">More...</a></span> <span class="details" id="propoldValue">
The default is null.</span>
</div>
</td>
</tr>
<tr id="propertyName" >
<td class="name">
<div class="name">
propertyName
</div>
<div class="attributes">
<span class="light">{string|function(Object):*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the name of the property change.<span class="nodetails" id="xproppropertyName"><a class="morelink" onclick="hst('proppropertyName')">More...</a></span> <span class="details" id="proppropertyName">
The default is an empty string, which is not a valid property name.
This property can be useful even when the type of change is
not <a href="../symbols/ChangedEvent.html#Property" class="linkConstant">ChangedEvent.Property</a>, because it can help identify
the collection in the <a href="../symbols/ChangedEvent.html#object" class="linkProperty">object</a> that was modified
(for <a href="../symbols/ChangedEvent.html#Insert" class="linkConstant">ChangedEvent.Insert</a> or <a href="../symbols/ChangedEvent.html#Remove" class="linkConstant">ChangedEvent.Remove</a>)
or the stage of the current transaction (for <a href="../symbols/ChangedEvent.html#Transaction" class="linkConstant">ChangedEvent.Transaction</a>).</span>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== 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 ChangedEvent.">
<thead>
<tr>
<th scope="col" class="name">Name, Return Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="canRedo">
<td class="name">
<div class="name">
canRedo()
</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 you can call redo().
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if ready for redo() to be called.</dt>
</dl>
</div>
</td>
</tr>
<tr id="canUndo">
<td class="name">
<div class="name">
canUndo()
</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 you can call undo().
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{boolean}</span> true if ready for undo() to be called.</dt>
</dl>
</div>
</td>
</tr>
<tr id="clear">
<td class="name">
<div class="name">
clear()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Forget any object references that this ChangedEvent may have.
</div>
</td>
</tr>
<tr id="copy">
<td class="name">
<div class="name">
copy()
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ChangedEvent.html" class="linkConstructor">ChangedEvent</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Make a copy of this ChangedEvent.<span class="nodetails" id="xmethcopy"><a class="morelink" onclick="hst('methcopy')">More...</a></span> <span class="details" id="methcopy">
ChangedEvents are copied when the <a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a> adds to a <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a>.</span>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/ChangedEvent.html" class="linkConstructor">ChangedEvent</a>}</span> </dt>
</dl>
</div>
</td>
</tr>
<tr id="getParam">
<td class="name">
<div class="name">
getParam(undo)
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This is a convenient method to get the right parameter value, depending on the value of undo,
when implementing a state change as part of an undo or a redo.<span class="nodetails" id="xmethgetParam"><a class="morelink" onclick="hst('methgetParam')">More...</a></span> <span class="details" id="methgetParam"></span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{boolean}</span> <b>undo</b>
</dt>
<dd>If true, returns the oldParam, otherwise returns the newParam.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{*}</span> Either the oldParam or the newParam.</dt>
</dl>
</div>
</td>
</tr>
<tr id="getValue">
<td class="name">
<div class="name">
getValue(undo)
</div>
<div class="attributes">
<span class="light">{*}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This is a convenient method to get the right value, depending on the value of undo,
when implementing a state change as part of an undo or a redo.<span class="nodetails" id="xmethgetValue"><a class="morelink" onclick="hst('methgetValue')">More...</a></span> <span class="details" id="methgetValue"></span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{boolean}</span> <b>undo</b>
</dt>
<dd>If true, returns the oldValue, otherwise returns the newValue.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{*}</span> Either the oldValue or the newValue.</dt>
</dl>
</div>
</td>
</tr>
<tr id="redo">
<td class="name">
<div class="name">
redo()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Re-perform this object change after an undo().<span class="nodetails" id="xmethredo"><a class="morelink" onclick="hst('methredo')">More...</a></span> <span class="details" id="methredo">
canRedo() must be true for this method to have any effect.</span>
</div>
</td>
</tr>
<tr id="undo">
<td class="name">
<div class="name">
undo()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Reverse the effects of this object change.<span class="nodetails" id="xmethundo"><a class="morelink" onclick="hst('methundo')">More...</a></span> <span class="details" id="methundo">
canUndo() must be true for this method to have any effect.</span>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== 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 ChangedEvent.">
<thead>
<tr>
<th scope="col" class="name">Name</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="Insert">
<td class="name">
<div class="name">
Insert
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>For inserting into collections,
and used as the value for <a href="../symbols/ChangedEvent.html#change" class="linkProperty">ChangedEvent.change</a>.<span class="nodetails" id="xfldInsert"><a class="morelink" onclick="hst('fldInsert')">More...</a></span> <span class="details" id="fldInsert">
The modified object is given by <a href="../symbols/ChangedEvent.html#object" class="linkProperty">ChangedEvent.object</a>.
Use the optional <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">ChangedEvent.propertyName</a> to distinguish between different collections on the object.
Use the <a href="../symbols/ChangedEvent.html#newValue" class="linkProperty">ChangedEvent.newValue</a> property to indicate the value that was inserted.
Use the optional <a href="../symbols/ChangedEvent.html#newParam" class="linkProperty">ChangedEvent.newParam</a> property to indicate where or how, such as an array index or dictionary key.</span>
</div>
</td>
</tr>
<tr id="Property">
<td class="name">
<div class="name">
Property
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>For simple property changes,
and used as the value for <a href="../symbols/ChangedEvent.html#change" class="linkProperty">ChangedEvent.change</a>.<span class="nodetails" id="xfldProperty"><a class="morelink" onclick="hst('fldProperty')">More...</a></span> <span class="details" id="fldProperty">
The name of the property is given by <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">ChangedEvent.propertyName</a>.
The modified object is given by <a href="../symbols/ChangedEvent.html#object" class="linkProperty">ChangedEvent.object</a>.
Use the <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">ChangedEvent.oldValue</a> and <a href="../symbols/ChangedEvent.html#newValue" class="linkProperty">ChangedEvent.newValue</a> properties for the previous and next property values.
</span><div class="details" id="dfldProperty"><p>
For model changes, the <a href="../symbols/ChangedEvent.html#modelChange" class="linkProperty">ChangedEvent.modelChange</a> may be non-empty, indicating a structural change to the model.</div>
</div>
</td>
</tr>
<tr id="Remove">
<td class="name">
<div class="name">
Remove
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>For removing from collections,
and used as the value for <a href="../symbols/ChangedEvent.html#change" class="linkProperty">ChangedEvent.change</a>.<span class="nodetails" id="xfldRemove"><a class="morelink" onclick="hst('fldRemove')">More...</a></span> <span class="details" id="fldRemove">
The modified object is given by <a href="../symbols/ChangedEvent.html#object" class="linkProperty">ChangedEvent.object</a>.
Use the optional <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">ChangedEvent.propertyName</a> to distinguish between different collections on the object.
Use the <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">ChangedEvent.oldValue</a> property to indicate the value that was removed.
Use the optional <a href="../symbols/ChangedEvent.html#oldParam" class="linkProperty">ChangedEvent.oldParam</a> property to indicate where or how, such as an array index or dictionary key.</span>
</div>
</td>
</tr>
<tr id="Transaction">
<td class="name">
<div class="name">
Transaction
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>For informational events, such as transactions and undo/redo operations,
and used as the value for <a href="../symbols/ChangedEvent.html#change" class="linkProperty">ChangedEvent.change</a>.<span class="nodetails" id="xfldTransaction"><a class="morelink" onclick="hst('fldTransaction')">More...</a></span> <span class="details" id="fldTransaction">
The <a href="../symbols/ChangedEvent.html#object" class="linkProperty">ChangedEvent.object</a> refers to the <a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a> affected, if any.
The <a href="../symbols/ChangedEvent.html#propertyName" class="linkProperty">ChangedEvent.propertyName</a> distinguishes the different transaction or undo or redo stages.
The <a href="../symbols/ChangedEvent.html#oldValue" class="linkProperty">ChangedEvent.oldValue</a> may provide the transaction name, if available, as given to <a href="../symbols/UndoManager.html#commitTransaction" class="linkMethod">UndoManager.commitTransaction</a>.</span>
</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>