Class TextHitInfo
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
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic TextHitInfoafterOffset(int offset) Creates aTextHitInfoat the specified offset, associated with the character after the offset.static TextHitInfobeforeOffset(int offset) Creates aTextHitInfoat the specified offset, associated with the character before the offset.booleanequals(TextHitInfo hitInfo) Returnstrueif the specifiedTextHitInfohas the samecharIndexandisLeadingEdgeas thisTextHitInfo.booleanReturnstrueif the specifiedObjectis aTextHitInfoand equals thisTextHitInfo.intReturns the index of the character hit.intReturns the insertion index.getOffsetHit(int delta) Creates aTextHitInfowhose character index is offset bydeltafrom thecharIndexof thisTextHitInfo.Creates aTextHitInfoon the other side of the insertion point.inthashCode()Returns the hash code.booleanReturnstrueif the leading edge of the character was hit.static TextHitInfoleading(int charIndex) Creates aTextHitInfoon the leading edge of the character at the specifiedcharIndex.toString()Returns aStringrepresenting the hit for debugging use only.static TextHitInfotrailing(int charIndex) Creates a hit on the trailing edge of the character at the specifiedcharIndex.
-
Method Details
-
getCharIndex
public int getCharIndex()Returns the index of the character hit.- Returns:
- the index of the character hit.
-
isLeadingEdge
public boolean isLeadingEdge()Returnstrueif the leading edge of the character was hit.- Returns:
trueif the leading edge of the character was hit;falseotherwise.
-
getInsertionIndex
public int getInsertionIndex()Returns the insertion index. This is the character index if the leading edge of the character was hit, and one greater than the character index if the trailing edge was hit.- Returns:
- the insertion index.
-
hashCode
-
equals
-
equals
Returnstrueif the specifiedTextHitInfohas the samecharIndexandisLeadingEdgeas thisTextHitInfo. This is not the same as having the same insertion offset.- Parameters:
hitInfo- a specifiedTextHitInfo- Returns:
trueif the specifiedTextHitInfohas the samecharIndexandisLeadingEdgeas thisTextHitInfo.
-
toString
-
leading
Creates aTextHitInfoon the leading edge of the character at the specifiedcharIndex.- Parameters:
charIndex- the index of the character hit- Returns:
- a
TextHitInfoon the leading edge of the character at the specifiedcharIndex.
-
trailing
Creates a hit on the trailing edge of the character at the specifiedcharIndex.- Parameters:
charIndex- the index of the character hit- Returns:
- a
TextHitInfoon the trailing edge of the character at the specifiedcharIndex.
-
beforeOffset
Creates aTextHitInfoat the specified offset, associated with the character before the offset.- Parameters:
offset- an offset associated with the character before the offset- Returns:
- a
TextHitInfoat the specified offset.
-
afterOffset
Creates aTextHitInfoat the specified offset, associated with the character after the offset.- Parameters:
offset- an offset associated with the character after the offset- Returns:
- a
TextHitInfoat the specified offset.
-
getOtherHit
Creates aTextHitInfoon the other side of the insertion point. ThisTextHitInforemains unchanged.- Returns:
- a
TextHitInfoon the other side of the insertion point.
-
getOffsetHit
Creates aTextHitInfowhose character index is offset bydeltafrom thecharIndexof thisTextHitInfo. ThisTextHitInforemains unchanged.- Parameters:
delta- the value to offset thischarIndex- Returns:
- a
TextHitInfowhosecharIndexis offset bydeltafrom thecharIndexof thisTextHitInfo.
-