LPEX
4.4.0

com.ibm.lpex.alef
Class LpexTextViewer

java.lang.Object
  extended by Viewer
      extended by com.ibm.lpex.alef.LpexTextViewer
Direct Known Subclasses:
LpexSourceViewer

public class LpexTextViewer
extends Viewer

A line-oriented, LPEX-based partial implementation of org.eclipse.jface.text.ITextViewer.

This viewer supports a split window of several views on the document. Its main control is an LpexMultiWindow. The first LpexWindow opened is the primary window, and its associated LpexView is the primary view. Additional windows opened in this viewer are secondary windows, and their associated LpexViews are secondary views. The focus window is the one which currently has the input focus. The active window is that which has the input focus, or otherwise had it lately and will be given the input focus when this viewer regains focus. Views on the same document external to this viewer are not managed in here.

Like TextViewer, once this viewer and its text widget have been created, the viewer can only indirectly be disposed by disposing its primary SWT control (the LpexMultiWindow). Clients are supposed to instantiate a text viewer and subsequently to communicate with it exclusively using the ITextViewer interface or any of the implemented extension interfaces.

A text viewer serves as text operation target. It only partially supports the external control of the enable state of its text operations.

A text viewer is also a widget token owner. Anything that wants to display an overlay window on top of a text viewer should implement the IWidgetTokenKeeper interface, and participate in the widget token negotiation between the text viewer and all its potential widget token keepers.

This class is not intended to be subclassed outside the LPEX component.

Several TextViewer classes, methods, and fields are not available in LpexTextViewer. Most programming of the underlying LPEX widget should be done directly via its LpexView and LpexWindow.

Always use LpexView to set the text of the edited document. For example:

 
 IEditorPart editor = IWorkbenchPage.getActiveEditor();
 // (a) Using LPEX
 if (editor instanceof LpexTextEditor)
  {
   LpexTextEditor lpexEditor = (LpexTextEditor)editor;
   LpexView lpexView = lpexEditor.getLpexView();
   if (lpexView != null)
    {
     lpexView.doDefaultCommand("insertText " + text); // insert text at cursor 
     LpexView.doGlobalCommand("screenShow");          // refresh display
    }
  }
 // (b) Using the Eclipse editor
 else
  {
   // . . . get DocumentProvider, get IDocument, do replace()
  } 

TextViewer classes, methods, and fields which are not available, not implemented, or whose function differs significantly in LpexTextViewer are listed below, along with explanations and any LPEX alternatives. While the list is rather long, it should be noted that several (such as those geared towards specific Eclipse solutions, like the shift-string operations, or those specific to the underlying StyledText) are indicated for completeness, even if their visibility is package or private.

Other notable differences:

See Also:
getLpexView(), getFirstLpexView(), getLpexWindow(), getFirstLpexWindow()

Nested Class Summary
protected static class LpexTextViewer.TextHoverKey
          Value object used as a key in the text hover configuration table.
 
Field Summary
protected  IInformationControlCreator fHoverControlCreator
          The creator of the text hover control
protected  IHyperlinkDetector[] fHyperlinkDetectors
          The text viewer's hyperlink detectors.
protected  LpexHyperlinkManager fHyperlinkManager
          The text viewer's hyperlink manager.
protected  IHyperlinkPresenter fHyperlinkPresenter
          The text viewer's hyperlink presenter.
protected  int fHyperlinkStateMask
          The SWT key modifier mask which in combination with the left mouse button triggers the hyperlink mode.
protected  IDocumentInformationMapping fInformationMapping
          The mapping between model and visible document.
protected  String fPartitioning
          The viewers partitioning, i.e., the partitioning name the viewer uses to access partitioning information of its input document.
protected  Map<LpexTextViewer.TextHoverKey,ITextHover> fTextHovers
          The text viewer's text hovers.
protected  List<ITextInputListener> fTextInputListeners
          All registered text input listeners.
protected static int INTERNAL
          Id for originator of a viewport change.
protected static int KEY
          Id for originator of a viewport change.
protected static int MOUSE
          Id for originator of a viewport change.
protected static int MOUSE_END
          Id for originator of a viewport change.
protected static int RESIZE
          Id for originator of a viewport change.
protected static int SCROLLER
          Id for originator of a viewport change.
static boolean TRACE_ERRORS
           
 
Constructor Summary
protected LpexTextViewer()
          Internal-use constructor.
  LpexTextViewer(Composite parent, int styles)
          Creates an LpexTextViewer with the given SWT style bits.
 
Method Summary
protected  int _getVisibleRegionOffset()
          This method always returns 0.
protected  IRegion _internalGetVisibleRegion()
          This method returns null.
 void activatePlugins()
          Activates the installed TextViewer 'plugins'.
 void addPostSelectionChangedListener(ISelectionChangedListener listener)
           
 void addTextInputListener(ITextInputListener listener)
          Adds a text input listener to the ITextViewer.
 void addTextListener(ITextListener listener)
          The implementation of this method does nothing.
 void addTextPresentationListener(ITextPresentationListener listener)
           
 void addViewportListener(IViewportListener listener)
          This method does nothing.
 void appendVerifyKeyListener(VerifyKeyListener listener)
          The LpexTextViewer implementation of this method does nothing.
 boolean canDoOperation(int operation)
          Returns whether the action specified by the operation id can be performed.
 void changeTextPresentation(TextPresentation presentation, boolean controlRedraw)
          This method does nothing.
protected  void createControl(Composite parent, int styles)
          Creates the viewer's SWT control.
protected  com.ibm.lpex.alef.DocumentAdapter createDocumentAdapter()
          Factory method to create the document adapter to be used by this viewer.
protected  IDocument createSlaveDocument(IDocument document)
          Creates a slave document for the given document if there is a slave document manager associated with this viewer.
protected  ISlaveDocumentManager createSlaveDocumentManager()
          Creates a new slave document manager.
 void doOperation(int operation)
          Performs the action specified by the operation id.
 void enableOperation(int operation, boolean enable)
           
protected  void fireInputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput)
          Informs all registered text input listeners about the forthcoming input change.
protected  void fireInputDocumentChanged(IDocument oldInput, IDocument newInput)
          Informs all registered text input listeners about the successful input change.
protected  void fireSelectionChanged(int offset, int len)
          Sends out a text selection changed event to all registered listeners.
protected  void freeSlaveDocument(IDocument slave)
          Frees the given document if it is a slave document.
 LpexView getActiveLpexView()
          Returns the active view of the underlying LPEX text widget.
 LpexWindow getActiveLpexWindow()
          Returns the active window of the underlying LPEX text widget.
protected  int getAverageCharWidth(LpexWindow lpexWindow)
          Returns the average character width in the specified text window of this viewer's widget.
 int getBottomIndex()
          Return the ZERO-based index of the visible document-section line with the highest line number.
 int getBottomIndexEndOffset()
          Returns the character position which is at the lower-right corner of the widget's viewport, i.e., the visible character with the highest character position.
protected  int getClosestWidgetLineForModelLine(int modelLine)
          Returns the line of the widget whose corresponding line in the viewer's document is closest to the given line in the viewer's document or -1.
 Control getControl()
          Returns the primary SWT Control (an LpexMultiWindow) associated with this viewer.
 int getCurrentOffset()
          Returns the cursor offset in the active document view, in coordinates of this viewer's document.
 ITextHover getCurrentTextHover()
           
 int getDocOffset(LpexDocumentLocation documentLocation)
          Returns the offset in IDocument for the given location defined inside the document section currently loaded in LPEX.
 IDocument getDocument()
          Returns this text viewer's stream-oriented IDocument.
protected  String getDocumentPartitioning()
          Returns the document partitioning for this viewer.
 IFindReplaceTarget getFindReplaceTarget()
          This method returns null.
 LpexView getFirstLpexView()
          Returns the primary view of the underlying LPEX text widget.
 LpexWindow getFirstLpexWindow()
          Returns the primary window of the underlying LPEX text widget.
 Point getHoverEventLocation()
           
 Object getInput()
          Returns the input (IDocument) of this viewer.
 LpexDocumentLocation getLpexDocumentLocation(int offset)
          Returns the location inside the document section currently loaded in LPEX for the given offset in IDocument.
 LpexMultiWindow getLpexMultiWindow()
          Returns the underlying LPEX text widget multiwindow.
 LpexView getLpexView()
          Returns the focus view of the underlying LPEX text widget, or the primary view if none.
 LpexWindow getLpexWindow()
          Returns the window of the underlying LPEX text widget that has the focus, or else the primary window.
 int getMark()
          The LpexTextViewer implementation of this method returns -1.
 IRegion getModelCoverage()
          Implements the contract of ITextViewerExtension5#getModelCoverage().
 IEditingSupport[] getRegisteredSupports()
           
 IRewriteTarget getRewriteTarget()
           
 Point getSelectedRange()
          Returns the range of the current selection / cursor position in the active document view, in coordinates of this viewer's document.
 ISelection getSelection()
          Returns the current selection in this viewer's active document view.
 ISelectionProvider getSelectionProvider()
           
protected  ISlaveDocumentManager getSlaveDocumentManager()
          Returns the slave document manager.
 LpexAbstractTextEditor getTextEditor()
           
protected  ITextHover getTextHover(int offset)
          Return the text hover for a given offset in the IDocument, according to the document content type / document-parser language at that offset.
protected  ITextHover getTextHover(int offset, int stateMask)
          Returns the text hover for a given offset and a given state mask.
protected  AbstractInformationControlManager getTextHoveringController()
          Return the text hovering controller of this viewer.
 ITextOperationTarget getTextOperationTarget()
          Return the text-operations target of this viewer.
 StyledText getTextWidget()
          This method returns null.
 int getTopIndex()
          Return the ZERO-based index of the visible document-section line with the smallest line number.
 int getTopIndexStartOffset()
          This method returns -1.
 int getTopInset()
          Return the vertical offset, in pixels, of the text-widget screen's primary window.
 IUndoManager getUndoManager()
          This method returns null in LpexTextViewer.
 IDocument getVisibleDocument()
          Returns the viewer's visible document.
protected  int getVisibleLinesInViewport()
          Deprecated. Deprecated in Eclipse as of 3.2
 IRegion getVisibleRegion()
          This method returns the region of this viewer's input document.
protected  void handleDispose()
          Frees all the resources allocated by this viewer.
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.
protected  void initializeDocumentInformationMapping(IDocument visibleDocument)
          Initializes the document information mapping between the given slave document and its master document.
protected  void initializeLpexView(LpexView lpexView)
          Hook to initialize a newly instantiated primary or secondary LpexView.
 void invalidateTextPresentation()
          This method does nothing.
 void invalidateTextPresentation(int offset, int length)
          This method does nothing.
 boolean isEditable()
          Query whether the shown text can be manipulated.
 int modelLine2WidgetLine(int modelLine)
          Implements the contract of ITextViewerExtension5#modelLine2WidgetLine(int).
 int modelOffset2WidgetOffset(int modelOffset)
          Implements the contract of ITextViewerExtension5#modelOffset2WidgetOffset(int).
protected  IRegion modelRange2ClosestWidgetRange(IRegion modelRange)
          Similar to modelRange2WidgetRange(IRegion), but more forgiving: if modelRange describes a region entirely hidden in the image, then this method returns the zero-length region at the offset of the folded region.
 IRegion modelRange2WidgetRange(IRegion modelRange)
          Implements the contract of ITextViewerExtension5#modelRange2WidgetRange(IRegion).
protected  IRegion modelRange2WidgetRange(Position modelPosition)
          Same as modelRange2WidgetRange(IRegion) but for a Position.
protected  Point modelSelection2WidgetSelection(Point modelSelection)
          Translates the given selection range of the viewer's document into the corresponding widget range or returns null of this fails.
 boolean moveFocusToWidgetToken()
           
 boolean overlapsWithVisibleRegion(int start, int length)
          This method always returns true.
 void prependAutoEditStrategy(IAutoEditStrategy strategy, String contentType)
          This method does nothing.
 void prependVerifyKeyListener(VerifyKeyListener listener)
          The LpexTextViewer implementation of this method does nothing.
 void print(StyledTextPrintOptions options)
           
protected  boolean redraws()
          The LpexTextViewer implementation of this method returns true.
 void refresh()
          Refreshes this viewer completely with information freshly obtained from this viewer's model (its IDocument).
 void register(IEditingSupport helper)
           
 void releaseWidgetToken(IWidgetTokenKeeper tokenKeeper)
           
 void removeAutoEditStrategy(IAutoEditStrategy strategy, String contentType)
          This method does nothing.
 void removePostSelectionChangedListener(ISelectionChangedListener listener)
           
 void removeTextHovers(String contentType)
          Removes all text hovers for the given content type independent from their state mask.
 void removeTextInputListener(ITextInputListener listener)
          Removes the text input listener from the ITextViewer.
 void removeTextListener(ITextListener listener)
          The implementation of this method does nothing.
 void removeTextPresentationListener(ITextPresentationListener listener)
           
 void removeVerifyKeyListener(VerifyKeyListener listener)
          The LpexTextViewer implementation of this method does nothing.
 void removeViewportListener(IViewportListener listener)
          This method does nothing.
 boolean requestWidgetToken(IWidgetTokenKeeper requester)
           
 boolean requestWidgetToken(IWidgetTokenKeeper requester, int priority)
           
 void resetPlugins()
          Resets the installed 'plugins'.
 void resetVisibleRegion()
          This method does nothing.
 void revealRange(int start, int len)
          Ensures the given character range is visible in the active document view.
protected  Object selectContentTypePlugin(int offset, Map<?,?> plugins)
          Select from the given map the plug-in which is registered under the content type at the given document offset.
protected  void selectionChanged(int offset, int len)
          Sends out a text selection-changed event to all registered listeners.
protected  void setAutoEditStrategies(IAutoEditStrategy[] strategies, String contentType)
          This method does nothing.
 void setAutoIndentStrategy(IAutoIndentStrategy strategy, String contentType)
          This method does nothing.
 void setDefaultPrefixes(String[] defaultPrefixes, String contentType)
          This method does nothing in LpexTextViewer.
 void setDocument(IDocument document)
          Sets the given IDocument as the text viewer's model, and update 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 setDocumentPartitioning(String partitioning)
          Sets the document partitioning of this viewer.
 void setEditable(boolean editable)
          Sets the editable state for this text viewer.
protected  void setEditorInput(IEditorInput editorInput)
          Indicate which is the editor-input resource for this text viewer.
 void setEventConsumer(IEventConsumer consumer)
          This method does nothing.
 void setHoverControlCreator(IInformationControlCreator creator)
          Set the creator for the hover controls.
 void setHoverEnrichMode(ITextViewerExtension8.EnrichMode mode)
           
 void setHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors, int eventStateMask)
           
 void setHyperlinkPresenter(IHyperlinkPresenter hyperlinkPresenter)
          Sets the hyperlink presenter.
 void setIndentPrefixes(String[] indentPrefixes, String contentType)
          This method does nothing.
 void setInput(Object input)
          Sets or clears the input (IDocument) for this viewer.
 void setMark(int offset)
          The LpexTextViewer implementation of this method does nothing.
 void setRedraw(boolean redraw)
          The LpexTextViewer implementation of this method does nothing.
protected  void setRedraw(boolean redraw, int topIndex)
          The LpexTextViewer implementation of this method does nothing.
 void setSelectedRange(int selectionOffset, int selectionLength)
          Sets the selection to the specified range in the active document view.
 void setSelection(ISelection selection, boolean reveal)
          Sets a new selection for this viewer.
 void setTextColor(Color color)
          This method does nothing.
 void setTextColor(Color color, int start, int length, boolean controlRedraw)
          This method does nothing.
 void setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy, String contentType)
          This method does nothing in LpexTextViewer.
 void setTextHover(ITextHover hover, String contentType)
          Sets this viewer's text hover for the given content type.
 void setTextHover(ITextHover hover, String contentType, int stateMask)
          Sets this viewer's text hover for the given content type and the given state mask.
 void setTopIndex(int index)
          Scrolls the edit window so that ZERO-based index is the smallest document-section line number of all visible lines.
 void setUndoManager(IUndoManager undoManager)
          This method does nothing in LpexTextViewer.
protected  void setVisibleDocument(IDocument document)
          Sets this viewer's visible document.
 void setVisibleRegion(int start, int len)
          This method does nothing.
 LpexView splitView(LpexView lpexView)
          Creates a new view of the document in this text viewer's window.
 void unregister(IEditingSupport helper)
           
protected  void updateProfile(LpexView lpexView)
          Hook for post-updateProfile command processing.
protected  boolean updateSlaveDocument(IDocument slaveDocument, int modelRangeOffset, int modelRangeLength)
          Updates the given slave document to show the specified range of its master document.
protected  void updateViewportListeners(int origin)
          This method does nothing.
protected  void validateSelectionRange(int[] selectionRange)
          Validates and adapts the given selection range if it is not a valid widget selection.
 int widgetLine2ModelLine(int widgetLine)
          Implements the contract of ITextViewerExtension5#widgetLine2ModelLine(int).
 int widgetLineOfWidgetOffset(int widgetOffset)
          Implements the contract of ITextViewerExtension5#widgetLineOfWidgetOffset(int).
 int widgetlLine2ModelLine(int widgetLine)
          Implements the contract of ITextViewerExtension5#widgetLine2ModelLine(int).
 int widgetOffset2ModelOffset(int widgetOffset)
          Implements the contract of ITextViewerExtension5#widgetOffset2ModelOffset(int).
 IRegion widgetRange2ModelRange(IRegion widgetRange)
          Implements the contract of ITextViewerExtension5#widgetRange2ModelRange(IRegion).
protected  Point widgetSelection2ModelSelection(Point widgetSelection)
          Translates the given widget selection into the corresponding region of the viewer's document or returns null if this fails.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRACE_ERRORS

public static final boolean TRACE_ERRORS
See Also:
Constant Field Values

SCROLLER

protected static final int SCROLLER
Id for originator of a viewport change.

See Also:
Constant Field Values

MOUSE

protected static final int MOUSE
Id for originator of a viewport change.

See Also:
Constant Field Values

MOUSE_END

protected static final int MOUSE_END
Id for originator of a viewport change.

See Also:
Constant Field Values

KEY

protected static final int KEY
Id for originator of a viewport change.

See Also:
Constant Field Values

RESIZE

protected static final int RESIZE
Id for originator of a viewport change.

See Also:
Constant Field Values

INTERNAL

protected static final int INTERNAL
Id for originator of a viewport change.

See Also:
Constant Field Values

fTextHovers

protected Map<LpexTextViewer.TextHoverKey,ITextHover> fTextHovers
The text viewer's text hovers.


fTextInputListeners

protected List<ITextInputListener> fTextInputListeners
All registered text input listeners.


fHoverControlCreator

protected IInformationControlCreator fHoverControlCreator
The creator of the text hover control


fInformationMapping

protected IDocumentInformationMapping fInformationMapping
The mapping between model and visible document.


fPartitioning

protected String fPartitioning
The viewers partitioning, i.e., the partitioning name the viewer uses to access partitioning information of its input document.


fHyperlinkDetectors

protected IHyperlinkDetector[] fHyperlinkDetectors
The text viewer's hyperlink detectors.


fHyperlinkPresenter

protected IHyperlinkPresenter fHyperlinkPresenter
The text viewer's hyperlink presenter.


fHyperlinkManager

protected LpexHyperlinkManager fHyperlinkManager
The text viewer's hyperlink manager.


fHyperlinkStateMask

protected int fHyperlinkStateMask
The SWT key modifier mask which in combination with the left mouse button triggers the hyperlink mode.

Constructor Detail

LpexTextViewer

protected LpexTextViewer()
Internal-use constructor. This constructor is the one called by the extending class LpexSourceViewer; afterwards, methods createControl(), setEditorInput(), and setDocument() will be called.


LpexTextViewer

public LpexTextViewer(Composite parent,
                      int styles)
Creates an LpexTextViewer with the given SWT style bits. The viewer's text widget (consisting of an LpexMultiWindow, and the primary LpexView and LpexWindow) is created.

Parameters:
parent - the parent of the viewer's control
styles - the SWT style bits for the viewer's control (LpexWindow)
See Also:
createControl(Composite, int)
Method Detail

getTextEditor

public LpexAbstractTextEditor getTextEditor()

createDocumentAdapter

protected com.ibm.lpex.alef.DocumentAdapter createDocumentAdapter()
Factory method to create the document adapter to be used by this viewer.

LpexTextViewer creates a com.ibm.lpex.alef.DocumentAdapter, which is used to translate IDocument changes into LPEX document text changes, and vice versa. TextViewer creates an org.eclipse.jface.text.DefaultDocumentAdapter, which adapts an IDocument to the StyledTextContent interface.

Returns:
the document adapter to be used

createControl

protected void createControl(Composite parent,
                             int styles)
Creates the viewer's SWT control. The viewer's text widget is either the control, or is a child of the control. The contents of the text widget will be set later, on setDocument().

Here are the steps carried out by this method:

The user must add their own LPEX actions and commands by extending updateProfile(LpexView), which is called when we are notified of the completion of the updateProfile command.

Parameters:
parent - the parent of the viewer's control
styles - the SWT style bits for the viewer's control
See Also:
initializeLpexView(com.ibm.lpex.core.LpexView), updateProfile(LpexView)

splitView

public LpexView splitView(LpexView lpexView)
Creates a new view of the document in this text viewer's window.

Parameters:
lpexView - source document view
Returns:
the new view on the document, or
null if the current window could not be split for a new document view

getControl

public Control getControl()
Returns the primary SWT Control (an LpexMultiWindow) associated with this viewer.

See Also:
Viewer

activatePlugins

public void activatePlugins()
Activates the installed TextViewer 'plugins'. If the plugins (text hover, hyperlink manager, etc.) are already activated, this call is without effect.

Defined by ITextViewer, as part of its plugins support.

See Also:
ITextViewer

resetPlugins

public void resetPlugins()
Resets the installed 'plugins'. If 'plugins' change their state or behavior over the course of time, this method causes them to be set back to their initial state and behavior.

See Also:
ITextViewer

handleDispose

protected void handleDispose()
Frees all the resources allocated by this viewer. Internally called when this viewer's primary control (LpexMultiWindow) has been disposed.


getTextWidget

public StyledText getTextWidget()
This method returns null. In TextViewer, this method returns the StyledText control, its underlying text widget.

Note: Do not use this method in LpexTextViewer. LpexTextViewer uses an LPEX text widget, which consists of an LpexMultiWindow (an SWT SashForm) and its LpexWindow(s) and LpexView(s), rather than a StyledText widget.

Returns:
null
See Also:
ITextViewer, getLpexWindow(), getFirstLpexWindow(), getLpexView(), getFirstLpexView()

setAutoIndentStrategy

public void setAutoIndentStrategy(IAutoIndentStrategy strategy,
                                  String contentType)
This method does nothing.


setAutoEditStrategies

protected final void setAutoEditStrategies(IAutoEditStrategy[] strategies,
                                           String contentType)
This method does nothing.


prependAutoEditStrategy

public void prependAutoEditStrategy(IAutoEditStrategy strategy,
                                    String contentType)
This method does nothing.


removeAutoEditStrategy

public void removeAutoEditStrategy(IAutoEditStrategy strategy,
                                   String contentType)
This method does nothing.


setEventConsumer

public void setEventConsumer(IEventConsumer consumer)
This method does nothing.

In TextViewer, implementers can register and receive VerifyEvents before the text viewer touches them. If the IEventConsumer marks an event as processed, the text viewer will ignore it. For example, keys consumed by a content-assist popup should not be again processed by us (this is not quite AWT's e.consume(), but that's the way Eclipse operates).

See Also:
ITextViewer

setIndentPrefixes

public void setIndentPrefixes(String[] indentPrefixes,
                              String contentType)
This method does nothing. LPEX does not currently support the Eclipse shift operations.

In TextViewer, this method sets the strings that are used as prefixes when lines of the given content type are shifted using the shift operations. Defined by ITextViewer, as part of its plugins support.

See Also:
ITextViewer

getTopInset

public int getTopInset()
Return the vertical offset, in pixels, of the text-widget screen's primary window.

See Also:
ITextViewer

isEditable

public boolean isEditable()
Query whether the shown text can be manipulated. Preferred method: use the LPEX readonly parameter.

See Also:
ITextViewer

setEditable

public void setEditable(boolean editable)
Sets the editable state for this text viewer.

See Also:
ITextViewer, isEditable(), updateProfile(LpexView)

setDefaultPrefixes

public void setDefaultPrefixes(String[] defaultPrefixes,
                               String contentType)
This method does nothing in LpexTextViewer. LPEX does not currently support the prefix and strip-prefix operations.

Defined by ITextViewer, as part of its plugins support.

See Also:
ITextViewer

setUndoManager

public void setUndoManager(IUndoManager undoManager)
This method does nothing in LpexTextViewer. LPEX uses its own built-in undo manager, therefore it does not support IUndoManager.

Defined by ITextViewer, as part of its plugins support.

See Also:
ITextViewer

getUndoManager

public IUndoManager getUndoManager()
This method returns null in LpexTextViewer. LPEX uses its own built-in undo manager, therefore it does not support IUndoManager.

See Also:
ITextViewerExtension6

setTextHover

public void setTextHover(ITextHover hover,
                         String contentType)
Sets this viewer's text hover for the given content type. Defined by ITextViewer, as part of its plugins support.

Parameters:
hover - the new hover; null is a valid argument
contentType - the type for which the hover is registered
See Also:
ITextViewer

setTextHover

public void setTextHover(ITextHover hover,
                         String contentType,
                         int stateMask)
Sets this viewer's text hover for the given content type and the given state mask. If the given text hover is null, any hover installed for the given content type and state mask is removed.

Parameters:
hover - the new hover or null
contentType - the type for which the hover is to be registered or unregistered
stateMask - the SWT event state mask; DEFAULT_HOVER_STATE_MASK indicates that the hover is installed as the default hover
See Also:
ITextViewerExtension2

removeTextHovers

public void removeTextHovers(String contentType)
Removes all text hovers for the given content type independent from their state mask. Note: To remove a hover for a given content type and state mask use setTextHover(ITextHover, String, int) with null as parameter for the text hover.

Parameters:
contentType - the type for which all text hovers are to be unregistered
See Also:
ITextViewerExtension2

getTextHover

protected ITextHover getTextHover(int offset)
Return the text hover for a given offset in the IDocument, according to the document content type / document-parser language at that offset.

Parameters:
offset - the IDocument offset for which to return the text hover
Returns:
the text hover for the given offset

getTextHover

protected ITextHover getTextHover(int offset,
                                  int stateMask)
Returns the text hover for a given offset and a given state mask.

Parameters:
offset - the offset for which to return the text hover
stateMask - the SWT event state mask
Returns:
the text hover for the given offset and state mask

getTextHoveringController

protected AbstractInformationControlManager getTextHoveringController()
Return the text hovering controller of this viewer.


setHoverControlCreator

public void setHoverControlCreator(IInformationControlCreator creator)
Set the creator for the hover controls.

Parameters:
creator - the hover control creator

requestWidgetToken

public boolean requestWidgetToken(IWidgetTokenKeeper requester)

requestWidgetToken

public boolean requestWidgetToken(IWidgetTokenKeeper requester,
                                  int priority)

releaseWidgetToken

public void releaseWidgetToken(IWidgetTokenKeeper tokenKeeper)

getSelectedRange

public Point getSelectedRange()
Returns the range of the current selection / cursor position in the active document view, in coordinates of this viewer's document. Returns the start and length of the selection: x is the offset of the first selected character relative to the first character of the widget content, y is the length of the selection.

This method adjusts positions which are outside the current IDocument text. In LPEX the cursor, character/element/rectangle block positions, etc. can be located outside the actual line text and on show elements. Also note that the cursor position in LPEX is not necessarily a boundary of the current selection, unless the selection is of type stream. Use getCurrentOffset() to retrieve the cursor position for this viewer.

Returns:
the selected range {offset,length} inside IDocument if there is a selection in the active view, or
{offset,0} (the cursor position) if there is no selection, or
{-1,-1} if no text is visible in the active view
See Also:
getCurrentOffset()

setSelectedRange

public void setSelectedRange(int selectionOffset,
                             int selectionLength)
Sets the selection to the specified range in the active document view. Note that in LPEX the cursor is currently always visible (if there are visible elements).

Preferred method: use the block command or blockMark___ actions. To reposition the cursor, use the locate command and the position parameter.

See Also:
ITextViewer

getCurrentOffset

public int getCurrentOffset()
Returns the cursor offset in the active document view, in coordinates of this viewer's document.

In LPEX the cursor can be located outside the actual line text and on show elements. This method adjusts a position which is outside the current IDocument text.

Returns:
current offset inside IDocument, or -1
See Also:
getSelectedRange()

validateSelectionRange

protected void validateSelectionRange(int[] selectionRange)
Validates and adapts the given selection range if it is not a valid widget selection. The widget selection is invalid if it starts or ends inside a multi-character line delimiter. If so, the selection is adapted to start after the divided line delimiter and to end before the divided line delimiter. The parameter passed in is changed in-place when being adapted. An adaptation to [-1, -1] indicates that the selection range could not be validated.

Subclasses may reimplement this method.

Parameters:
selectionRange - selectionRange[0] is the offset, selectionRange[1] the length of the selection to validate.

setSelection

public void setSelection(ISelection selection,
                         boolean reveal)
Sets a new selection for this viewer.

To set selections in LPEX, use the block command or blockMark___ actions. To reposition the cursor, use the locate command and the position parameter.

See Also:
Viewer

getSelection

public ISelection getSelection()
Returns the current selection in this viewer's active document view.

In LPEX, this stream-oriented method is inefficient, and should be avoided.

See Also:
Viewer

getSelectionProvider

public ISelectionProvider getSelectionProvider()
See Also:
ITextViewer

addPostSelectionChangedListener

public void addPostSelectionChangedListener(ISelectionChangedListener listener)

removePostSelectionChangedListener

public void removePostSelectionChangedListener(ISelectionChangedListener listener)

selectionChanged

protected void selectionChanged(int offset,
                                int len)
Sends out a text selection-changed event to all registered listeners. Called on selection changes and/or cursor movements in the active document view.

Parameters:
offset - the offset of the newly selected range in the visible document
len - the length of the newly selected range in the visible document
See Also:
getSelectedRange(), getCurrentOffset()

fireSelectionChanged

protected void fireSelectionChanged(int offset,
                                    int len)
Sends out a text selection changed event to all registered listeners.

Parameters:
offset - the offset of the newly selected range in the visible document
len - the length of the newly selected range in the visible document

addTextListener

public void addTextListener(ITextListener listener)
The implementation of this method does nothing.

In TextViewer, this method adds a text listener to the text widget. A listener is registered only once, subsequent calls are without effect.

See Also:
ITextViewer

removeTextListener

public void removeTextListener(ITextListener listener)
The implementation of this method does nothing.

In TextViewer, this method removes the text listener from the text widget. If the listener is not registered with the widget, the call is without effect.

See Also:
ITextViewer

addTextInputListener

public void addTextInputListener(ITextInputListener listener)
Adds a text input listener to the ITextViewer. A listener is registered only once, subsequent calls are without effect.

Text input listeners registered with a text viewer are informed when the document serving as the text viewer's model is replaced.

See Also:
ITextViewer

removeTextInputListener

public void removeTextInputListener(ITextInputListener listener)
Removes the text input listener from the ITextViewer. If the listener is not registered with the viewer, the call is without effect.

See Also:
ITextViewer

fireInputDocumentAboutToBeChanged

protected void fireInputDocumentAboutToBeChanged(IDocument oldInput,
                                                 IDocument newInput)
Informs all registered text input listeners about the forthcoming input change.

Parameters:
oldInput - the old input document
newInput - the new input document

fireInputDocumentChanged

protected void fireInputDocumentChanged(IDocument oldInput,
                                        IDocument newInput)
Informs all registered text input listeners about the successful input change.

Parameters:
oldInput - the old input document
newInput - the new input document

getInput

public Object getInput()
Returns the input (IDocument) of this viewer.

See Also:
Viewer

getDocument

public IDocument getDocument()
Returns this text viewer's stream-oriented IDocument.

Defined by ITextViewer, as part of its model-manipulation support.

See Also:
ITextViewer

setInput

public void setInput(Object input)
Sets or clears the input (IDocument) for this viewer.

See Also:
Viewer

setDocument

public void setDocument(IDocument document)
Sets the given IDocument as the text viewer's model, and update the presentation accordingly. An appropriate TextEvent is issued. The text event does not carry a related document event, though.

Defined by ITextViewer, as part of its model-manipulation support.

See Also:
ITextViewer

setDocument

public void setDocument(IDocument document,
                        int modelRangeOffset,
                        int modelRangeLength)
Sets the given document as this viewer's model and exposes the specified region. Convenience method for
   setDocument(document);
   setVisibleRegion(offset, length); 

Defined by ITextViewer as part of its visible-region support.

See Also:
ITextViewer, setDocument(IDocument)

createSlaveDocument

protected IDocument createSlaveDocument(IDocument document)
Creates a slave document for the given document if there is a slave document manager associated with this viewer.

Parameters:
document - the master document
Returns:
the newly created slave document

updateSlaveDocument

protected boolean updateSlaveDocument(IDocument slaveDocument,
                                      int modelRangeOffset,
                                      int modelRangeLength)
                               throws BadLocationException
Updates the given slave document to show the specified range of its master document.

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

addViewportListener

public void addViewportListener(IViewportListener listener)
This method does nothing.

See Also:
ITextViewer

removeViewportListener

public void removeViewportListener(IViewportListener listener)
This method does nothing.

See Also:
ITextViewer

updateViewportListeners

protected void updateViewportListeners(int origin)
This method does nothing.

In TextViewer, this method checks whether the viewport changed and, if so, informs all registered listeners about the change.

Parameters:
origin - describes under which circumstances this method has been called
See Also:
IViewportListener

getTopIndex

public int getTopIndex()
Return the ZERO-based index of the visible document-section line with the smallest line number.

See Also:
ITextViewer

setTopIndex

public void setTopIndex(int index)
Scrolls the edit window so that ZERO-based index is the smallest document-section line number of all visible lines.

Preferred method: in LPEX you may consider various options, depending on the intended usage. For example, to set the cursor in the edit window on a certain line in the document:

   LpexView lpexView = getLpexView();
   lpexView.doCommand("locate emphasis line " +
                      (index + 1 + lpexView.linesBeforeStart()));
   lpexView.triggerAction(lpexView.actionId("textWindow"));
To position the line that contains the cursor on a certain screen row:
   LpexView lpexView = getLpexView();
   lpexView.doCommand("set cursorRow " + row);
   lpexView.doDefaultCommand("screenShow");

You must consider certain characteristics of the LPEX edit window, such as:

See Also:
ITextViewer

getVisibleLinesInViewport

protected int getVisibleLinesInViewport()
Deprecated. Deprecated in Eclipse as of 3.2

Returns the number of lines that can fully fit in the viewport. The actual document lines displayed in the edit window may be fewer, when the document is shorter or some lines are not visible.

Preferred method: use getLpexView().queryInt("rows").

Returns:
the viewport height in lines

getBottomIndex

public int getBottomIndex()
Return the ZERO-based index of the visible document-section line with the highest line number.

See Also:
ITextViewer

getTopIndexStartOffset

public int getTopIndexStartOffset()
This method returns -1. In TextViewer, this method returns the character position which is at the upper-left corner of the widget's viewport.

See Also:
ITextViewer

getBottomIndexEndOffset

public int getBottomIndexEndOffset()
Returns the character position which is at the lower-right corner of the widget's viewport, i.e., the visible character with the highest character position. If the content of the widget is shorter, the last character of the content is returned.

See Also:
ITextViewer

revealRange

public void revealRange(int start,
                        int len)
Ensures the given character range is visible in the active document view.

Note that in LPEX the cursor is currently always visible. This method ensures that filtered elements at the start and end of the given range are expanded.

See Also:
ITextViewer

getAverageCharWidth

protected final int getAverageCharWidth(LpexWindow lpexWindow)
Returns the average character width in the specified text window of this viewer's widget.


refresh

public void refresh()
Refreshes this viewer completely with information freshly obtained from this viewer's model (its IDocument). The implementation of this method does a setDocument(getDocument());

See Also:
Viewer, setDocument(IDocument)

getSlaveDocumentManager

protected ISlaveDocumentManager getSlaveDocumentManager()
Returns the slave document manager.

Returns:
the slave document manager

createSlaveDocumentManager

protected ISlaveDocumentManager createSlaveDocumentManager()
Creates a new slave document manager. This implementation returns a ChildDocumentManager.

Returns:
ISlaveDocumentManager

invalidateTextPresentation

public final void invalidateTextPresentation()
This method does nothing. In TextViewer, this method invalidates the current presentation by sending an initialization event to all the text listeners.


invalidateTextPresentation

public final void invalidateTextPresentation(int offset,
                                             int length)
This method does nothing. In TextViewer, this method invalidates the given range of the text presentation by sending an initialization event to all the text listeners.

Parameters:
offset - the offset of the range to be invalidated
length - the length of the range to be invalidated

freeSlaveDocument

protected void freeSlaveDocument(IDocument slave)
Frees the given document if it is a slave document.

Parameters:
slave - the potential slave document

setVisibleDocument

protected void setVisibleDocument(IDocument document)
Sets this viewer's visible document. The visible document represents the visible region of the viewer's input document. In LPEX, the visible document (or currently-loaded document section) is always the viewer's entire input document.

Parameters:
document - the visible document

handleVisibleDocumentAboutToBeChanged

protected void handleVisibleDocumentAboutToBeChanged(DocumentEvent event)
Hook method called when the visible document is about to be changed. Subclasses may override.

Parameters:
event - the document event

handleVisibleDocumentChanged

protected void handleVisibleDocumentChanged(DocumentEvent event)
Hook method called when the visible document has been changed. Subclasses may override.

Parameters:
event - the document event

initializeDocumentInformationMapping

protected void initializeDocumentInformationMapping(IDocument visibleDocument)
Initializes the document information mapping between the given slave document and its master document.

Parameters:
visibleDocument - the slave document

getVisibleDocument

public IDocument getVisibleDocument()
Returns the viewer's visible document. The visible document represents the visible region of the viewer's input document. In LPEX, the visible document (or currently-loaded document section) is always the viewer's entire input document.

Returns:
the viewer's visible document

_getVisibleRegionOffset

protected int _getVisibleRegionOffset()
This method always returns 0. In LpexTextViewer, the visible document (or document section) is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attributes. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method returns the offset of the visible region.


getVisibleRegion

public IRegion getVisibleRegion()
This method returns the region of this viewer's input document. In LpexTextViewer, the visible document (or document section) is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attributes. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method returns the current visible region of this viewer's document. Defined by ITextViewer as part of its visible-region support.

See Also:
ITextViewer

setVisibleRegion

public void setVisibleRegion(int start,
                             int len)
This method does nothing. In LpexTextViewer, the visible document (or document section) is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attributes. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method sets the region of this viewer's document which will be visible in the presentation. It does this by defining a child document for this region, and setting it as the visible document for the text widget (i.e., reloading the text widgets with the contents of this child document). It is defined by ITextViewer as part of its visible-region support.

See Also:
ITextViewer

resetVisibleRegion

public void resetVisibleRegion()
This method does nothing. In LpexTextViewer, the visible document (or document section) is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attributes. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method resets the region of this viewer's document which is visible in the presentation, so that the whole document is presented again. It is defined by ITextViewer, as part of its visible-region support.

See Also:
ITextViewer

overlapsWithVisibleRegion

public boolean overlapsWithVisibleRegion(int start,
                                         int length)
This method always returns true. In LpexTextViewer, the visible document is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attribute. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method returns whether a given range overlaps with the visible region of this viewer's document. It is defined by ITextViewer, as part of its visible-region support.

See Also:
ITextViewer

setTextDoubleClickStrategy

public void setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy,
                                       String contentType)
This method does nothing in LpexTextViewer. LPEX has its own double-click actions, therefore it doesn't support ITextDoubleClickStrategy. Token/word selection and bracket matching can be customized via new LpexActions.

Defined by ITextViewer, as part of its plugins support.

See Also:
ITextViewer

selectContentTypePlugin

protected Object selectContentTypePlugin(int offset,
                                         Map<?,?> plugins)
Select from the given map the plug-in which is registered under the content type at the given document offset.

This method first checks for a plug-in for the IDocument content type (for example, IDocument.DEFAULT_CONTENT_TYPE) of the document partition in which the given offset is located. If none found, it checks for a plug-in registered for the LPEX document-parser language, as defined in LpexCommonParser.getLanguage(LpexDocumentLocation) (for example, LpexCommonParser.LANGUAGE_JAVA), as content type.

Parameters:
offset - the document offset for which to find the plug-in
plugins - the map from which to choose
Returns:
the plug-in registered under the offset's content type

canDoOperation

public boolean canDoOperation(int operation)
Returns whether the action specified by the operation id can be performed.

Note that most LPEX actions (as defined in, for example, LpexAbstractTextEditor) call the editor directly for querying their availability.

Parameters:
operation - LPEX-defined operation id (including the equivalents of ITextOperationTarget.UNDO, .REDO, etc.)
See Also:
ITextOperationTarget

doOperation

public void doOperation(int operation)
Performs the action specified by the operation id. This method may be called when canDoOperation() returns true.

Note that most LPEX actions (as defined in, for example, LpexAbstractTextEditor) call the editor directly.

Parameters:
operation - LPEX-defined operation id (including the equivalents of ITextOperationTarget.UNDO, .REDO, etc.)
See Also:
ITextOperationTarget

enableOperation

public void enableOperation(int operation,
                            boolean enable)

setTextColor

public void setTextColor(Color color)
This method does nothing. LPEX parsers set display attributes to text in the parsed document. Also, LPEX marks can be set with certain style, visibility, and protection attributes. See the mark and related editor parameters.

Defined by ITextViewer, as part of its presentation-manipulation support.

See Also:
ITextViewer

setTextColor

public void setTextColor(Color color,
                         int start,
                         int length,
                         boolean controlRedraw)
This method does nothing. LPEX parsers set display attributes to text in the parsed document. Also, LPEX marks can be set with certain style, visibility, and protection attributes. See the mark and related editor parameters.

Defined by ITextViewer, as part of its presentation-manipulation support.

See Also:
ITextViewer

_internalGetVisibleRegion

protected IRegion _internalGetVisibleRegion()
This method returns null. In LpexTextViewer, the visible document is always the viewer's (entire) input document. To display only certain region(s) of the document in the viewer, set marks for these regions, and set their included or excluded attribute. See the mark, markIncluded, and markExcluded parameters.

In TextViewer, this method returns the visible region if it is not equal to the whole document, or null if it is.


changeTextPresentation

public void changeTextPresentation(TextPresentation presentation,
                                   boolean controlRedraw)
This method does nothing. LPEX document parsers set display attributes to the text in the parsed document. Also, LPEX marks can be set with certain style, visibility, and protection attributes. See the mark and related parameters.

In TextViewer, this method applies in the text widget the color information of the specified text presentation.

Defined by ITextViewer, as part of its presentation-manipulation support.

See Also:
ITextViewer

getFindReplaceTarget

public IFindReplaceTarget getFindReplaceTarget()
This method returns null. LPEX implements its own findAndReplace actions.

Defined by ITextViewer, as part of its target-handling support.

See Also:
ITextViewer

getTextOperationTarget

public ITextOperationTarget getTextOperationTarget()
Return the text-operations target of this viewer.

Defined by ITextViewer, as part of its target-handling support.

See Also:
ITextViewer

appendVerifyKeyListener

public void appendVerifyKeyListener(VerifyKeyListener listener)
The LpexTextViewer implementation of this method does nothing.

See Also:
ITextViewerExtension

prependVerifyKeyListener

public void prependVerifyKeyListener(VerifyKeyListener listener)
The LpexTextViewer implementation of this method does nothing.

See Also:
ITextViewerExtension

removeVerifyKeyListener

public void removeVerifyKeyListener(VerifyKeyListener listener)
The LpexTextViewer implementation of this method does nothing.

See Also:
ITextViewerExtension

getMark

public int getMark()
The LpexTextViewer implementation of this method returns -1. This is part of ITextViewerExtension's emacs-like marked region support. LPEX implements its own emacs base profile.

See Also:
ITextViewerExtension

setMark

public void setMark(int offset)
The LpexTextViewer implementation of this method does nothing. This is part of ITextViewerExtension's emacs-like marked region support. LPEX implements its own emacs base profile.

See Also:
ITextViewerExtension

setRedraw

public final void setRedraw(boolean redraw)
The LpexTextViewer implementation of this method does nothing. LPEX refreshes its screen at the end of user operations, or when explicitly called to do it. See the screenShow editor command.

See Also:
ITextViewerExtension

setRedraw

protected final void setRedraw(boolean redraw,
                               int topIndex)
The LpexTextViewer implementation of this method does nothing. LPEX refreshes its screen at the end of user operations, or when explicitly called to do it. See the screenShow editor command.

In TextViewer, this method has basically the same functionality as ITextViewerExtension.setRedraw(boolean). Adds a way for subclasses to pass in a desired top index that should be used when redraw is true. If topIndex is -1, this method is identical to ITextViewerExtension.setRedraw(boolean).

Parameters:
redraw - redraw / suspend redrawing
topIndex - what pixel to position at the top of the text widget (when redrawing is reinstated)
See Also:
ITextViewerExtension

redraws

protected final boolean redraws()
The LpexTextViewer implementation of this method returns true. LPEX only refreshes its screen at the end of user operations, or when explicitly called to do it. See the screenShow editor command.

In TextViewer, the method returns true if this viewer redraws itself (i.e., redrawing is not temporarily suspended).

See Also:
setRedraw(boolean,int)

getRewriteTarget

public IRewriteTarget getRewriteTarget()

getCurrentTextHover

public ITextHover getCurrentTextHover()

getHoverEventLocation

public Point getHoverEventLocation()

modelLine2WidgetLine

public int modelLine2WidgetLine(int modelLine)
Implements the contract of ITextViewerExtension5#modelLine2WidgetLine(int).

Parameters:
modelLine - the model line
Returns:
the corresponding widget line or -1

modelOffset2WidgetOffset

public int modelOffset2WidgetOffset(int modelOffset)
Implements the contract of ITextViewerExtension5#modelOffset2WidgetOffset(int).

Parameters:
modelOffset - the model offset
Returns:
the corresponding widget offset or -1

modelRange2WidgetRange

public IRegion modelRange2WidgetRange(IRegion modelRange)
Implements the contract of ITextViewerExtension5#modelRange2WidgetRange(IRegion).

Parameters:
modelRange - the model range
Returns:
the corresponding widget range or null

modelRange2ClosestWidgetRange

protected IRegion modelRange2ClosestWidgetRange(IRegion modelRange)
Similar to modelRange2WidgetRange(IRegion), but more forgiving: if modelRange describes a region entirely hidden in the image, then this method returns the zero-length region at the offset of the folded region.

Parameters:
modelRange - the model range
Returns:
the corresponding widget range, or null

widgetlLine2ModelLine

public int widgetlLine2ModelLine(int widgetLine)
Implements the contract of ITextViewerExtension5#widgetLine2ModelLine(int).

Parameters:
widgetLine - the widget line
Returns:
the corresponding model line

widgetLine2ModelLine

public int widgetLine2ModelLine(int widgetLine)
Implements the contract of ITextViewerExtension5#widgetLine2ModelLine(int). Returns the line of the viewer's document that corresponds to the given widget line, or -1 if there is no such line.

Parameters:
widgetLine - the widget line
Returns:
the corresponding model line or -1

widgetOffset2ModelOffset

public int widgetOffset2ModelOffset(int widgetOffset)
Implements the contract of ITextViewerExtension5#widgetOffset2ModelOffset(int).

Parameters:
widgetOffset - the widget offset
Returns:
the corresponding model offset or -1

widgetRange2ModelRange

public IRegion widgetRange2ModelRange(IRegion widgetRange)
Implements the contract of ITextViewerExtension5#widgetRange2ModelRange(IRegion).

Parameters:
widgetRange - the widget range
Returns:
the corresponding model range or null

getModelCoverage

public IRegion getModelCoverage()
Implements the contract of ITextViewerExtension5#getModelCoverage().

Returns:
the model coverage

getClosestWidgetLineForModelLine

protected int getClosestWidgetLineForModelLine(int modelLine)
Returns the line of the widget whose corresponding line in the viewer's document is closest to the given line in the viewer's document or -1.

Parameters:
modelLine - the line in the viewer's document
Returns:
the line in the widget that corresponds best to the given line in the viewer's document or -1

modelRange2WidgetRange

protected IRegion modelRange2WidgetRange(Position modelPosition)
Same as modelRange2WidgetRange(IRegion) but for a Position.

Parameters:
modelPosition - the position describing a range in the viewer's document
Returns:
a region describing a range in the viewer's widget

widgetSelection2ModelSelection

protected Point widgetSelection2ModelSelection(Point widgetSelection)
Translates the given widget selection into the corresponding region of the viewer's document or returns null if this fails.

Parameters:
widgetSelection - the widget selection
Returns:
the region of the viewer's document corresponding to the widget selection or null

modelSelection2WidgetSelection

protected Point modelSelection2WidgetSelection(Point modelSelection)
Translates the given selection range of the viewer's document into the corresponding widget range or returns null of this fails.

Parameters:
modelSelection - the selection range of the viewer's document
Returns:
the widget range corresponding to the selection range or null

widgetLineOfWidgetOffset

public int widgetLineOfWidgetOffset(int widgetOffset)
Implements the contract of ITextViewerExtension5#widgetLineOfWidgetOffset(int).

Parameters:
widgetOffset - the widget offset
Returns:
the corresponding widget line or -1

moveFocusToWidgetToken

public boolean moveFocusToWidgetToken()

setDocumentPartitioning

public void setDocumentPartitioning(String partitioning)
Sets the document partitioning of this viewer. The partitioning is used by this viewer to access partitioning information of the viewer's input document.

Parameters:
partitioning - the partitioning name

getDocumentPartitioning

protected String getDocumentPartitioning()
Returns the document partitioning for this viewer.

Returns:
the document partitioning for this viewer

addTextPresentationListener

public void addTextPresentationListener(ITextPresentationListener listener)
Since:
4.2
See Also:
ITextViewerExtension4#addTextPresentationListener(ITextPresentationListener)

removeTextPresentationListener

public void removeTextPresentationListener(ITextPresentationListener listener)
Since:
4.2
See Also:
ITextViewerExtension4#removeTextPresentationListener(ITextPresentationListener)

register

public void register(IEditingSupport helper)

unregister

public void unregister(IEditingSupport helper)

getRegisteredSupports

public IEditingSupport[] getRegisteredSupports()

setHyperlinkDetectors

public void setHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors,
                                  int eventStateMask)

setHyperlinkPresenter

public void setHyperlinkPresenter(IHyperlinkPresenter hyperlinkPresenter)
                           throws IllegalStateException
Sets the hyperlink presenter. This is only valid as long as the hyperlink manager hasn't been created yet.

Parameters:
hyperlinkPresenter - the hyperlink presenter
Throws:
IllegalStateException - if the hyperlink manager has already been created

initializeLpexView

protected void initializeLpexView(LpexView lpexView)
Hook to initialize a newly instantiated primary or secondary LpexView.

Extend this method to set any file/view-specific parameters for this LpexView. Here you may set any "File Open" preferences page settings for your solution's plug-in, such as sequenceNumbers, sourceEncoding, save.textLimit, and save.trim. The updateProfile command will be called later.

Parameters:
lpexView - the newly instantiated primary or secondary document view

updateProfile

protected void updateProfile(LpexView lpexView)
Hook for post-updateProfile command processing. Override this method to define your own LPEX actions (and assign them to keys), and your own LPEX commands.

Called when a new document view is created (a new document is opened in this viewer), and whenever the updateProfile command is issued afterwards.

Parameters:
lpexView - the primary or secondary document view whose profile has been updated

setEditorInput

protected void setEditorInput(IEditorInput editorInput)
Indicate which is the editor-input resource for this text viewer. LPEX uses this to set its document name. The LPEX document name is used to e.g., determine the document parser activated on this document.

This method should be called prior to the setDocument() for this text viewer, and whenever the input changes for this text viewer.


getLpexMultiWindow

public LpexMultiWindow getLpexMultiWindow()
Returns the underlying LPEX text widget multiwindow.

Returns:
null if the text widget was not yet created, or was disposed

getLpexWindow

public LpexWindow getLpexWindow()
Returns the window of the underlying LPEX text widget that has the focus, or else the primary window.

Returns:
null if the text widget was not yet created, or was disposed

getFirstLpexWindow

public LpexWindow getFirstLpexWindow()
Returns the primary window of the underlying LPEX text widget.

Returns:
null if the text widget was not yet created, or was disposed

getActiveLpexWindow

public LpexWindow getActiveLpexWindow()
Returns the active window of the underlying LPEX text widget. The active window is that which has the input focus, or otherwise had it lately and will be given the input focus when this viewer regains focus.

Returns:
null if the text widget was not yet created, or was disposed

getLpexView

public LpexView getLpexView()
Returns the focus view of the underlying LPEX text widget, or the primary view if none.

Returns:
null if the text widget was not yet created, or was disposed

getFirstLpexView

public LpexView getFirstLpexView()
Returns the primary view of the underlying LPEX text widget.

Returns:
null if the text widget was not yet created, or was disposed

getActiveLpexView

public LpexView getActiveLpexView()
Returns the active view of the underlying LPEX text widget. The active view is that which has the input focus, or otherwise had it lately and will be given the input focus when this viewer regains focus.

Returns:
null if the text widget was not yet created, or was disposed

getLpexDocumentLocation

public LpexDocumentLocation getLpexDocumentLocation(int offset)
Returns the location inside the document section currently loaded in LPEX for the given offset in IDocument.

Parameters:
offset - ZERO-based offset in IDocument
Returns:
LPEX document location (element = inside the document section currently loaded in LPEX, position = inside the editable text part of the line)

getDocOffset

public int getDocOffset(LpexDocumentLocation documentLocation)
Returns the offset in IDocument for the given location defined inside the document section currently loaded in LPEX. This method adjusts LPEX positions which are outside the current IDocument text (in LPEX the cursor, character / element / rectangle block positions, etc. can be located outside the actual line text).

Parameters:
documentLocation - a document location (element = inside the document section currently loaded in LPEX, position = inside the editable text part of the line)
Returns:
ZERO-based offset in IDocument, or -1 for an incorrect document location

setHoverEnrichMode

public void setHoverEnrichMode(ITextViewerExtension8.EnrichMode mode)
Since:
4.2
See Also:
ITextViewerExtension8

print

public void print(StyledTextPrintOptions options)
Since:
4.2
See Also:
ITextViewerExtension8

LPEX
4.4.0

Copyright � 2016 IBM Corp. All Rights Reserved.

Note: This documentation is for part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.