< prev index next >

src/java.desktop/share/classes/javax/swing/undo/UndoableEditSupport.java

Print this page

        

*** 27,37 **** import javax.swing.event.*; import java.util.*; /** ! * A support class used for managing <code>UndoableEdit</code> listeners. * * @author Ray Ryan */ public class UndoableEditSupport { /** --- 27,37 ---- import javax.swing.event.*; import java.util.*; /** ! * A support class used for managing {@code UndoableEdit} listeners. * * @author Ray Ryan */ public class UndoableEditSupport { /**
*** 50,114 **** * The real source. */ protected Object realSource; /** ! * Constructs an <code>UndoableEditSupport</code> object. */ public UndoableEditSupport() { this(null); } /** ! * Constructs an <code>UndoableEditSupport</code> object. * ! * @param r an <code>Object</code> */ public UndoableEditSupport(Object r) { realSource = r == null ? this : r; updateLevel = 0; compoundEdit = null; listeners = new Vector<UndoableEditListener>(); } /** ! * Registers an <code>UndoableEditListener</code>. * The listener is notified whenever an edit occurs which can be undone. * ! * @param l an <code>UndoableEditListener</code> object * @see #removeUndoableEditListener */ public synchronized void addUndoableEditListener(UndoableEditListener l) { listeners.addElement(l); } /** ! * Removes an <code>UndoableEditListener</code>. * ! * @param l the <code>UndoableEditListener</code> object to be removed * @see #addUndoableEditListener */ public synchronized void removeUndoableEditListener(UndoableEditListener l) { listeners.removeElement(l); } /** ! * Returns an array of all the <code>UndoableEditListener</code>s added * to this UndoableEditSupport with addUndoableEditListener(). * ! * @return all of the <code>UndoableEditListener</code>s added or an empty * array if no listeners have been added * @since 1.4 */ public synchronized UndoableEditListener[] getUndoableEditListeners() { return listeners.toArray(new UndoableEditListener[0]); } /** ! * Called only from <code>postEdit</code> and <code>endUpdate</code>. Calls ! * <code>undoableEditHappened</code> in all listeners. No synchronization * is performed here, since the two calling methods are synchronized. * * @param e edit to be verified */ protected void _postEdit(UndoableEdit e) { --- 50,114 ---- * The real source. */ protected Object realSource; /** ! * Constructs an {@code UndoableEditSupport} object. */ public UndoableEditSupport() { this(null); } /** ! * Constructs an {@code UndoableEditSupport} object. * ! * @param r an {@code Object} */ public UndoableEditSupport(Object r) { realSource = r == null ? this : r; updateLevel = 0; compoundEdit = null; listeners = new Vector<UndoableEditListener>(); } /** ! * Registers an {@code UndoableEditListener}. * The listener is notified whenever an edit occurs which can be undone. * ! * @param l an {@code UndoableEditListener} object * @see #removeUndoableEditListener */ public synchronized void addUndoableEditListener(UndoableEditListener l) { listeners.addElement(l); } /** ! * Removes an {@code UndoableEditListener}. * ! * @param l the {@code UndoableEditListener} object to be removed * @see #addUndoableEditListener */ public synchronized void removeUndoableEditListener(UndoableEditListener l) { listeners.removeElement(l); } /** ! * Returns an array of all the {@code UndoableEditListener}s added * to this UndoableEditSupport with addUndoableEditListener(). * ! * @return all of the {@code UndoableEditListener}s added or an empty * array if no listeners have been added * @since 1.4 */ public synchronized UndoableEditListener[] getUndoableEditListeners() { return listeners.toArray(new UndoableEditListener[0]); } /** ! * Called only from {@code postEdit} and {@code endUpdate}. Calls ! * {@code undoableEditHappened} in all listeners. No synchronization * is performed here, since the two calling methods are synchronized. * * @param e edit to be verified */ protected void _postEdit(UndoableEdit e) {
*** 121,131 **** } } /** * DEADLOCK WARNING: Calling this method may call ! * <code>undoableEditHappened</code> in all listeners. * It is unwise to call this method from one of its listeners. * * @param e edit to be posted */ public synchronized void postEdit(UndoableEdit e) { --- 121,131 ---- } } /** * DEADLOCK WARNING: Calling this method may call ! * {@code undoableEditHappened} in all listeners. * It is unwise to call this method from one of its listeners. * * @param e edit to be posted */ public synchronized void postEdit(UndoableEdit e) {
*** 155,176 **** } updateLevel++; } /** ! * Called only from <code>beginUpdate</code>. * Exposed here for subclasses' use. * * @return new created {@code CompoundEdit} object */ protected CompoundEdit createCompoundEdit() { return new CompoundEdit(); } /** * DEADLOCK WARNING: Calling this method may call ! * <code>undoableEditHappened</code> in all listeners. * It is unwise to call this method from one of its listeners. */ public synchronized void endUpdate() { updateLevel--; if (updateLevel == 0) { --- 155,176 ---- } updateLevel++; } /** ! * Called only from {@code beginUpdate}. * Exposed here for subclasses' use. * * @return new created {@code CompoundEdit} object */ protected CompoundEdit createCompoundEdit() { return new CompoundEdit(); } /** * DEADLOCK WARNING: Calling this method may call ! * {@code undoableEditHappened} in all listeners. * It is unwise to call this method from one of its listeners. */ public synchronized void endUpdate() { updateLevel--; if (updateLevel == 0) {
*** 182,192 **** /** * Returns a string that displays and identifies this * object's properties. * ! * @return a <code>String</code> representation of this object */ public String toString() { return super.toString() + " updateLevel: " + updateLevel + " listeners: " + listeners + --- 182,192 ---- /** * Returns a string that displays and identifies this * object's properties. * ! * @return a {@code String} representation of this object */ public String toString() { return super.toString() + " updateLevel: " + updateLevel + " listeners: " + listeners +
< prev index next >