| /* |
| * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved. |
| * |
| * The program is provided "as is" without any warranty express or |
| * implied, including the warranty of non-infringement and the implied |
| * warranties of merchantibility and fitness for a particular purpose. |
| * IBM will not be liable for any damages suffered by you as a result |
| * of using the Program. In no event will IBM be liable for any |
| * special, indirect or consequential damages or lost profits even if |
| * IBM has been advised of the possibility of their occurrence. IBM |
| * will not be liable for any third party claims against you. |
| */ |
| package com.ibm.richtext.textpanel; |
| |
| import java.util.EventObject; |
| |
| /** |
| * TextPanelEvent is generated by an MTextPanel to notify listeners |
| * of changes. To receive TextPanelEvents from an MTextPanel, clients |
| * must implement TextPanelListener and add themselves to the MTextPanel's |
| * list of listeners. |
| * <p> |
| * Some event types are special cases of others. This is intentional - it |
| * allows notifications to be sent less often in certain common cases. For |
| * example, a change in the selection range generates a SELECTION_RANGE_CHANGED |
| * event. This is a very common occurrance, and if many clients listen for this |
| * event, there may be a significant performance penalty. By |
| * listening for a more specialized event (such as SELECTION_EMPTY_CHANGED), clients |
| * can reduce the number of notifications sent. |
| * |
| * @see MTextPanel |
| * @see TextPanelListener |
| */ |
| public final class TextPanelEvent extends EventObject { |
| |
| static final String COPYRIGHT = |
| "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved"; |
| |
| /** |
| * The lower bound of TextPanelEvent ID's. |
| */ |
| public static final int TEXT_PANEL_FIRST = 11; |
| |
| /** |
| * Events of this type indicate a change in the selection range. |
| * This occurs quite often. Most clients do not need to be |
| * notified every time the selection range changes. |
| */ |
| public static final int SELECTION_RANGE_CHANGED = 11; |
| |
| /** |
| * Events of this type are sent when the selection range becomes |
| * 0-length after not being 0-length, or vice versa. This event |
| * is a special case of SELECTION_RANGE_CHANGED. |
| */ |
| public static final int SELECTION_EMPTY_CHANGED = 12; |
| |
| /** |
| * Events of this type indicate that the text in the TextPanel changed. |
| * This type of event occurs often. |
| */ |
| public static final int TEXT_CHANGED = 13; |
| |
| /** |
| * Events of this type are sent when the styles in the current |
| * selection change. |
| */ |
| public static final int SELECTION_STYLES_CHANGED = 14; |
| |
| /** |
| * Events of this type are sent when the undo/redo state changes. |
| */ |
| public static final int UNDO_STATE_CHANGED = 15; |
| |
| /** |
| * Events of this type are sent when the clipboard state changes. |
| */ |
| public static final int CLIPBOARD_CHANGED = 16; |
| |
| /** |
| * Events of this type are sent when |
| * the wrap width of the text changes. |
| */ |
| public static final int FORMAT_WIDTH_CHANGED = 17; |
| |
| /** |
| * Events of this type are sent when the key remap changes. |
| */ |
| public static final int KEYREMAP_CHANGED = 18; |
| |
| /** |
| * The upper bound of TextPanelEvent ID's. |
| */ |
| public static final int TEXT_PANEL_LAST = 18; |
| |
| private int fId; |
| |
| /** |
| * Create a new TextPanelEvent. |
| * @param source the MTextPanel which generated the event |
| * @param id the ID for this event. Must be within |
| * [TEXT_PANEL_FIRST, TEXT_PANEL_LAST]. |
| */ |
| TextPanelEvent(MTextPanel source, int id) { |
| |
| super(source); |
| if (id < TEXT_PANEL_FIRST || id > TEXT_PANEL_LAST) { |
| throw new IllegalArgumentException("id out of range"); |
| } |
| fId = id; |
| } |
| |
| /** |
| * Return the event ID for this event. Event ID's are |
| * one of the class constants. |
| * @return the event ID for this event |
| */ |
| public int getID() { |
| |
| return fId; |
| } |
| |
| public String toString() { |
| |
| String desc = null; |
| |
| switch(fId) { |
| case SELECTION_RANGE_CHANGED: |
| desc = "SELECTION_RANGE_CHANGED"; |
| break; |
| case SELECTION_EMPTY_CHANGED: |
| desc = "SELECTION_EMPTY_CHANGED"; |
| break; |
| case TEXT_CHANGED: |
| desc = "TEXT_CHANGED"; |
| break; |
| case SELECTION_STYLES_CHANGED: |
| desc = "SELECTION_STYLES_CHANGED"; |
| break; |
| case UNDO_STATE_CHANGED: |
| desc = "UNDO_STATE_CHANGED"; |
| break; |
| case CLIPBOARD_CHANGED: |
| desc = "CLIPBOARD_CHANGED"; |
| break; |
| case FORMAT_WIDTH_CHANGED: |
| desc = "FORMAT_WIDTH_CHANGED"; |
| break; |
| case KEYREMAP_CHANGED: |
| desc = "KEYREMAP_CHANGED"; |
| break; |
| } |
| return "[TextPanelEvent:"+desc+"]"; |
| } |
| } |