1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
/* * @(#)Highlighter.java 1.23 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.swing.text; import java.awt.Color; import java.awt.Graphics; import java.awt.Shape; /** * An interface for an object that allows one to mark up the background * with colored areas. * * @author Timothy Prinzing * @version 1.23 11/17/05 */ public interface Highlighter { /** * Called when the UI is being installed into the * interface of a JTextComponent. This can be used * to gain access to the model that is being navigated * by the implementation of this interface. * * @param c the JTextComponent editor */ public void install(JTextComponent c); /** * Called when the UI is being removed from the * interface of a JTextComponent. This is used to * unregister any listeners that were attached. * * @param c the JTextComponent editor */ public void deinstall(JTextComponent c); /** * Renders the highlights. * * @param g the graphics context. */ public void paint(Graphics g); /** * Adds a highlight to the view. Returns a tag that can be used * to refer to the highlight. * * @param p0 the beginning of the range >= 0 * @param p1 the end of the range >= p0 * @param p the painter to use for the actual highlighting * @return an object that refers to the highlight * @exception BadLocationException for an invalid range specification */ public Object addHighlight(int p0, int p1, HighlightPainter p) throws BadLocationException; /** * Removes a highlight from the view. * * @param tag which highlight to remove */ public void removeHighlight(Object tag); /** * Removes all highlights this highlighter is responsible for. */ public void removeAllHighlights(); /** * Changes the given highlight to span a different portion of * the document. This may be more efficient than a remove/add * when a selection is expanding/shrinking (such as a sweep * with a mouse) by damaging only what changed. * * @param tag which highlight to change * @param p0 the beginning of the range >= 0 * @param p1 the end of the range >= p0 * @exception BadLocationException for an invalid range specification */ public void changeHighlight(Object tag, int p0, int p1) throws BadLocationException; /** * Fetches the current list of highlights. * * @return the highlight list */ public Highlight[] getHighlights(); /** * Highlight renderer. */ public interface HighlightPainter { /** * Renders the highlight. * * @param g the graphics context * @param p0 the starting offset in the model >= 0 * @param p1 the ending offset in the model >= p0 * @param bounds the bounding box for the highlight * @param c the editor */ public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent c); } public interface Highlight { /** * Gets the starting model offset for the highlight. * * @return the starting offset >= 0 */ public int getStartOffset(); /** * Gets the ending model offset for the highlight. * * @return the ending offset >= 0 */ public int getEndOffset(); /** * Gets the painter for the highlighter. * * @return the painter */ public HighlightPainter getPainter(); } };