1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 20 package org.netbeans.editor; 21 22 import java.util.EventListener; 23 24 /** 25 * Listener for begining and end of the atomic 26 * locking. It can be used to optimize the document 27 * listeners if a large amounts of edits are performed 28 * in an atomic change. For example if there's 29 * a timer restarted after each document modification 30 * to update an external pane showing the document structure 31 * after 2000ms past the last modification occurred 32 * then there could be a following listener used:<PRE> 33 * class MultiListener implements DocumentListener, AtomicLockListener { 34 * 35 * private boolean atomic; // whether in atomic change 36 * 37 * public void insertUpdate(DocumentEvent evt) { 38 * modified(evt); 39 * } 40 * 41 * public void removeUpdate(DocumentEvent evt) { 42 * modified(evt); 43 * } 44 * 45 * public void changedUpdate(DocumentEvent evt) { 46 * } 47 * 48 * private void modified(DocumentEvent evt) { 49 * if (!atomic) { 50 * restartTimer(); // restart the timer 51 * } 52 * } 53 * 54 * public void atomicLock(AtomicLockEvent evt) { 55 * atomic = true; 56 * } 57 * 58 * public void atomicUnlock(AtomicLockEvent evt) { 59 * atomic = false; 60 * } 61 * 62 * } 63 * <PRE> 64 */ 65 public interface AtomicLockListener extends EventListener { 66 67 public void atomicLock(AtomicLockEvent evt); 68 69 public void atomicUnlock(AtomicLockEvent evt); 70 71 } 72