Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.swt.custom
Interface StyledTextContent

All Known Subinterfaces:
IDocumentAdapter

public interface StyledTextContent

Clients may implement the StyledTextContent interface to provide a custom store for the StyledText widget content. The StyledText widget interacts with its StyledTextContent in order to access and update the text that is being displayed and edited in the widget. A custom content implementation can be set in the widget using the StyledText.setContent API.


Method Summary
 void addTextChangeListener ( TextChangeListener listener)
          Called by StyledText to add itself as an Observer to content changes.
 int getCharCount ()
          Return the number of characters in the content.
  String getLine (int lineIndex)
          Return the line at the given line index without delimiters.
 int getLineAtOffset (int offset)
          Return the line index at the given character offset.
 int getLineCount ()
          Return the number of lines.
  String getLineDelimiter ()
          Return the line delimiter that should be used by the StyledText widget when inserting new lines.
 int getOffsetAtLine (int lineIndex)
          Return the character offset of the first character of the given line.
  String getTextRange (int start, int length)
          Returns a string representing the content at the given range.
 void removeTextChangeListener ( TextChangeListener listener)
          Remove the specified text changed listener.
 void replaceTextRange (int start, int replaceLength, String text)
          Replace the text with "newText" starting at position "start" for a length of "replaceLength".
 void setText ( String text)
          Set text to "text".
 

Method Detail

addTextChangeListener

void addTextChangeListener(
TextChangeListener listener)
Called by StyledText to add itself as an Observer to content changes. See TextChangeListener for a description of the listener methods that are called when text changes occur.

Parameters:
listener - the listener
Throws:
IllegalArgumentException -
  • ERROR_NULL_ARGUMENT when listener is null

getCharCount

int getCharCount()
Return the number of characters in the content.

Returns:
the number of characters in the content.

getLine

String getLine(int lineIndex)
Return the line at the given line index without delimiters.

Parameters:
lineIndex - index of the line to return. Does not include delimiters of preceding lines. Index 0 is the first line of the content.
Returns:
the line text without delimiters

getLineAtOffset

int getLineAtOffset(int offset)
Return the line index at the given character offset.

Parameters:
offset - offset of the line to return. The first character of the document is at offset 0. An offset of getLength() is valid and should answer the number of lines.
Returns:
the line index. The first line is at index 0. If the character at offset is a delimiter character, answer the line index of the line that is delimited. For example, if text = "\r\n\r\n", and delimiter = "\r\n", then:
  • getLineAtOffset(0) == 0
  • getLineAtOffset(1) == 0
  • getLineAtOffset(2) == 1
  • getLineAtOffset(3) == 1
  • getLineAtOffset(4) == 2

getLineCount

int getLineCount()
Return the number of lines. Should answer 1 when no text is specified. The StyledText widget relies on this behavior for drawing the cursor.

Returns:
the number of lines. For example:
  • text value ==> getLineCount
  • null ==> 1
  • "" ==> 1
  • "a\n" ==> 2
  • "\n\n" ==> 3

getLineDelimiter

String getLineDelimiter()
Return the line delimiter that should be used by the StyledText widget when inserting new lines. New lines entered using key strokes and paste operations use this line delimiter. Implementors may use System.getProperty("line.separator") to return the platform line delimiter.

Returns:
the line delimiter that should be used by the StyledText widget when inserting new lines.

getOffsetAtLine

int getOffsetAtLine(int lineIndex)
Return the character offset of the first character of the given line.

NOTE: When there is no text (i.e., no lines), getOffsetAtLine(0) is a valid call that should return 0.

Parameters:
lineIndex - index of the line. The first line is at index 0.
Returns:
offset offset of the first character of the line. The first character of the document is at offset 0. The return value should include line delimiters. For example, if text = "\r\ntest\r\n" and delimiter = "\r\n", then:
  • getOffsetAtLine(0) == 0
  • getOffsetAtLine(1) == 2
  • getOffsetAtLine(2) == 8

getTextRange

String getTextRange(int start,
                    int length)
Returns a string representing the content at the given range.

Parameters:
start - the start offset of the text to return. Offset 0 is the first character of the document.
length - the length of the text to return
Returns:
the text at the given range

removeTextChangeListener

void removeTextChangeListener(
TextChangeListener listener)
Remove the specified text changed listener.

Parameters:
listener - the listener which should no longer be notified
Throws:
IllegalArgumentException -
  • ERROR_NULL_ARGUMENT when listener is null

replaceTextRange

void replaceTextRange(int start,
                      int replaceLength,
                      
String text)
Replace the text with "newText" starting at position "start" for a length of "replaceLength".

Implementors have to notify the TextChangeListeners that were added using addTextChangeListener before and after the content is changed. A TextChangingEvent has to be sent to the textChanging method before the content is changed and a TextChangedEvent has to be sent to the textChanged method after the content has changed. The text change that occurs after the TextChangingEvent has been sent has to be consistent with the data provided in the TextChangingEvent. This data will be cached by the widget and will be used when the TextChangedEvent is received.

The TextChangingEvent should be set as follows:

  • event.start = start of the replaced text
  • event.newText = text that is going to be inserted or empty String if no text will be inserted
  • event.replaceCharCount = length of text that is going to be replaced
  • event.newCharCount = length of text that is going to be inserted
  • event.replaceLineCount = number of lines that are going to be replaced
  • event.newLineCount = number of new lines that are going to be inserted
NOTE: newLineCount is the number of inserted lines and replaceLineCount is the number of deleted lines based on the change that occurs visually. For example:
  • (replaceText, newText) ==> (replaceLineCount, newLineCount)
  • ("", "\n") ==> (0, 1)
  • ("\n\n", "a") ==> (2, 0)
  • ("a", "\n\n") ==> (0, 2)
  • ("\n", "") ==> (1, 0)

Parameters:
start - start offset of text to replace, none of the offsets include delimiters of preceding lines, offset 0 is the first character of the document
replaceLength - length of text to replace
text - text to replace
See Also:
TextChangeListener

setText

void setText(
String text)
Set text to "text". Implementors have to send a TextChangedEvent to the textSet method of the TextChangeListeners that were added using addTextChangeListener.

Parameters:
text - the new text
See Also:
TextChangeListener

Eclipse Platform
Release 3.5

Guidelines for using Eclipse APIs.

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


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire