javax.swing.undo
Class UndoableEditSupport

java.lang.Object
  extended by javax.swing.undo.UndoableEditSupport

public class UndoableEditSupport
extends Object

A helper class for supporting UndoableEditListener.


Field Summary
protected  CompoundEdit compoundEdit
          compoundEdit
protected  Vector<UndoableEditListener> listeners
          The currently registered listeners.
protected  Object realSource
          The source of the broadcast UndoableEditEvents.
protected  int updateLevel
          The number of times that beginUpdate() has been called without a matching call to endUpdate().
 
Constructor Summary
UndoableEditSupport()
          Constructs a new helper for broadcasting UndoableEditEvents.
UndoableEditSupport(Object realSource)
          Constructs a new helper for broadcasting UndoableEditEvents.
 
Method Summary
protected  void _postEdit(UndoableEdit edit)
          Notifies all registered listeners that an UndoableEditEvent has occured.
 void addUndoableEditListener(UndoableEditListener val)
          Registers a listener.
 void beginUpdate()
          Starts a (possibly nested) update session.
protected  CompoundEdit createCompoundEdit()
          Creates a new instance of CompoundEdit.
 void endUpdate()
          Ends an update session.
 UndoableEditListener[] getUndoableEditListeners()
          Returns an array containing the currently registered listeners.
 int getUpdateLevel()
          Returns the current update level.
 void postEdit(UndoableEdit edit)
          If beginUpdate() has been called (so that the current update level is greater than zero), adds the specified edit to compoundEdit.
 void removeUndoableEditListener(UndoableEditListener val)
          Unregisters a listener.
 String toString()
          Returns a string representation of this object that may be useful for debugging.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

updateLevel

protected int updateLevel
The number of times that beginUpdate() has been called without a matching call to endUpdate().


compoundEdit

protected CompoundEdit compoundEdit
compoundEdit


listeners

protected Vector<UndoableEditListener> listeners
The currently registered listeners.


realSource

protected Object realSource
The source of the broadcast UndoableEditEvents.

Constructor Detail

UndoableEditSupport

public UndoableEditSupport()
Constructs a new helper for broadcasting UndoableEditEvents. The events will indicate the newly constructed UndoableEditSupport instance as their source.

See Also:
UndoableEditSupport(java.lang.Object)

UndoableEditSupport

public UndoableEditSupport(Object realSource)
Constructs a new helper for broadcasting UndoableEditEvents.

Parameters:
realSource - the source of the UndoableEditEvents that will be broadcast by this helper. If realSource is null, the events will indicate the newly constructed UndoableEditSupport instance as their source.
Method Detail

toString

public String toString()
Returns a string representation of this object that may be useful for debugging.

Overrides:
toString in class Object
Returns:
the String representing this Object, which may be null
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener val)
Registers a listener.

Parameters:
val - the listener to be added.

removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener val)
Unregisters a listener.

Parameters:
val - the listener to be removed.

getUndoableEditListeners

public UndoableEditListener[] getUndoableEditListeners()
Returns an array containing the currently registered listeners.


_postEdit

protected void _postEdit(UndoableEdit edit)
Notifies all registered listeners that an UndoableEditEvent has occured.

Lack of Thread Safety: It is not safe to call this method from concurrent threads, unless the call is protected by a synchronization on this UndoableEditSupport instance.

Parameters:
edit - the edit action to be posted.

postEdit

public void postEdit(UndoableEdit edit)
If beginUpdate() has been called (so that the current update level is greater than zero), adds the specified edit to compoundEdit. Otherwise, notify listeners of the edit by calling _postEdit(UndoableEdit).

Thread Safety: It is safe to call this method from any thread without external synchronization.

Parameters:
edit - the edit action to be posted.

getUpdateLevel

public int getUpdateLevel()
Returns the current update level.


beginUpdate

public void beginUpdate()
Starts a (possibly nested) update session. If the current update level is zero, compoundEdit is set to the result of the createCompoundEdit() method. In any case, the update level is increased by one.

Thread Safety: It is safe to call this method from any thread without external synchronization.


createCompoundEdit

protected CompoundEdit createCompoundEdit()
Creates a new instance of CompoundEdit. Called by beginUpdate(). If a subclass wants beginUpdate() to work on a specific compoundEdit, it should override this method.

Returns:
a newly created instance of CompoundEdit.

endUpdate

public void endUpdate()
Ends an update session. If the terminated session was the outermost session, compoundEdit will receive an end message, and _postEdit(javax.swing.undo.UndoableEdit) gets called in order to notify any listeners. Finally, the compoundEdit is discarded.

Thread Safety: It is safe to call this method from any thread without external synchronization.