javax.swing.undo
public class UndoableEditSupport extends Object
UndoableEditListener
.Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
UndoableEditSupport()
Constructs a new helper for broadcasting UndoableEditEvents.
|
UndoableEditSupport(Object realSource)
Constructs a new helper for broadcasting UndoableEditEvents.
|
Modifier and Type | Method and Description |
---|---|
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.
|
protected int updateLevel
beginUpdate()
has been called
without a matching call to endUpdate()
.protected CompoundEdit compoundEdit
protected Vector<UndoableEditListener> listeners
protected Object realSource
public UndoableEditSupport()
UndoableEditSupport
instance as their source.public UndoableEditSupport(Object realSource)
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.public String toString()
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
public void addUndoableEditListener(UndoableEditListener val)
val
- the listener to be added.public void removeUndoableEditListener(UndoableEditListener val)
val
- the listener to be removed.public UndoableEditListener[] getUndoableEditListeners()
protected void _postEdit(UndoableEdit edit)
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.
edit
- the edit action to be posted.public void postEdit(UndoableEdit edit)
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.
edit
- the edit action to be posted.public int getUpdateLevel()
public void beginUpdate()
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.
protected CompoundEdit createCompoundEdit()
CompoundEdit
. Called by beginUpdate()
. If a subclass wants beginUpdate()
to work
on a specific compoundEdit
, it should override this
method.CompoundEdit
.public void endUpdate()
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.