Package org.eclipse.jface.text.source.projection

# Class ProjectionViewer

java.lang.Object
org.eclipse.jface.viewers.Viewer
org.eclipse.jface.text.TextViewer
org.eclipse.jface.text.source.SourceViewer
org.eclipse.jface.text.source.projection.ProjectionViewer

All Implemented Interfaces:
  `IEditingSupportRegistry`, `ITextOperationTarget`, `ITextOperationTargetExtension`, `ITextViewer`, `ITextViewerExtension`, `ITextViewerExtension2`, `ITextViewerExtension3`, `ITextViewerExtension4`, `ITextViewerExtension5`, `ITextViewerExtension6`, `ITextViewerExtension7`, `ITextViewerExtension8`, `ITextViewerExtension9`, `IWidgetTokenOwner`, `IWidgetTokenOwnerExtension`, `ISourceViewer`, `ISourceViewerExtension`, `ISourceViewerExtension2`, `ISourceViewerExtension3`, `ISourceViewerExtension4`, `ISourceViewerExtension5`, `IInputProvider`, `IInputSelectionProvider`, `IPostSelectionProvider`, `ISelectionProvider`

public class ProjectionViewer extends SourceViewer implements ITextViewerExtension5
A projection source viewer is a source viewer which supports multiple visible regions which can dynamically be changed.

A projection source viewer uses a `ProjectionDocumentManager` for the management of the visible document.

NOTE: The `ProjectionViewer` only supports projections that cover full lines.

This class should not be subclassed.

Since:
  3.0
Restriction:
  This class is not intended to be subclassed by clients.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.eclipse.jface.text.source.SourceViewer

`SourceViewer.RulerLayout`

## Nested classes/interfaces inherited from class org.eclipse.jface.text.TextViewer

`TextViewer.TextHoverKey, TextViewer.WidgetCommand`

## Nested classes/interfaces inherited from interface org.eclipse.jface.text.ITextViewerExtension8

`ITextViewerExtension8.EnrichMode`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`COLLAPSE`
Operation constant for the collapse operation.
`static final int`
`COLLAPSE_ALL`
Operation constant for the collapse all operation.
`static final int`
`EXPAND`
Operation constant for the expand operation.
`static final int`
`EXPAND_ALL`
Operation constant for the expand all operation.
`static final int`
`TOGGLE`
Operation constant for the toggle projection operation.

### Fields inherited from class org.eclipse.jface.text.source.SourceViewer

`_SELECTION_POSITION_CATEGORY, fAnnotationHover, fContentAssistant, fContentAssistantInstalled, fContentFormatter, fInformationPresenter, fOverviewRulerAnnotationHover, fPresentationReconciler, fQuickAssistAssistant, fQuickAssistAssistantInstalled, fReconciler, fSelectionCategory, fSelections, fSelectionUpdater, GAP_SIZE, GAP_SIZE_1, MODEL_ANNOTATION_MODEL`

### Fields inherited from class org.eclipse.jface.text.TextViewer

`fAutoIndentStrategies, fDefaultPrefixChars, fDoubleClickStrategies, fEventConsumer, fFindReplaceDocumentAdapter, fHoverControlCreator, fHyperlinkDetectors, fHyperlinkManager, fHyperlinkPresenter, fHyperlinkStateMask, fIgnoreAutoIndent, fIndentChars, fInformationMapping, fLastTopPixel, fMarkPosition, fPaintManager, fPartitioning, fReplaceTextPresentation, fTextHovers, fTextInputListeners, fTextListeners, fTextPresentationListeners, fUndoManager, fViewportListeners, INTERNAL, KEY, MOUSE, MOUSE_END, RESIZE, SCROLLER, SHIFTING, TRACE_ERRORS`

### Fields inherited from class org.eclipse.jface.viewers.Viewer

`WIDGET_DATA_KEY`

### Fields inherited from interface org.eclipse.jface.text.source.ISourceViewer

`CONTENTASSIST_CONTEXT_INFORMATION, CONTENTASSIST_PROPOSALS, FORMAT, INFORMATION, QUICK_ASSIST`

### Fields inherited from interface org.eclipse.jface.text.ITextOperationTarget

`COPY, CUT, DELETE, PASTE, PREFIX, PRINT, REDO, SELECT_ALL, SHIFT_LEFT, SHIFT_RIGHT, STRIP_PREFIX, UNDO`

### Fields inherited from interface org.eclipse.jface.text.ITextViewerExtension2

`DEFAULT_HOVER_STATE_MASK`

## Constructor Summary

Constructors
Constructor
Description
`ProjectionViewer(Composite parent, IVerticalRuler ruler, IOverviewRuler overviewRuler, boolean showsAnnotationOverview, int styles)`
Creates a new projection source viewer.

## Method Summary

Modifier and Type
Method
Description
`void`
`addProjectionListener(IProjectionListener listener)`
Adds a projection annotation listener to this viewer.
`boolean`
`canDoOperation(int operation)`
Returns whether the operation specified by the given operation code can be performed.
`IRegion`
`computeCollapsedRegion(Position position)`
Computes the region that must be collapsed when the given position is the position of an expanded projection annotation.
`Position`
`computeCollapsedRegionAnchor(Position position)`
Computes the collapsed region anchor for the given position.
`protected void`
`copyMarkedRegion(boolean delete)`
Copies/cuts the marked region.
`protected ISlaveDocumentManager`
`createSlaveDocumentManager()`
Creates a new slave document manager.
`protected IAnnotationModel`
`createVisualAnnotationModel(IAnnotationModel annotationModel)`
Creates the visual annotation model on top of the given annotation model.
`final void`
`disableProjection()`
Disables the projection mode.
`void`
`doOperation(int operation)`
Performs the operation specified by the operation code on the target.
`final void`
`enableProjection()`
Enables the projection mode.
`boolean`
`exposeModelRange(IRegion modelRange)`
Exposes the given model range.
`protected int`
`findAndSelect(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord, boolean regExSearch)`
Adheres to the contract of `IFindReplaceTargetExtension3.findAndSelect(int, String, boolean, boolean, boolean, boolean)`.
`protected int`
`findAndSelectInRange(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord, int rangeOffset, int rangeLength, boolean regExSearch)`
Adheres to the contract of `IFindReplaceTargetExtension3.findAndSelect(int, String, boolean, boolean, boolean, boolean)`.
`protected void`
`fireProjectionDisabled()`
Notifies all registered projection listeners that projection mode has been disabled.
`protected void`
`fireProjectionEnabled()`
Notifies all registered projection listeners that projection mode has been enabled.
`IRegion[]`
`getCoveredModelRanges(IRegion modelRange)`
Returns the maximal subranges of the given model range thus that there is no offset inside a subrange for which there is no image offset.
`protected FindReplaceDocumentAdapter`
`getFindReplaceDocumentAdapter()`
Returns the find/replace document adapter.
`ProjectionAnnotationModel`
`getProjectionAnnotationModel()`
Returns the projection annotation model.
`IRegion`
`getVisibleRegion()`
Returns the current visible region of this viewer's document.
`protected void`
`handleDispose()`
Frees all resources allocated by this viewer.
`protected void`
`handleVerifyEvent(VerifyEvent e)`
Handles the verify event issued by the viewer's text widget.
`protected void`
`handleVisibleDocumentAboutToBeChanged(DocumentEvent event)`
Hook method called when the visible document is about to be changed.
`protected void`
`handleVisibleDocumentChanged(DocumentEvent event)`
Hook method called when the visible document has been changed.
`final boolean`
`isProjectionMode()`
Returns whether this viewer is in projection mode.
`boolean`
`overlapsWithVisibleRegion(int offset, int length)`
Returns whether a given range overlaps with the visible region of this viewer's document.
`protected final void`
`postCatchupRequest(AnnotationModelEvent event)`
Posts the request for catch up with the annotation model into the UI thread.
`protected final void`
`processCatchupRequest(AnnotationModelEvent event)`
Processes the request for catch up with the annotation model in the UI thread.
`final void`
`reinitializeProjection()`
Forces this viewer to throw away any old state and to initialize its content from its projection annotation model.
`void`
`removeProjectionListener(IProjectionListener listener)`
Removes the given listener from this viewer.
`void`
`resetVisibleRegion()`
Resets the region of this viewer's document which is visible in the presentation.
`void`
`setDocument(IDocument document, IAnnotationModel annotationModel, int modelRangeOffset, int modelRangeLength)`
Sets the given document as this viewer's text model and the given annotation model as the model for this viewer's visual annotations.
`void`
`setProjectionSummary(org.eclipse.jface.text.source.projection.ProjectionSummary projectionSummary)`
Sets the projection summary for this viewer.
`void`
`setRangeIndication(int offset, int length, boolean moveCursor)`
Sets the viewers's range indication to the specified range.
`protected void`
`setVisibleDocument(IDocument document)`
Sets this viewer's visible document.
`void`
`setVisibleRegion(int start, int length)`
Defines and sets the region of this viewer's document which will be visible in the presentation.
`protected boolean`
`updateSlaveDocument(IDocument slaveDocument, int modelRangeOffset, int modelRangeLength)`
Updates the given slave document to show the specified range of its master document.
`protected Point`
`widgetSelection2ModelSelection(Point widgetSelection)`
Adapts the behavior of the super class to respect line based folding.

### Methods inherited from class org.eclipse.jface.text.source.SourceViewer

`activatePlugins, addVerticalRulerColumn, clearRememberedSelection, configure, createControl, createFormattingContext, createFormattingContext, createLayout, disposeVisualAnnotationModel, enableOperation, ensureAnnotationHoverManagerInstalled, ensureOverviewHoverManagerInstalled, getAnnotationModel, getContentAssistantFacade, getControl, getCurrentAnnotationHover, getQuickAssistAssistant, getQuickAssistInvocationContext, getRangeIndication, getVerticalRuler, getVisualAnnotationModel, hasCodeMiningProviders, rememberSelection, removeRangeIndication, removeVerticalRulerColumn, restoreSelection, setAnnotationHover, setCodeMiningAnnotationPainter, setCodeMiningProviders, setDocument, setDocument, setDocument, setHoverEnrichMode, setOverviewRulerAnnotationHover, setRangeIndicator, showAnnotations, showAnnotationsOverview, unconfigure, updateCodeMinings, updateSlaveDocuments`

### Methods inherited from class org.eclipse.jface.text.TextViewer

`_getVisibleRegionOffset, _internalGetVisibleRegion, addPainter, addPostSelectionChangedListener, addTextInputListener, addTextListener, addTextPresentationListener, addViewportListener, appendVerifyKeyListener, areMultipleLinesSelected, canPerformFind, changeTextPresentation, createDocumentAdapter, createSlaveDocument, createTextWidget, customizeDocumentCommand, deleteText, disableRedrawing, enabledRedrawing, enabledRedrawing, event2ModelRange, findAndSelect, fireInputDocumentAboutToBeChanged, fireInputDocumentChanged, firePostSelectionChanged, fireSelectionChanged, freeSlaveDocument, getAverageCharWidth, getBottomIndex, getBottomIndexEndOffset, getClosestWidgetLineForModelLine, getCurrentTextHover, getDocument, getDocumentPartitioning, getEmptySelectionChangedEventDelay, getExtent, getFindReplaceTarget, getHoverEventLocation, getInput, getLastKnownSelection, getMark, getModelCoverage, getPaintManager, getRegisteredSupports, getRewriteTarget, getSelectedRange, getSelection, getSelectionProvider, getSlaveDocumentManager, getTextHover, getTextHover, getTextHoveringController, getTextOperationTarget, getTextWidget, getTopIndex, getTopIndexStartOffset, getTopInset, getUndoManager, getVisibleDocument, getVisibleLinesInViewport, getWidthInPixels, getWidthInPixels, ignoreAutoEditStrategies, initializeDocumentInformationMapping, inputChanged, internalRevealRange, invalidateTextPresentation, invalidateTextPresentation, isBlockSelected, isEditable, isIgnoringAutoEditStrategies, isPrintable, markChanged, modelLine2WidgetLine, modelOffset2WidgetOffset, modelRange2ClosestWidgetRange, modelRange2WidgetRange, modelRange2WidgetRange, modelSelection2WidgetSelection, modelStyleRange2WidgetStyleRange, moveFocusToWidgetToken, prependAutoEditStrategy, prependVerifyKeyListener, print, print, redraws, refresh, register, releaseWidgetToken, removeAutoEditStrategy, removePainter, removePostSelectionChangedListener, removeTextHovers, removeTextInputListener, removeTextListener, removeTextPresentationListener, removeVerifyKeyListener, removeViewportListener, requestWidgetToken, requestWidgetToken, resetPlugins, revealRange, selectContentTypePlugin, selectionChanged, setAutoEditStrategies, setAutoIndentStrategy, setDefaultPrefixes, setDocumentPartitioning, setEditable, setEventConsumer, setHoverControlCreator, setHyperlinkDetectors, setHyperlinkPresenter, setIndentPrefixes, setInput, setMark, setRedraw, setRedraw, setSelectedRange, setSelection, setTabsToSpacesConverter, setTextColor, setTextColor, setTextDoubleClickStrategy, setTextHover, setTextHover, setTopIndex, setUndoManager, shift, shift, startSequentialRewriteMode, stopSequentialRewriteMode, unregister, updateTextListeners, updateViewportListeners, updateVisibleDocument, validateSelectionRange, widgetLine2ModelLine, widgetLineOfWidgetOffset, widgetlLine2ModelLine, widgetOffset2ModelOffset, widgetRange2ModelRange`

### Methods inherited from class org.eclipse.jface.viewers.Viewer

`addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, scrollDown, scrollUp, setData, setSelection`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.eclipse.jface.viewers.ISelectionProvider

`addSelectionChangedListener, removeSelectionChangedListener, setSelection`

### Methods inherited from interface org.eclipse.jface.text.ITextViewer

`addTextInputListener, addTextListener, addViewportListener, changeTextPresentation, getBottomIndex, getBottomIndexEndOffset, getDocument, getFindReplaceTarget, getSelectedRange, getSelectionProvider, getTextOperationTarget, getTextWidget, getTopIndex, getTopIndexStartOffset, getTopInset, invalidateTextPresentation, isEditable, removeTextInputListener, removeTextListener, removeViewportListener, resetPlugins, revealRange, setAutoIndentStrategy, setDefaultPrefixes, setEditable, setEventConsumer, setIndentPrefixes, setSelectedRange, setTextColor, setTextColor, setTextDoubleClickStrategy, setTextHover, setTopIndex, setUndoManager`

### Methods inherited from interface org.eclipse.jface.text.ITextViewerExtension3

`widgetlLine2ModelLine`

### Methods inherited from interface org.eclipse.jface.text.ITextViewerExtension5

`getModelCoverage, modelLine2WidgetLine, modelOffset2WidgetOffset, modelRange2WidgetRange, widgetLine2ModelLine, widgetLineOfWidgetOffset, widgetOffset2ModelOffset, widgetRange2ModelRange`

## Field Details

### EXPAND

public static final int EXPAND
Operation constant for the expand operation.

See Also:
  - Constant Field Values

### COLLAPSE

public static final int COLLAPSE
Operation constant for the collapse operation.

See Also:
  - Constant Field Values

### TOGGLE

public static final int TOGGLE
Operation constant for the toggle projection operation.

See Also:
  - Constant Field Values

### EXPAND_ALL

public static final int EXPAND_ALL
Operation constant for the expand all operation.

See Also:
  - Constant Field Values

### COLLAPSE_ALL

public static final int COLLAPSE_ALL
Operation constant for the collapse all operation.

Since:
  3.2
See Also:
  - Constant Field Values

## Constructor Details

### ProjectionViewer

public ProjectionViewer(Composite parent, IVerticalRuler ruler, IOverviewRuler overviewRuler, boolean showsAnnotationOverview, int styles)
Creates a new projection source viewer.

Parameters:
  `parent` - the SWT parent control
  `ruler` - the vertical ruler
  `overviewRuler` - the overview ruler
  `showsAnnotationOverview` - `true` if the overview ruler should be shown
  `styles` - the SWT style bits

## Method Details

### setProjectionSummary

public void setProjectionSummary(org.eclipse.jface.text.source.projection.ProjectionSummary projectionSummary)
Sets the projection summary for this viewer.

Parameters:
  `projectionSummary` - the projection summary.

### setDocument

public void setDocument(IDocument document, IAnnotationModel annotationModel, int modelRangeOffset, int modelRangeLength)
Description copied from interface: `ISourceViewer`
Sets the given document as this viewer's text model and the given annotation model as the model for this viewer's visual annotations. The presentation is accordingly updated whereby only the specified region is exposed. An appropriate `TextEvent` is issued. The text event does not carry a related document event. This method is a convenience method for `setDocument(document, annotationModel);setVisibleRegion(offset, length)`.

Specified by:
  `setDocument` in interface `ISourceViewer`
Overrides:
  `setDocument` in class `SourceViewer`
Parameters:
  `document` - the new input document
  `annotationModel` - the model of the viewer's visual annotations
  `modelRangeOffset` - the offset of the model range
  `modelRangeLength` - the length of the model range
See Also:
  - `ITextViewer.setDocument(IDocument, int, int)`

### createVisualAnnotationModel

protected IAnnotationModel createVisualAnnotationModel(IAnnotationModel annotationModel)
Description copied from class: `SourceViewer`
Creates the visual annotation model on top of the given annotation model.

Overrides:
  `createVisualAnnotationModel` in class `SourceViewer`
Parameters:
  `annotationModel` - the wrapped annotation model
Returns:
  the visual annotation model on top of the given annotation model

### getProjectionAnnotationModel

public ProjectionAnnotationModel getProjectionAnnotationModel()
Returns the projection annotation model.

Returns:
  the projection annotation model

### createSlaveDocumentManager

protected ISlaveDocumentManager createSlaveDocumentManager()
Description copied from class: `TextViewer`
Creates a new slave document manager. This implementation always returns a `ChildDocumentManager`.

Overrides:
  `createSlaveDocumentManager` in class `TextViewer`
Returns:
  ISlaveDocumentManager

### updateSlaveDocument

protected boolean updateSlaveDocument(IDocument slaveDocument, int modelRangeOffset, int modelRangeLength) throws BadLocationException
Description copied from class: `TextViewer`
Updates the given slave document to show the specified range of its master document.

Overrides:
  `updateSlaveDocument` in class `TextViewer`
Parameters:
  `slaveDocument` - the slave document
  `modelRangeOffset` - the offset of the master document range
  `modelRangeLength` - the length of the master document range
Returns:
  `true` if the slave has been adapted successfully
Throws:
  `BadLocationException` - in case the specified range is not valid in the master document

### addProjectionListener

public void addProjectionListener(IProjectionListener listener)
Adds a projection annotation listener to this viewer. The listener may not be `null`. If the listener is already registered, this method does not have any effect.

Parameters:
  `listener` - the listener to add

### removeProjectionListener

public void removeProjectionListener(IProjectionListener listener)
Removes the given listener from this viewer. The listener may not be `null`. If the listener is not registered with this viewer, this method is without effect.

Parameters:
  `listener` - the listener to remove

### fireProjectionEnabled

protected void fireProjectionEnabled()
Notifies all registered projection listeners that projection mode has been enabled.

### fireProjectionDisabled

protected void fireProjectionDisabled()
Notifies all registered projection listeners that projection mode has been disabled.

### isProjectionMode

public final boolean isProjectionMode()
Returns whether this viewer is in projection mode.

Returns:
  `true` if this viewer is in projection mode, `false` otherwise

### disableProjection

public final void disableProjection()
Disables the projection mode.

### enableProjection

public final void enableProjection()
Enables the projection mode.

### setVisibleRegion

public void setVisibleRegion(int start, int length)
Description copied from interface: `ITextViewer`
Defines and sets the region of this viewer's document which will be visible in the presentation. Every character inside the specified region is supposed to be visible in the viewer's widget after that call.

Specified by:
  `setVisibleRegion` in interface `ITextViewer`
Overrides:
  `setVisibleRegion` in class `TextViewer`
Parameters:
  `start` - the offset of the visible region
  `length` - the length of the visible region

### setVisibleDocument

protected void setVisibleDocument(IDocument document)
Description copied from class: `TextViewer`
Sets this viewer's visible document. The visible document represents the visible region of the viewer's input document.

Overrides:
  `setVisibleDocument` in class `TextViewer`
Parameters:
  `document` - the visible document

### resetVisibleRegion

public void resetVisibleRegion()
Description copied from interface: `ITextViewer`
Resets the region of this viewer's document which is visible in the presentation. Afterwards, the whole input document is visible.

Specified by:
  `resetVisibleRegion` in interface `ITextViewer`
Overrides:
  `resetVisibleRegion` in class `TextViewer`

### getVisibleRegion

public IRegion getVisibleRegion()
Description copied from interface: `ITextViewer`
Returns the current visible region of this viewer's document. The result may differ from the argument passed to `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.

Specified by:
  `getVisibleRegion` in interface `ITextViewer`
Overrides:
  `getVisibleRegion` in class `TextViewer`
Returns:
  this viewer's current visible region

### overlapsWithVisibleRegion

public boolean overlapsWithVisibleRegion(int offset, int length)
Description copied from interface: `ITextViewer`
Returns whether a given range overlaps with the visible region of this viewer's document.

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.

Specified by:
  `overlapsWithVisibleRegion` in interface `ITextViewer`
Overrides:
  `overlapsWithVisibleRegion` in class `TextViewer`
Parameters:
  `offset` - the offset
  `length` - the length
Returns:
  `true` if the specified range overlaps with the visible region

### processCatchupRequest

protected final void processCatchupRequest(AnnotationModelEvent event)
Processes the request for catch up with the annotation model in the UI thread. If the current thread is not the UI thread or there are pending catch up requests, a new request is posted.

Parameters:
  `event` - the annotation model event

### postCatchupRequest

protected final void postCatchupRequest(AnnotationModelEvent event)
Posts the request for catch up with the annotation model into the UI thread.

Parameters:
  `event` - the annotation model event

### computeCollapsedRegion

public IRegion computeCollapsedRegion(Position position)
Computes the region that must be collapsed when the given position is the position of an expanded projection annotation.

Parameters:
  `position` - the position
Returns:
  the range that must be collapsed

### computeCollapsedRegionAnchor

public Position computeCollapsedRegionAnchor(Position position)
Computes the collapsed region anchor for the given position. Assuming that the position is the position of an expanded projection annotation, the anchor is the region that is still visible after the projection annotation has been collapsed.

Parameters:
  `position` - the position
Returns:
  the collapsed region anchor

### reinitializeProjection

public final void reinitializeProjection() throws BadLocationException
Forces this viewer to throw away any old state and to initialize its content from its projection annotation model.

Throws:
  `BadLocationException` - in case something goes wrong during initialization

### handleVerifyEvent

protected void handleVerifyEvent(VerifyEvent e)
Description copied from class: `TextViewer`
Handles the verify event issued by the viewer's text widget.

Overrides:
  `handleVerifyEvent` in class `TextViewer`
Parameters:
  `e` - the verify event
See Also:
  - `VerifyListener.verifyText(VerifyEvent)`

### exposeModelRange

public boolean exposeModelRange(IRegion modelRange)
Description copied from interface: `ITextViewerExtension5`
Exposes the given model range. Returns whether this call caused a change of the set of exposed model ranges.

Specified by:
  `exposeModelRange` in interface `ITextViewerExtension5`
Parameters:
  `modelRange` - the model range to be exposed
Returns:
  `true` if the set of exposed model ranges changed, `false` otherwise

### setRangeIndication

public void setRangeIndication(int offset, int length, boolean moveCursor)
Description copied from interface: `ISourceViewer`
Sets the viewers's range indication to the specified range. It is indicated whether the cursor should also be moved to the beginning of the specified range.

Specified by:
  `setRangeIndication` in interface `ISourceViewer`
Overrides:
  `setRangeIndication` in class `SourceViewer`
Parameters:
  `offset` - the offset of the range
  `length` - the length of the range
  `moveCursor` - indicates whether the cursor should be moved to the given offset

### handleDispose

protected void handleDispose()
Description copied from class: `TextViewer`
Frees all resources allocated by this viewer. Internally called when the viewer's control has been disposed.

Overrides:
  `handleDispose` in class `SourceViewer`

### handleVisibleDocumentChanged

protected void handleVisibleDocumentChanged(DocumentEvent event)
Description copied from class: `TextViewer`
Hook method called when the visible document has been changed.

Subclasses may override.

Overrides:
  `handleVisibleDocumentChanged` in class `TextViewer`
Parameters:
  `event` - the document event

### handleVisibleDocumentAboutToBeChanged

protected void handleVisibleDocumentAboutToBeChanged(DocumentEvent event)
Description copied from class: `TextViewer`
Hook method called when the visible document is about to be changed.

Subclasses may override.

Overrides:
  `handleVisibleDocumentAboutToBeChanged` in class `TextViewer`
Parameters:
  `event` - the document event

### getCoveredModelRanges

public IRegion[] getCoveredModelRanges(IRegion modelRange)
Description copied from interface: `ITextViewerExtension5`
Returns the maximal subranges of the given model range thus that there is no offset inside a subrange for which there is no image offset.

Specified by:
  `getCoveredModelRanges` in interface `ITextViewerExtension5`
Parameters:
  `modelRange` - the model range
Returns:
  the list of subranges

### doOperation

public void doOperation(int operation)
Description copied from interface: `ITextOperationTarget`
Performs the operation specified by the operation code on the target. `doOperation` must only be called if `canDoOperation` returns `true`.

Specified by:
  `doOperation` in interface `ITextOperationTarget`
Overrides:
  `doOperation` in class `SourceViewer`
Parameters:
  `operation` - the operation code

### canDoOperation

public boolean canDoOperation(int operation)
Description copied from interface: `ITextOperationTarget`
Returns whether the operation specified by the given operation code can be performed.

Specified by:
  `canDoOperation` in interface `ITextOperationTarget`
Overrides:
  `canDoOperation` in class `SourceViewer`
Parameters:
  `operation` - the operation code
Returns:
  `true` if the specified operation can be performed

### copyMarkedRegion

protected void copyMarkedRegion(boolean delete)
Description copied from class: `TextViewer`
Copies/cuts the marked region.

Overrides:
  `copyMarkedRegion` in class `TextViewer`
Parameters:
  `delete` - `true` if the region should be deleted rather than copied.

### widgetSelection2ModelSelection

protected Point widgetSelection2ModelSelection(Point widgetSelection)
Adapts the behavior of the super class to respect line based folding.

Overrides:
  `widgetSelection2ModelSelection` in class `TextViewer`
Parameters:
  `widgetSelection` - the widget selection
Returns:
  the model selection while respecting line based folding

### getFindReplaceDocumentAdapter

protected FindReplaceDocumentAdapter getFindReplaceDocumentAdapter()
Description copied from class: `TextViewer`
Returns the find/replace document adapter.

Overrides:
  `getFindReplaceDocumentAdapter` in class `TextViewer`
Returns:
  the find/replace document adapter.

### findAndSelect

protected int findAndSelect(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord, boolean regExSearch)
Description copied from class: `TextViewer`
Adheres to the contract of `IFindReplaceTargetExtension3.findAndSelect(int, String, boolean, boolean, boolean, boolean)`.

Overrides:
  `findAndSelect` in class `TextViewer`
Parameters:
  `startPosition` - the start position
  `findString` - the find string specification
  `forwardSearch` - the search direction
  `caseSensitive` - `true` if case sensitive, `false` otherwise
  `wholeWord` - `true` if matches must be whole words, `false` otherwise
  `regExSearch` - `true` if `findString` is a regular expression, `false` otherwise
Returns:
  the model offset of the first match

### findAndSelectInRange

protected int findAndSelectInRange(int startPosition, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord, int rangeOffset, int rangeLength, boolean regExSearch)
Description copied from class: `TextViewer`
Adheres to the contract of `IFindReplaceTargetExtension3.findAndSelect(int, String, boolean, boolean, boolean, boolean)`.

Overrides:
  `findAndSelectInRange` in class `TextViewer`
Parameters:
  `startPosition` - the start position
  `findString` - the find string specification
  `forwardSearch` - the search direction
  `caseSensitive` - `true` if case sensitive, `false` otherwise
  `wholeWord` - `true` if matches must be whole words, `false` otherwise
  `rangeOffset` - the search scope offset
  `rangeLength` - the search scope length
  `regExSearch` - `true` if `findString` is a regular expression, `false` otherwise
Returns:
  the model offset of the first match