/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.editor;
import java.util.EventListener;
/**
* Listener for begining and end of the atomic
* locking. It can be used to optimize the document
* listeners if a large amounts of edits are performed
* in an atomic change. For example if there's
* a timer restarted after each document modification
* to update an external pane showing the document structure
* after 2000ms past the last modification occurred
* then there could be a following listener used:<PRE>
* class MultiListener implements DocumentListener, AtomicLockListener {
*
* private boolean atomic; // whether in atomic change
*
* public void insertUpdate(DocumentEvent evt) {
* modified(evt);
* }
*
* public void removeUpdate(DocumentEvent evt) {
* modified(evt);
* }
*
* public void changedUpdate(DocumentEvent evt) {
* }
*
* private void modified(DocumentEvent evt) {
* if (!atomic) {
* restartTimer(); // restart the timer
* }
* }
*
* public void atomicLock(AtomicLockEvent evt) {
* atomic = true;
* }
*
* public void atomicUnlock(AtomicLockEvent evt) {
* atomic = false;
* }
*
* }
* <PRE>
*/
public interface AtomicLockListener extends EventListener {
public void atomicLock(AtomicLockEvent evt);
public void atomicUnlock(AtomicLockEvent evt);
}