home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / DocumentEvent.java < prev    next >
Text File  |  1998-02-26  |  4KB  |  138 lines

  1. /*
  2.  * @(#)DocumentEvent.java    1.12 98/01/14
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20. package com.sun.java.swing.event;
  21.  
  22. import com.sun.java.swing.undo.*;
  23. import com.sun.java.swing.text.*;
  24.  
  25. /**
  26.  * Interface for document change notifications.
  27.  *
  28.  * @author  Timothy Prinzing
  29.  * @version 1.12 01/14/98
  30.  */
  31. public interface DocumentEvent {
  32.  
  33.     /**
  34.      * Returns the offset within the document of the start
  35.      * of the change.
  36.      *
  37.      * @return the offset
  38.      */
  39.     public int getOffset();
  40.  
  41.     /**
  42.      * Returns the length of the change.
  43.      *
  44.      * @return the length
  45.      */
  46.     public int getLength();
  47.  
  48.     /**
  49.      * Gets the document that sourced the change event.
  50.      *
  51.      * @returns the document
  52.      */
  53.     public Document getDocument();
  54.  
  55.     /**
  56.      * Gets the type of event.
  57.      */
  58.     public EventType getType();
  59.  
  60.     /**
  61.      * Gets the change information for the given element. 
  62.      * The change information describes what elements were
  63.      * added and removed and the location.  If there were
  64.      * no changes, null is returned.
  65.      *
  66.      * @param elem the element
  67.      * @return the change information, or null if the 
  68.      *   element was not modified
  69.      */
  70.     public ElementChange getChange(Element elem);
  71.  
  72.     /**
  73.      * Typesafe enumeration for document event types
  74.      */
  75.     public static final class EventType {
  76.  
  77.         private EventType(String s) {
  78.         typeString = s;
  79.     }
  80.  
  81.     public static final EventType INSERT = new EventType("INSERT");
  82.     public static final EventType REMOVE = new EventType("REMOVE");
  83.     public static final EventType CHANGE = new EventType("CHANGE");
  84.  
  85.         public String toString() {
  86.         return typeString;
  87.     }
  88.  
  89.     private String typeString;
  90.     }
  91.  
  92.     /**
  93.      * Describes changes made to an element.
  94.      */
  95.     public interface ElementChange {
  96.  
  97.     /**
  98.      * Returns the element represented.  This is the element
  99.      * that was changed.
  100.          *
  101.          * @return the element
  102.      */
  103.     public Element getElement();
  104.  
  105.     /**
  106.      * Fetches the index within the element represented.
  107.      * This is the location that children were added
  108.      * and/or removed.
  109.          *
  110.          * @return the index
  111.      */
  112.     public int getIndex();
  113.  
  114.     /**
  115.      * Gets the child elements that were removed from the
  116.      * given parent element.  The parent element is expected
  117.      * to be one of the elements listed in the elementsModified
  118.      * method.  The element array returned is sorted in the
  119.      * order that the elements used to lie in the document.
  120.      *
  121.      * @return the child elements
  122.      */
  123.         public Element[] getChildrenRemoved();
  124.  
  125.     /**
  126.      * Gets the child elements that were added to the given
  127.      * parent element.  The parent element is expected to be
  128.      * one of the elements given in the elementsModified method.
  129.      * The element array returned is sorted in the order that
  130.      * the elements lie in the document.
  131.      *
  132.      * @return the child elements
  133.      */
  134.         public Element[] getChildrenAdded();
  135.  
  136.     }
  137. }
  138.