Package org.eclipse.jface.text.source
Class CompositeRuler
- java.lang.Object
-
- org.eclipse.jface.text.source.CompositeRuler
-
- All Implemented Interfaces:
IVerticalRuler
,IVerticalRulerExtension
,IVerticalRulerInfo
,IVerticalRulerInfoExtension
public class CompositeRuler extends Object implements IVerticalRuler, IVerticalRulerExtension, IVerticalRulerInfoExtension
Standard implementation ofIVerticalRuler
.This ruler does not have a a visual representation of its own. The presentation comes from the configurable list of vertical ruler columns. Such columns must implement the
IVerticalRulerColumn
. interface.Clients may instantiate and configure this class.
- Since:
- 2.0
- See Also:
IVerticalRulerColumn
,ITextViewer
-
-
Constructor Summary
Constructors Constructor Description CompositeRuler()
Constructs a new composite vertical ruler.CompositeRuler(int gap)
Constructs a new composite ruler with the given gap between its columns.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDecorator(int index, IVerticalRulerColumn rulerColumn)
Inserts the given column at the specified slot to this composite ruler.void
addVerticalRulerListener(IVerticalRulerListener listener)
Registers a vertical ruler listener to be informed if an annotation gets selected on the vertical ruler.Control
createControl(Composite parent, ITextViewer textViewer)
Creates the ruler's SWT control.void
fireAnnotationContextMenuAboutToShow(VerticalRulerEvent event, Menu menu)
Informs all registered vertical ruler listeners that the content menu on a selected annotation\ is about to be shown.void
fireAnnotationDefaultSelected(VerticalRulerEvent event)
Fires the annotation default selected event to all registered vertical ruler listeners.void
fireAnnotationSelected(VerticalRulerEvent event)
Fires the annotation selected event to all registered vertical ruler listeners.Control
getControl()
Returns the ruler's SWT control.Iterator<IVerticalRulerColumn>
getDecoratorIterator()
Returns an iterator over theIVerticalRulerColumns
that make up this composite column.IAnnotationHover
getHover()
Returns the hover for this vertical ruler (column).int
getLineOfLastMouseButtonActivity()
Returns the line number of the last mouse button activity.IAnnotationModel
getModel()
Returns the current annotation model of this ruler ornull
if the ruler has no model.ITextViewer
getTextViewer()
Returns this ruler's text viewer.int
getWidth()
Returns the width of this ruler's control.void
immediateUpdate()
Immediately redraws the entire ruler (without asynchronous posting).void
relayout()
Relayouts the receiver.void
removeDecorator(int index)
Removes the decorator in the specified slot from this composite ruler.void
removeDecorator(IVerticalRulerColumn rulerColumn)
Removes the given decorator from the composite ruler.void
removeVerticalRulerListener(IVerticalRulerListener listener)
Removes a previously registered listener.void
setFont(Font font)
Sets the font of this vertical ruler.void
setLocationOfLastMouseButtonActivity(int x, int y)
Sets the location of the last mouse button activity.void
setModel(IAnnotationModel model)
Associates an annotation model with this ruler.int
toDocumentLineNumber(int y_coordinate)
Translates a y-coordinate of the ruler's SWT control into the according line number of the document of the connected text viewer.void
update()
Forces the vertical ruler to synchronize itself with its annotation model and its viewer's view port.protected static int
widgetLine2ModelLine(ITextViewer viewer, int widgetLine)
Returns the line in the given viewer's document that correspond to the given line of the viewer's widget.
-
-
-
Method Detail
-
addDecorator
public void addDecorator(int index, IVerticalRulerColumn rulerColumn)
Inserts the given column at the specified slot to this composite ruler. Columns are counted from left to right.- Parameters:
index
- the indexrulerColumn
- the decorator to be inserted
-
removeDecorator
public void removeDecorator(int index)
Removes the decorator in the specified slot from this composite ruler.- Parameters:
index
- the index
-
removeDecorator
public void removeDecorator(IVerticalRulerColumn rulerColumn)
Removes the given decorator from the composite ruler.- Parameters:
rulerColumn
- the ruler column to be removed- Since:
- 3.0
-
getControl
public Control getControl()
Description copied from interface:IVerticalRulerInfo
Returns the ruler's SWT control.- Specified by:
getControl
in interfaceIVerticalRulerInfo
- Returns:
- the ruler's SWT control
-
createControl
public Control createControl(Composite parent, ITextViewer textViewer)
Description copied from interface:IVerticalRuler
Creates the ruler's SWT control.- Specified by:
createControl
in interfaceIVerticalRuler
- Parameters:
parent
- the parent control of the ruler's controltextViewer
- the text viewer to which this ruler belongs- Returns:
- the ruler's SWT control
-
setModel
public void setModel(IAnnotationModel model)
Description copied from interface:IVerticalRuler
Associates an annotation model with this ruler. A valuenull
is acceptable and clears the ruler.- Specified by:
setModel
in interfaceIVerticalRuler
- Parameters:
model
- the new annotation model, may benull
-
getModel
public IAnnotationModel getModel()
Description copied from interface:IVerticalRuler
Returns the current annotation model of this ruler ornull
if the ruler has no model.- Specified by:
getModel
in interfaceIVerticalRuler
- Specified by:
getModel
in interfaceIVerticalRulerInfoExtension
- Returns:
- this ruler's annotation model or
null
if there is no model
-
update
public void update()
Description copied from interface:IVerticalRuler
Forces the vertical ruler to synchronize itself with its annotation model and its viewer's view port.- Specified by:
update
in interfaceIVerticalRuler
-
immediateUpdate
public void immediateUpdate()
Immediately redraws the entire ruler (without asynchronous posting).- Since:
- 3.2
-
setFont
public void setFont(Font font)
Description copied from interface:IVerticalRulerExtension
Sets the font of this vertical ruler.- Specified by:
setFont
in interfaceIVerticalRulerExtension
- Parameters:
font
- the new font of the vertical ruler
-
getWidth
public int getWidth()
Description copied from interface:IVerticalRulerInfo
Returns the width of this ruler's control.- Specified by:
getWidth
in interfaceIVerticalRulerInfo
- Returns:
- the width of this ruler's control
-
getLineOfLastMouseButtonActivity
public int getLineOfLastMouseButtonActivity()
Description copied from interface:IVerticalRulerInfo
Returns the line number of the last mouse button activity. Based on the input document of the connected text viewer.- Specified by:
getLineOfLastMouseButtonActivity
in interfaceIVerticalRulerInfo
- Returns:
- the line number of the last mouse button activity or
-1
if the last mouse activity does not correspond to a valid document line
-
toDocumentLineNumber
public int toDocumentLineNumber(int y_coordinate)
Description copied from interface:IVerticalRulerInfo
Translates a y-coordinate of the ruler's SWT control into the according line number of the document of the connected text viewer.- Specified by:
toDocumentLineNumber
in interfaceIVerticalRulerInfo
- Parameters:
y_coordinate
- a y-coordinate of the ruler's SWT control- Returns:
- the line number of that coordinate or
-1
if that coordinate does not correspond to a valid document line
-
widgetLine2ModelLine
protected static final int widgetLine2ModelLine(ITextViewer viewer, int widgetLine)
Returns the line in the given viewer's document that correspond to the given line of the viewer's widget.- Parameters:
viewer
- the viewerwidgetLine
- the widget line- Returns:
- the corresponding line the viewer's document
- Since:
- 2.1
-
getTextViewer
public ITextViewer getTextViewer()
Returns this ruler's text viewer.- Returns:
- this ruler's text viewer
-
setLocationOfLastMouseButtonActivity
public void setLocationOfLastMouseButtonActivity(int x, int y)
Description copied from interface:IVerticalRulerExtension
Sets the location of the last mouse button activity. This method is used for example by external mouse listeners.- Specified by:
setLocationOfLastMouseButtonActivity
in interfaceIVerticalRulerExtension
- Parameters:
x
- the x-coordinatey
- the y-coordinate
-
getDecoratorIterator
public Iterator<IVerticalRulerColumn> getDecoratorIterator()
Returns an iterator over theIVerticalRulerColumns
that make up this composite column.- Returns:
- an iterator over the contained columns.
- Since:
- 3.0
-
getHover
public IAnnotationHover getHover()
Description copied from interface:IVerticalRulerInfoExtension
Returns the hover for this vertical ruler (column).- Specified by:
getHover
in interfaceIVerticalRulerInfoExtension
- Returns:
- the hover for this column
-
addVerticalRulerListener
public void addVerticalRulerListener(IVerticalRulerListener listener)
Description copied from interface:IVerticalRulerInfoExtension
Registers a vertical ruler listener to be informed if an annotation gets selected on the vertical ruler.- Specified by:
addVerticalRulerListener
in interfaceIVerticalRulerInfoExtension
- Parameters:
listener
- the listener to be informed
-
removeVerticalRulerListener
public void removeVerticalRulerListener(IVerticalRulerListener listener)
Description copied from interface:IVerticalRulerInfoExtension
Removes a previously registered listener. Iflistener
is not registered with the receiver, calling this method has no effect.- Specified by:
removeVerticalRulerListener
in interfaceIVerticalRulerInfoExtension
- Parameters:
listener
- the listener to be removed
-
fireAnnotationSelected
public void fireAnnotationSelected(VerticalRulerEvent event)
Fires the annotation selected event to all registered vertical ruler listeners. TODO use robust iterators- Parameters:
event
- the event to fire- Since:
- 3.0
-
fireAnnotationDefaultSelected
public void fireAnnotationDefaultSelected(VerticalRulerEvent event)
Fires the annotation default selected event to all registered vertical ruler listeners. TODO use robust iterators- Parameters:
event
- the event to fire- Since:
- 3.0
-
fireAnnotationContextMenuAboutToShow
public void fireAnnotationContextMenuAboutToShow(VerticalRulerEvent event, Menu menu)
Informs all registered vertical ruler listeners that the content menu on a selected annotation\ is about to be shown. TODO use robust iterators- Parameters:
event
- the event to firemenu
- the menu that is about to be shown- Since:
- 3.0
-
relayout
public void relayout()
Relayouts the receiver.- Since:
- 3.3
-
-