public final class TextHitInfo extends Object
TextHitInfo class represents a character position in a text model, and a
bias, or "side," of the character. Biases are either
leading (the left edge, for a left-to-right character) or
trailing (the right edge, for a left-to-right character). Instances of
TextHitInfo are used to specify caret and insertion positions within text.
For example, consider the text "abc". TextHitInfo.trailing(1) corresponds to the right side of the 'b' in the text.
TextHitInfo is used primarily by TextLayout and clients of TextLayout. Clients of TextLayout query TextHitInfo instances for an insertion offset, where new text is inserted into the text model. The insertion offset is equal to the character position in the TextHitInfo if the bias is leading, and one character after if the bias is trailing. The insertion offset for TextHitInfo.trailing(1) is 2.
Sometimes it is convenient to construct a TextHitInfo with the same insertion offset as an existing one, but on the opposite character. The getOtherHit method constructs a new TextHitInfo with the same insertion offset as an existing one, with a hit on the character on the other side of the insertion offset. Calling getOtherHit on trailing(1) would return leading(2). In general, getOtherHit for trailing(n) returns leading(n+1) and getOtherHit for leading(n) returns trailing(n-1).
Example:
Converting a graphical point to an insertion point within a text model
TextLayout layout = ...; Point2D.Float hitPoint = ...; TextHitInfo hitInfo = layout.hitTestChar(hitPoint.x, hitPoint.y); int insPoint = hitInfo.getInsertionIndex(); // insPoint is relative to layout; may need to adjust for use // in a text model
TextLayout
| Modifier and Type | Method and Description |
|---|---|
static TextHitInfo |
afterOffset(int offset)
Creates a
TextHitInfo at the specified offset, associated with the character after the offset.
|
static TextHitInfo |
beforeOffset(int offset)
Creates a
TextHitInfo at the specified offset, associated with the character before the offset.
|
boolean |
equals(Object
Returns
true if the specified
Object is a
TextHitInfo and equals this
TextHitInfo.
|
boolean |
equals(TextHitInfo
Returns
true if the specified
TextHitInfo has the same
charIndex and
isLeadingEdge as this
TextHitInfo.
|
int |
getCharIndex()
Returns the index of the character hit.
|
int |
getInsertionIndex()
Returns the insertion index.
|
TextHitInfo |
getOffsetHit(int delta)
Creates a
TextHitInfo whose character index is offset by
delta from the
charIndex of this
TextHitInfo.
|
TextHitInfo |
getOtherHit()
Creates a
TextHitInfo on the other side of the insertion point.
|
int |
hashCode()
Returns the hash code.
|
boolean |
isLeadingEdge()
Returns
true if the leading edge of the character was hit.
|
static TextHitInfo |
leading(int charIndex)
Creates a
TextHitInfo on the leading edge of the character at the specified
charIndex.
|
String |
toString()
Returns a
String representing the hit for debugging use only.
|
static TextHitInfo |
trailing(int charIndex)
Creates a hit on the trailing edge of the character at the specified
charIndex.
|
public int getCharIndex()
public boolean isLeadingEdge()
true if the leading edge of the character was hit.
true if the leading edge of the character was hit;
false otherwise.
public int getInsertionIndex()
public int hashCode()
hashCode in class
Object
TextHitInfo, which is also the
charIndex of this
TextHitInfo.
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public boolean equals(Objectobj)
true if the specified
Object is a
TextHitInfo and equals this
TextHitInfo.
equals in class
Object
obj - the
Object to test for equality
true if the specified
Object equals this
TextHitInfo;
false otherwise.
Object.hashCode() ,
HashMap
public boolean equals(TextHitInfohitInfo)
true if the specified
TextHitInfo has the same
charIndex and
isLeadingEdge as this
TextHitInfo. This is not the same as having the same insertion offset.
hitInfo - a specified
TextHitInfo
true if the specified
TextHitInfo has the same
charIndex and
isLeadingEdge as this
TextHitInfo.
public StringtoString()
String representing the hit for debugging use only.
public static TextHitInfoleading(int charIndex)
TextHitInfo on the leading edge of the character at the specified
charIndex.
charIndex - the index of the character hit
TextHitInfo on the leading edge of the character at the specified
charIndex.
public static TextHitInfotrailing(int charIndex)
charIndex.
charIndex - the index of the character hit
TextHitInfo on the trailing edge of the character at the specified
charIndex.
public static TextHitInfobeforeOffset(int offset)
TextHitInfo at the specified offset, associated with the character before the offset.
offset - an offset associated with the character before the offset
TextHitInfo at the specified offset.
public static TextHitInfoafterOffset(int offset)
TextHitInfo at the specified offset, associated with the character after the offset.
offset - an offset associated with the character after the offset
TextHitInfo at the specified offset.
public TextHitInfogetOtherHit()
TextHitInfo on the other side of the insertion point. This
TextHitInfo remains unchanged.
TextHitInfo on the other side of the insertion point.
public TextHitInfogetOffsetHit(int delta)
TextHitInfo whose character index is offset by
delta from the
charIndex of this
TextHitInfo. This
TextHitInfo remains unchanged.
delta - the value to offset this
charIndex
TextHitInfo whose
charIndex is offset by
delta from the
charIndex of this
TextHitInfo.