The elements in the segments field specify the start offset of a segment relative to the start of the text. They must follow the following rules:
The segments field may be left null if the entire text content doesn't require segmentation.
A SegmentListener may be used when adjacent segments of right-to-left text should not be reordered relative to each other. For example, within a Java editor, you may wish multiple right-to-left string literals to be reordered differently than the bidi algorithm specifies. Example:stored text = "R1R2R3" + "R4R5R6" R1 to R6 are right-to-left characters. The quotation marks are part of the text. The text is 13 characters long. segments = null: entire text content will be reordered and thus the two R2L segments swapped (as per the bidi algorithm). visual display (rendered on screen) = "R6R5R4" + "R3R2R1" segments = [0, 5, 8] "R1R2R3" will be reordered, followed by [blank]+[blank] and "R4R5R6". visual display = "R3R2R1" + "R6R5R4"
The segments and segmentsChars fields can be used together to obtain different types of bidi reordering and text display. The application can use these two fields to insert Unicode Control Characters in specific offsets in the text, the character at segmentsChars[i] is inserted at the offset specified by segments[i]. When both fields are set, the rules for the segments field are less restrictive:
| Modifier and Type | Field and Description |
|---|---|
| public int | lineOffset
The start offset of the |
| public String | lineText
Text used to calculate the segments |
| public int[] | segments
Text ranges that should be treated as separate segments (e.g. for bidi reordering) |
| public char[] | segmentsChars
Characters to be used in the segment boundaries (optional) |
| pack-priv static final long |
| Access | Constructor and Description |
|---|---|
| public |
| lineOffset | back to summary |
|---|---|
| public int lineOffset The start offset of the | |
| lineText | back to summary |
|---|---|
| public String lineText Text used to calculate the segments | |
| segments | back to summary |
|---|---|
| public int[] segments Text ranges that should be treated as separate segments (e.g. for bidi reordering) | |
| segmentsChars | back to summary |
|---|---|
| public char[] segmentsChars Characters to be used in the segment boundaries (optional) | |
| serialVersionUID | back to summary |
|---|---|
| pack-priv static final long serialVersionUID | |
| SegmentEvent | back to summary |
|---|---|
| public SegmentEvent(Event e) | |