Eclipse Platform
Release 3.8

org.eclipse.swt.events
Class SegmentEvent

java.lang.Object
  extended by java.util.EventObject
      extended by org.eclipse.swt.internal.SWTEventObject
          extended by org.eclipse.swt.events.TypedEvent
              extended by org.eclipse.swt.events.SegmentEvent
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
BidiSegmentEvent

public class SegmentEvent
extends TypedEvent

This event is sent to SegmentListeners when a text content is to be modified. The segments field can be used in conjunction with the segmentsChars field or by itself. Setting only the segmentsChars field has no effect. When used by itself, the segments field specify text ranges that should be treated as separate segments.

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:

In addition, the first element may be set to zero and the last element may be set to the end of the line but this is not required. 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 segementsChars 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:

Since:
3.8
See Also:
Serialized Form

Field Summary
 int lineOffset
          The start offset of the lineText relative to text (always zero for single line widget)
 String lineText
          Text used to calculate the segments
 int[] segments
          Text ranges that should be treated as separate segments (e.g. for bidi reordering)
 char[] segmentsChars
          Characters to be used in the segment boundaries (optional)
 
Fields inherited from class org.eclipse.swt.events.TypedEvent
data, display, time, widget
 
Fields inherited from class java.util.EventObject
source
 
Constructor Summary
SegmentEvent(Event e)
           
 
Method Summary
 
Methods inherited from class org.eclipse.swt.events.TypedEvent
toString
 
Methods inherited from class java.util.EventObject
getSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

lineOffset

public int lineOffset
The start offset of the lineText relative to text (always zero for single line widget)


lineText

public String lineText
Text used to calculate the segments


segments

public int[] segments
Text ranges that should be treated as separate segments (e.g. for bidi reordering)


segmentsChars

public char[] segmentsChars
Characters to be used in the segment boundaries (optional)

Constructor Detail

SegmentEvent

public SegmentEvent(Event e)

Eclipse Platform
Release 3.8

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2013. All rights reserved.