View Javadoc
1   /*
2    * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  package javax.swing.event;
26  
27  import java.util.EventListener;
28  
29  /**
30   * Interface for an observer to register to receive notifications
31   * of changes to a text document.
32   * <p>
33   * The default implementation of
34   * the Document interface (AbstractDocument) supports asynchronous
35   * mutations.  If this feature is used (i.e. mutations are made
36   * from a thread other than the Swing event thread), the listeners
37   * will be notified via the mutating thread.  <em>This means that
38   * if asynchronous updates are made, the implementation of this
39   * interface must be threadsafe</em>!
40   * <p>
41   * The DocumentEvent notification is based upon the JavaBeans
42   * event model.  There is no guarantee about the order of delivery
43   * to listeners, and all listeners must be notified prior to making
44   * further mutations to the Document.  <em>This means implementations
45   * of the DocumentListener may not mutate the source of the event
46   * (i.e. the associated Document)</em>.
47   *
48   * @author  Timothy Prinzing
49   * @see javax.swing.text.Document
50   * @see javax.swing.text.StyledDocument
51   * @see DocumentEvent
52   */
53  public interface DocumentListener extends EventListener {
54  
55      /**
56       * Gives notification that there was an insert into the document.  The
57       * range given by the DocumentEvent bounds the freshly inserted region.
58       *
59       * @param e the document event
60       */
61      public void insertUpdate(DocumentEvent e);
62  
63      /**
64       * Gives notification that a portion of the document has been
65       * removed.  The range is given in terms of what the view last
66       * saw (that is, before updating sticky positions).
67       *
68       * @param e the document event
69       */
70      public void removeUpdate(DocumentEvent e);
71  
72      /**
73       * Gives notification that an attribute or set of attributes changed.
74       *
75       * @param e the document event
76       */
77      public void changedUpdate(DocumentEvent e);
78  }