<h2>org.autoplot.dom.DomNodeController</h2><p>Base class for controller objects that are responsible for managing a node.</p>
<h2>DomNodeController( <a href='http://www-pw.physics.uiowa.edu/~jbf/autoplot/doc/org/autoplot/dom/DomNode.html'>org.autoplot.dom.DomNode</a> node )</h2>
<p></p>

<hr>
<a name="addPropertyChangeListener"></a>
<h2>addPropertyChangeListener</h2>
addPropertyChangeListener( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> propertyName, <a href='https://docs.oracle.com/javase/8/docs/api/java/beans/PropertyChangeListener.html'>java.beans.PropertyChangeListener</a> listener ) &rarr; void

<p></p>

<h3>Parameters</h3>
propertyName - a String
<br>
listener - a PropertyChangeListener

<h3>Returns:</h3>
void (returns nothing)

<br><br>
<a href="https://github.com/autoplot/dev/search?q=addPropertyChangeListener&unscoped_q=addPropertyChangeListener">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#addPropertyChangeListener">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l255">[view source]</a>
<br>
<br>
addPropertyChangeListener( <a href='https://docs.oracle.com/javase/8/docs/api/java/beans/PropertyChangeListener.html'>java.beans.PropertyChangeListener</a> listener ) &rarr; void<br>
<hr>
<a name="changePerformed"></a>
<h2>changePerformed</h2>
changePerformed( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> client, <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> lockObject ) &rarr; void

<p>the change is complete, and as far as the client is concerned, the canvas
 is valid.</p>

<h3>Parameters</h3>
client - the object that is mutating the bean.
<br>
lockObject - an object identifying the change.

<h3>Returns:</h3>
void (returns nothing)

<h3>See Also:</h3>
<a href='null'>registerPendingChange(java.lang.Object, java.lang.Object)</a> <br>
<a href='null'>performingChange(java.lang.Object, java.lang.Object)</a> <br>
<br><br>
<a href="https://github.com/autoplot/dev/search?q=changePerformed&unscoped_q=changePerformed">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#changePerformed">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l243">[view source]</a>
<br>
<br>
<hr>
<a name="getController"></a>
<h2>getController</h2>
getController( <a href='http://www-pw.physics.uiowa.edu/~jbf/autoplot/doc/org/autoplot/dom/DomNode.html'>org.autoplot.dom.DomNode</a> n ) &rarr; <a href='http://www-pw.physics.uiowa.edu/~jbf/autoplot/doc/org/autoplot/dom/DomNodeController.html'>org.autoplot.dom.DomNodeController</a>

<p>return the controller for the node, if it exists.
 This appeared to take a significant amount of time using introspection, 
 so was recoded.  Note this is much faster, but it's trivial either way
 and this runs the risk of a future new node not being handled.
 (Test on 2016-03-14 showed 1e6 invocations of with introspection took
 ~700ms, while this took 7ms.)</p>

<h3>Parameters</h3>
n - the node

<h3>Returns:</h3>
the controller or null.
<br><br>
<a href="https://github.com/autoplot/dev/search?q=getController&unscoped_q=getController">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#getController">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l85">[view source]</a>
<br>
<br>
<hr>
<a name="isPendingChanges"></a>
<h2>isPendingChanges</h2>
isPendingChanges(  ) &rarr; boolean

<p>Some sort of processing is going on, so wait until idle.</p>

<h3>Returns:</h3>
true if there are changes pending.
<br><br>
<a href="https://github.com/autoplot/dev/search?q=isPendingChanges&unscoped_q=isPendingChanges">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#isPendingChanges">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l127">[view source]</a>
<br>
<br>
<hr>
<a name="isValueAdjusting"></a>
<h2>isValueAdjusting</h2>
isValueAdjusting(  ) &rarr; boolean

<p>the application state is rapidly changing.</p>

<h3>Returns:</h3>
a boolean

<br><br>
<a href="https://github.com/autoplot/dev/search?q=isValueAdjusting&unscoped_q=isValueAdjusting">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#isValueAdjusting">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l184">[view source]</a>
<br>
<br>
<hr>
<a name="mutatorLock"></a>
<h2>mutatorLock</h2>
mutatorLock(  ) &rarr; <a href='http://www-pw.physics.uiowa.edu/~jbf/autoplot/doc/org/autoplot/dom/ChangesSupport/DomLock.html'>org.autoplot.dom.ChangesSupport.DomLock</a>

<p>lock the node so that others cannot modify it.  Call the lock object's lock method with a name for the operation,
 then unlock it when the operation is complete.  A try/finally block should be used in case exceptions occur, otherwise
 the application will be left in an unusable state!
 <tt>
 DomLock lock = dom.controller.mutatorLock();
 lock.lock( "Sync to Application" );
    do atomic operation...
 lock.unlock()
 </tt></p>

<h3>Returns:</h3>
an org.autoplot.dom.ChangesSupport.DomLock

<br><br>
<a href="https://github.com/autoplot/dev/search?q=mutatorLock&unscoped_q=mutatorLock">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#mutatorLock">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l200">[view source]</a>
<br>
<br>
<hr>
<a name="pendingChanges"></a>
<h2>pendingChanges</h2>
pendingChanges( <a href='https://docs.oracle.com/javase/8/docs/api/java/util/Map.html'>java.util.Map</a> changes ) &rarr; void

<p>return a list of all the pending changes.  These are returned in a
 Map that goes from pending change to change manager.  Note this will
 recurse through all the children, so to see pending changes
 for the application, just call this on its controller.</p>

<h3>Parameters</h3>
changes - a Map to which the changes will be added.

<h3>Returns:</h3>
void (returns nothing)

<br><br>
<a href="https://github.com/autoplot/dev/search?q=pendingChanges&unscoped_q=pendingChanges">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#pendingChanges">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l169">[view source]</a>
<br>
<br>
<hr>
<a name="performingChange"></a>
<h2>performingChange</h2>
performingChange( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> client, <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> lockObject ) &rarr; void

<p>performingChange tells that the change is about to be performed.  This
 is a place holder in case we use a mutator lock, but currently does
 nothing.  If the change has not been registered, it will be registered implicitly.</p>

<h3>Parameters</h3>
client - the object that is mutating the bean.
<br>
lockObject - an object identifying the change.

<h3>Returns:</h3>
void (returns nothing)

<h3>See Also:</h3>
<a href='null'>registerPendingChange(java.lang.Object, java.lang.Object)</a> <br>
<a href='null'>changePerformed(java.lang.Object, java.lang.Object)</a> <br>
<br><br>
<a href="https://github.com/autoplot/dev/search?q=performingChange&unscoped_q=performingChange">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#performingChange">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l231">[view source]</a>
<br>
<br>
<hr>
<a name="printStats"></a>
<h2>printStats</h2>
printStats(  ) &rarr; void

<p></p>

<h3>Returns:</h3>
void (returns nothing)

<br><br>
<a href="https://github.com/autoplot/dev/search?q=printStats&unscoped_q=printStats">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#printStats">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l40">[view source]</a>
<br>
<br>
<hr>
<a name="registerPendingChange"></a>
<h2>registerPendingChange</h2>
registerPendingChange( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> client, <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html'>Object</a> lockObject ) &rarr; void

<p>the client knows a change will be coming, and the canvas' clients should
 know that its current state will change soon.  Example pending changes
 would be:
   layout because tick labels are changing
   data is loading</p>

<h3>Parameters</h3>
client - the object that will perform the change.  This allows the
   canvas (and developers) identify who has registered the change.
<br>
lockObject - object identifying the change.

<h3>Returns:</h3>
void (returns nothing)

<h3>See Also:</h3>
<a href='null'>performingChange(java.lang.Object, java.lang.Object)</a> <br>
<a href='null'>changePerformed(java.lang.Object, java.lang.Object)</a> <br>
<br><br>
<a href="https://github.com/autoplot/dev/search?q=registerPendingChange&unscoped_q=registerPendingChange">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#registerPendingChange">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l218">[view source]</a>
<br>
<br>
<hr>
<a name="removePropertyChangeListener"></a>
<h2>removePropertyChangeListener</h2>
removePropertyChangeListener( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> propertyName, <a href='https://docs.oracle.com/javase/8/docs/api/java/beans/PropertyChangeListener.html'>java.beans.PropertyChangeListener</a> listener ) &rarr; void

<p></p>

<h3>Parameters</h3>
propertyName - a String
<br>
listener - a PropertyChangeListener

<h3>Returns:</h3>
void (returns nothing)

<br><br>
<a href="https://github.com/autoplot/dev/search?q=removePropertyChangeListener&unscoped_q=removePropertyChangeListener">[search for examples]</a>
 <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/dom/DomNodeController.md">[view on GitHub]</a>
 <a href="http://www-pw.physics.uiowa.edu/~jbf/autoplot/javadoc2018/org/autoplot/dom/DomNodeController.html#removePropertyChangeListener">[view on old javadoc]</a>
 <a href="https://sourceforge.net/p/autoplot/code/HEAD/tree/autoplot/trunk/Autoplot/src/org/autoplot/dom/DomNodeController.java#l247">[view source]</a>
<br>
<br>
removePropertyChangeListener( <a href='https://docs.oracle.com/javase/8/docs/api/java/beans/PropertyChangeListener.html'>java.beans.PropertyChangeListener</a> listener ) &rarr; void<br>