public interface ITextViewer
IDocument
. The document is used as the
widget's text model.
It supports the following kinds of listeners:
activatePlugins
call. Most plug-ins can be
defined per content type. Content types are derived from a partitioning of
the text viewer's input document. In case of documents that support multiple
partitionings, the implementer is responsible for determining the
partitioning to use.
A text viewer also provides the concept of event consumption. Events handled
by the viewer can be filtered and processed by a dynamic event consumer. With
ITextViewerExtension
, this mechanism has been
replaced with the support for
VerifyKeyListener
.
A text viewer provides several text editing functions, some of them are
configurable, through a text operation target interface. It also supports a
presentation mode in which it only shows a specified section of its document.
By calling setVisibleRegion
clients define which section is
visible. Clients can get access to this section by calling
getVisibleRegion
. The viewer's presentation mode does not
affect any client of the viewer other than text listeners. With
ITextViewerExtension5
the visible region
support has been reworked. With that extension interface, text viewers are
allowed to show fractions of their input document. I.e. a widget selection of
two visually neighboring characters is no longer guaranteed to be two
neighboring characters in the viewer's input document. Thus, viewers
implementing ITextViewerExtension5
are
potentially forced to change the fractions of the input document that are
shown when clients ask for the visible region.
In order to provide backward compatibility for clients of
ITextViewer
, extension interfaces are used as a means of
evolution. The following extension interfaces exist:
ITextViewerExtension
since version 2.0
replacing the event consumer mechanism and introducing the concept of rewrite
targets and means to manage the viewer's redraw behaviorITextViewerExtension2
since version 2.1
adding a way to invalidate a viewer's presentation and setters for hovers.
ITextViewerExtension3
since version 2.1
which itself was replaced by
ITextViewerExtension5
in version 3.0ITextViewerExtension4
since version 3.0
introducing focus handling for widget token keepers and the concept of text
presentation listeners.ITextViewerExtension5
since version 3.0
extending the visible region concept with explicit handling and conversion
of widget and model coordinates.ITextViewerExtension6
since version 3.1
extending the text viewer with the ability to detect hyperlinks and access the undo manager.ITextViewerExtension7
since version 3.3
extending the text viewer with the ability to install tabs to spaces conversion.ITextViewerExtension8
since version 3.4
extending the text viewer with the ability to print and rich hover support.
Clients may implement this interface and its extension interfaces or use the
standard implementation TextViewer
.
Modifier and Type | Method and Description |
---|---|
void |
activatePlugins()
Activates the installed plug-ins.
|
void |
addTextInputListener(ITextInputListener listener)
Adds a text input listener to this viewer.
|
void |
addTextListener(ITextListener listener)
Adds a text listener to this viewer.
|
void |
addViewportListener(IViewportListener listener)
Adds the given view port listener to this viewer.
|
void |
changeTextPresentation(TextPresentation presentation,
boolean controlRedraw)
Applies the color information encoded in the given text presentation.
|
int |
getBottomIndex()
Returns the visible line with the highest line number.
|
int |
getBottomIndexEndOffset()
Returns the document offset of the lower right
corner of this viewer's view port.
|
IDocument |
getDocument()
Returns the text viewer's input document.
|
IFindReplaceTarget |
getFindReplaceTarget()
Returns the find/replace operation target of this viewer.
|
Point |
getSelectedRange()
Returns the range of the current selection in coordinates of this viewer's document.
|
ISelectionProvider |
getSelectionProvider()
Returns a selection provider dedicated to this viewer.
|
ITextOperationTarget |
getTextOperationTarget()
Returns the text operation target of this viewer.
|
StyledText |
getTextWidget()
Returns this viewer's SWT control,
null if the control is disposed. |
int |
getTopIndex()
Returns the visible line with the smallest line number.
|
int |
getTopIndexStartOffset()
Returns the document offset of the upper left corner of this viewer's view port.
|
int |
getTopInset()
Returns the vertical offset of the first visible line.
|
IRegion |
getVisibleRegion()
Returns the current visible region of this viewer's document.
|
void |
invalidateTextPresentation()
Marks the currently applied text presentation as invalid.
|
boolean |
isEditable()
Returns whether the shown text can be manipulated.
|
boolean |
overlapsWithVisibleRegion(int offset,
int length)
Returns whether a given range overlaps with the visible region of this
viewer's document.
|
void |
removeTextInputListener(ITextInputListener listener)
Removes the given listener from this viewer's set of text input listeners.
|
void |
removeTextListener(ITextListener listener)
Removes the given listener from this viewer's set of text listeners.
|
void |
removeViewportListener(IViewportListener listener)
Removes the given listener from this viewer's set of view port listeners.
|
void |
resetPlugins()
Resets the installed plug-ins.
|
void |
resetVisibleRegion()
Resets the region of this viewer's document which is visible in the presentation.
|
void |
revealRange(int offset,
int length)
Ensures that the given range is visible.
|
void |
setAutoIndentStrategy(IAutoIndentStrategy strategy,
String contentType)
Deprecated.
|
void |
setDefaultPrefixes(String[] defaultPrefixes,
String contentType)
Sets the strings that are used as prefixes when lines of the given content type
are prefixed using the prefix text operation.
|
void |
setDocument(IDocument document)
Sets the given document as the text viewer's model and updates the
presentation accordingly.
|
void |
setDocument(IDocument document,
int modelRangeOffset,
int modelRangeLength)
Sets the given document as this viewer's model and
exposes the specified region.
|
void |
setEditable(boolean editable)
Sets the editable state.
|
void |
setEventConsumer(IEventConsumer consumer)
Registers an event consumer with this viewer.
|
void |
setIndentPrefixes(String[] indentPrefixes,
String contentType)
Sets the strings that are used as prefixes when lines of the given content type
are shifted using the shift text operation.
|
void |
setSelectedRange(int offset,
int length)
Sets the selection to the specified range.
|
void |
setTextColor(Color color)
Applies the given color as text foreground color to this viewer's
selection.
|
void |
setTextColor(Color color,
int offset,
int length,
boolean controlRedraw)
Applies the given color as text foreground color to the specified section
of this viewer.
|
void |
setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy,
String contentType)
Sets this viewer's text double click strategy for the given content type.
|
void |
setTextHover(ITextHover textViewerHover,
String contentType)
Sets this viewer's text hover for the given content type.
|
void |
setTopIndex(int index)
Scrolls the widget so that the given index is the line
with the smallest line number of all visible lines.
|
void |
setUndoManager(IUndoManager undoManager)
Sets this viewer's undo manager.
|
void |
setVisibleRegion(int offset,
int length)
Defines and sets the region of this viewer's document which will be
visible in the presentation.
|
StyledText getTextWidget()
null
if the control is disposed.
Calling API directly on the widget can interfere with features provided by a text viewer. Clients who call API directly on the widget are responsible to resolve such conflicts on their side.
null
void setUndoManager(IUndoManager undoManager)
undoManager
- the new undo manager. null
is a valid argument.void setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy, String contentType)
strategy
- the new double click strategy. null
is a valid argument.contentType
- the type for which the strategy is registered@Deprecated void setAutoIndentStrategy(IAutoIndentStrategy strategy, String contentType)
ITextViewerExtension2.prependAutoEditStrategy(IAutoEditStrategy, String)
and
ITextViewerExtension2.removeAutoEditStrategy(IAutoEditStrategy, String)
insteadnull
any installed strategy for the
content type is removed. This method has been replaced by
ITextViewerExtension2.prependAutoEditStrategy(IAutoEditStrategy, String)
and
ITextViewerExtension2.removeAutoEditStrategy(IAutoEditStrategy, String)
.
It is now equivalent to
ITextViewerExtension2 extension= (ITextViewerExtension2) viewer; extension.removeAutoEditStrategy(oldStrategy, contentType); extension.prependAutoEditStrategy(strategy, contentType);
strategy
- the new auto indent strategy. null
is a
valid argument.contentType
- the type for which the strategy is registeredvoid setTextHover(ITextHover textViewerHover, String contentType)
This method has been replaced by ITextViewerExtension2.setTextHover(ITextHover, String, int)
.
It is now equivalent to
ITextViewerExtension2 extension= (ITextViewerExtension2) document; extension.setTextHover(textViewerHover, contentType, ITextViewerExtension2#DEFAULT_HOVER_STATE_MASK);
textViewerHover
- the new hover. null
is a valid
argument.contentType
- the type for which the hover is registeredvoid activatePlugins()
void resetPlugins()
IUndoManager
has been installed on this text viewer, the manager's list of remembered
text editing operations is removed.void addViewportListener(IViewportListener listener)
listener
- the listener to be addedvoid removeViewportListener(IViewportListener listener)
listener
- the listener to be removedvoid addTextListener(ITextListener listener)
listener
- the listener to be addedvoid removeTextListener(ITextListener listener)
listener
- the listener to be removedvoid addTextInputListener(ITextInputListener listener)
listener
- the listener to be addedvoid removeTextInputListener(ITextInputListener listener)
listener
- the listener to be removedvoid setDocument(IDocument document)
TextEvent
is
issued. This text event does not carry a related document event.document
- the viewer's new input document null
if noneIDocument getDocument()
null
if nonevoid setEventConsumer(IEventConsumer consumer)
VerifyKeyListener
management methods in ITextViewerExtension
.consumer
- the viewer's event consumer. null
is a
valid argument.void setEditable(boolean editable)
editable
- the editable stateboolean isEditable()
void setDocument(IDocument document, int modelRangeOffset, int modelRangeLength)
TextEvent
is issued. The text event does not carry a
related document event. This method is a convenience method for
setDocument(document);setVisibleRegion(offset, length)
.document
- the new input document or null
if nonemodelRangeOffset
- the offset of the model rangemodelRangeLength
- the length of the model rangevoid setVisibleRegion(int offset, int length)
offset
- the offset of the visible regionlength
- the length of the visible regionvoid resetVisibleRegion()
IRegion getVisibleRegion()
setVisibleRegion
if
the document has been modified since then. The visible region is supposed
to be a consecutive region in viewer's input document and every character
inside that region is supposed to visible in the viewer's widget.
Viewers implementing ITextViewerExtension5
may be forced to
change the fractions of the input document that are shown, in order to
fulfill this contract.
boolean overlapsWithVisibleRegion(int offset, int length)
Viewers implementing ITextViewerExtension5
may be forced to
change the fractions of the input document that are shown in order to
fulfill this request. This is because the overlap is supposed to be
without gaps.
offset
- the offsetlength
- the lengthtrue
if the specified range overlaps with the
visible regionvoid changeTextPresentation(TextPresentation presentation, boolean controlRedraw)
controlRedraw
tells this viewer whether it should take care of
redraw management or not. If, e.g., this call is one in a sequence of multiple
presentation calls, it is more appropriate to explicitly control redrawing at the
beginning and the end of the sequence.presentation
- the presentation to be applied to this viewercontrolRedraw
- indicates whether this viewer should manage redrawsvoid invalidateTextPresentation()
See ITextViewerExtension2.invalidateTextPresentation(int, int)
for a way to invalidate specific regions rather than the presentation as
a whole.
void setTextColor(Color color)
color
- the color to be appliedvoid setTextColor(Color color, int offset, int length, boolean controlRedraw)
controlRedraw
tells this viewer whether it
should take care of redraw management or not.color
- the color to be appliedoffset
- the offset of the range to be changedlength
- the length of the range to be changedcontrolRedraw
- indicates whether this viewer should manage redrawsITextOperationTarget getTextOperationTarget()
IFindReplaceTarget getFindReplaceTarget()
void setDefaultPrefixes(String[] defaultPrefixes, String contentType)
defaultPrefixes
- the prefixes to be usedcontentType
- the content type for which the prefixes are specifiedvoid setIndentPrefixes(String[] indentPrefixes, String contentType)
indentPrefixes
- the prefixes to be usedcontentType
- the content type for which the prefixes are specifiedvoid setSelectedRange(int offset, int length)
offset
- the offset of the selection rangelength
- the length of the selection range. A negative length places
the caret at the visual start of the selection.Point getSelectedRange()
Point
with x as the offset and y as the length of the current selectionISelectionProvider getSelectionProvider()
void revealRange(int offset, int length)
offset
- the offset of the range to be revealedlength
- the length of the range to be revealedvoid setTopIndex(int index)
index
- the line which should become the top most lineint getTopIndex()
int getTopIndexStartOffset()
int getBottomIndex()
int getBottomIndexEndOffset()
int getTopInset()
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.