javax.swing.plaf

Class TextUI

Known Direct Subclasses:
BasicTextUI, MultiTextUI

public abstract class TextUI
extends ComponentUI

An abstract base class for delegates that provide the user interface for text editors.
See Also:
JTextComponent

Constructor Summary

TextUI()
Constructs a new TextUI.

Method Summary

abstract void
damageRange(JTextComponent tc, int start, int end)
Repaints a range of characters.
abstract void
damageRange(JTextComponent tc, int start, int end, Position.Bias startBias, Position.Bias endBias)
Repaints a range of characters, also specifying the bias for the start and end of the range.
abstract EditorKit
getEditorKit(JTextComponent tc)
Retrieves the EditorKit managing policies and persistent state.
abstract int
getNextVisualPositionFrom(JTextComponent tc, int pos, Position.Bias bias, int direction, Position.Bias[] outBias)
Calculates the caret position that is visually next to the given position.
abstract View
getRootView(JTextComponent tc)
Retrieves the root of the view tree that visually presents the text.
String
getToolTipText(JTextComponent tc, Point loc)
Returns a String for presenting a tool tip at the specified location.
abstract Rectangle
modelToView(JTextComponent tc, int pos)
Calculates the geometric extent of the character at the given offset.
abstract Rectangle
modelToView(JTextComponent tc, int pos, Position.Bias bias)
Calculates the geometric extent of the character at the given offset.
abstract int
viewToModel(JTextComponent t, Point pt)
Finds the caret position which is closest to the specified visual location.
abstract int
viewToModel(JTextComponent tc, Point loc, Position.Bias[] outBias)
Finds the caret position which is closest to the specified visual location.

Methods inherited from class javax.swing.plaf.ComponentUI

contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI, update

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

TextUI

public TextUI()
Constructs a new TextUI.

Method Details

damageRange

public abstract void damageRange(JTextComponent tc,
                                 int start,
                                 int end)
Repaints a range of characters.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
start - the first character in the range that needs painting, indicated as an index into the document model.
end - the last character in the range that needs painting, indicated as an index into the document model. end must be greater than or equal to start.

damageRange

public abstract void damageRange(JTextComponent tc,
                                 int start,
                                 int end,
                                 Position.Bias startBias,
                                 Position.Bias endBias)
Repaints a range of characters, also specifying the bias for the start and end of the range.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
start - the first character in the range that needs painting, indicated as an index into the document model.
end - the last character in the range that needs painting, indicated as an index into the document model. end must be greater than or equal to start.

getEditorKit

public abstract EditorKit getEditorKit(JTextComponent tc)
Retrieves the EditorKit managing policies and persistent state.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
Returns:
the EditorKit used by tc.

getNextVisualPositionFrom

public abstract int getNextVisualPositionFrom(JTextComponent tc,
                                              int pos,
                                              Position.Bias bias,
                                              int direction,
                                              Position.Bias[] outBias)
            throws BadLocationException
Calculates the caret position that is visually next to the given position. This is useful to determine where to move the caret after the user has pressed an arrow key.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
pos - the current caret position, a zero-based index into the document model.
bias - whether to take the character before or after the caret position indicated by pos. The value must be either Position.Bias.Backward or Position.Bias.Forward.
direction - the visual direction. Pass SwingConstants.WEST for the left arrow key, SwingConstants.EAST for the right arrow key, SwingConstants.NORTH for the up arrow key, or SwingConstants.SOUTH for the down arrow key.
Throws:
BadLocationException - if pos does not designate a valid position in the document model.
IllegalArgumentException - if direction is not one of Position.Bias.Forward or Position.Bias.Backward.

getRootView

public abstract View getRootView(JTextComponent tc)
Retrieves the root of the view tree that visually presents the text.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
Returns:
the root View used by tc.

getToolTipText

public String getToolTipText(JTextComponent tc,
                             Point loc)
Returns a String for presenting a tool tip at the specified location.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
loc - the location for which the tool tip is requested.
Returns:
the text for the tool tip, or null to display no tool tip.
Since:
1.4

modelToView

public abstract Rectangle modelToView(JTextComponent tc,
                                      int pos)
            throws BadLocationException
Calculates the geometric extent of the character at the given offset.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
pos - the zero-based index of the character into the document model.
Returns:
the bounding box of the character at index pos, in view coordinates.
Throws:
BadLocationException - if pos does not designate a valid position in the document model.

modelToView

public abstract Rectangle modelToView(JTextComponent tc,
                                      int pos,
                                      Position.Bias bias)
            throws BadLocationException
Calculates the geometric extent of the character at the given offset.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
pos - the zero-based index of the character into the document model.
bias - whether to take the character before or after the caret position indicated by pos. The value must be either Position.Bias.Backward or Position.Bias.Forward.
Returns:
the bounding box of the character at index pos, in view coordinates.
Throws:
BadLocationException - if pos does not designate a valid position in the document model.

viewToModel

public abstract int viewToModel(JTextComponent t,
                                Point pt)
Finds the caret position which is closest to the specified visual location.
Parameters:
t - the JTextComponent for which this delegate object provides the user interface.
pt - the position in view coordinates.
Returns:
the caret position which is closest to loc.

viewToModel

public abstract int viewToModel(JTextComponent tc,
                                Point loc,
                                Position.Bias[] outBias)
Finds the caret position which is closest to the specified visual location.
Parameters:
tc - the JTextComponent for which this delegate object provides the user interface.
loc - the position in view coordinates.
outBias - an array whose size must be at least one. After the call, outBias[0] will indicate whether loc is in the glyph before (Position.Bias.Backward) or after (Position.Bias.Forward) the returned caret position.
Returns:
the caret position which is closest to loc.

TextUI.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.