javax.swing.undo

Class UndoableEditSupport

public class UndoableEditSupport extends Object

A helper class for supporting UndoableEditListener.
Field Summary
protected CompoundEditcompoundEdit
compoundEdit
protected Vector<UndoableEditListener>listeners
The currently registered listeners.
protected ObjectrealSource
The source of the broadcast UndoableEditEvents.
protected intupdateLevel
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.
voidaddUndoableEditListener(UndoableEditListener val)
Registers a listener.
voidbeginUpdate()
Starts a (possibly nested) update session.
protected CompoundEditcreateCompoundEdit()
Creates a new instance of CompoundEdit.
voidendUpdate()
Ends an update session.
UndoableEditListener[]getUndoableEditListeners()
Returns an array containing the currently registered listeners.
intgetUpdateLevel()
Returns the current update level.
voidpostEdit(UndoableEdit edit)
If UndoableEditSupport has been called (so that the current update level is greater than zero), adds the specified edit to compoundEdit.
voidremoveUndoableEditListener(UndoableEditListener val)
Unregisters a listener.
StringtoString()
Returns a string representation of this object that may be useful for debugging.

Field Detail

compoundEdit

protected CompoundEdit compoundEdit
compoundEdit

listeners

protected Vector<UndoableEditListener> listeners
The currently registered listeners.

realSource

protected Object realSource
The source of the broadcast UndoableEditEvents.

updateLevel

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

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

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

_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.

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener val)
Registers a listener.

Parameters: val the listener to be added.

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 UndoableEditSupport 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 UndoableEditSupport. If a subclass wants UndoableEditSupport 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 UndoableEditSupport 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.

getUndoableEditListeners

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

getUpdateLevel

public int getUpdateLevel()
Returns the current update level.

postEdit

public void postEdit(UndoableEdit edit)
If UndoableEditSupport 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.

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

Parameters: edit the edit action to be posted.

removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener val)
Unregisters a listener.

Parameters: val the listener to be removed.

toString

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