Package org.eclipse.jface.text.source

## Interface IVerticalRuler

All Superinterfaces:
  `IVerticalRulerInfo`

All Known Subinterfaces:
  `IOverviewRuler`

All Known Implementing Classes:
  `CompositeRuler`, `OverviewRuler`, `VerticalRuler`

    public interface IVerticalRuler
    extends IVerticalRulerInfo

This interface defines a visual component which may serve text viewers as an annotation presentation area. Implementers of this interface have to define the presentation modus. This can either depend on the connected viewer's view port or not. If the modus is view port dependent the ruler only shows those annotations that are attached to document regions that are visible in the view port. If independent, the presented annotations can also be attached to invisible document regions. This interfaces comprises three contracts:

- The vertical ruler retrieves the annotations it presents from an annotation model.
- The ruler is a visual component which must be integrated in a hierarchy of SWT controls.
- The ruler provides interested clients with mapping and interaction information. This covers the mapping between coordinates of the ruler's control and line numbers based on the connected text viewer's document (see `IVerticalRulerInfo`).

In order to provide backward compatibility for clients of `IVerticalRuler`, extension interfaces are used as a means of evolution. The following extension interfaces exist:

- `IVerticalRulerExtension` since version 2.0 introducing setters for font and mouse button activity location.

Clients may implement this interface or use the default implementation provided by `CompositeRuler` and `VerticalRuler`.

See Also:
  `IVerticalRulerExtension`, `ITextViewer`

### Method Summary

All Methods Instance Methods Abstract Methods
`Control` `createControl​(Composite parent, ITextViewer textViewer)` Creates the ruler's SWT control.
`IAnnotationModel` `getModel()` Returns the current annotation model of this ruler or `null` if the ruler has no model.
`void` `setModel​(IAnnotationModel model)` Associates an annotation model with this ruler.
`void` `update()` Forces the vertical ruler to synchronize itself with its annotation model and its viewer's view port.

### Methods inherited from interface org.eclipse.jface.text.source.IVerticalRulerInfo

`getControl, getLineOfLastMouseButtonActivity, getWidth, toDocumentLineNumber`

### Method Detail

#### setModel

    void setModel​(IAnnotationModel model)

Associates an annotation model with this ruler. A value `null` is acceptable and clears the ruler.

Parameters:
  `model` - the new annotation model, may be `null`

#### getModel

    IAnnotationModel getModel()

Returns the current annotation model of this ruler or `null` if the ruler has no model.

Returns:
  this ruler's annotation model or `null` if there is no model

#### update

    void update()

Forces the vertical ruler to synchronize itself with its annotation model and its viewer's view port.

#### createControl

    Control createControl​(Composite parent,
                          ITextViewer textViewer)

Creates the ruler's SWT control.

Parameters:
  `parent` - the parent control of the ruler's control
  `textViewer` - the text viewer to which this ruler belongs
Returns:
  the ruler's SWT control