Class AnnotationPainter
- All Implemented Interfaces:
EventListener
,IPainter
,ITextPresentationListener
,IAnnotationModelListener
,IAnnotationModelListenerExtension
,PaintListener
,SWTEventListener
The annotation painter can be configured with drawing strategies. A drawing strategy defines the visual presentation of a particular type of annotation decoration.
Clients usually instantiate and configure objects of this class.
- Since:
- 2.1
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Box text style strategy.static final class
static interface
A drawing strategy draws the decoration for an annotation onto the text widget.static interface
A text style painting strategy draws the decoration for an annotation onto the text widget by applying aTextStyle
on a givenStyleRange
.static final class
Drawing strategy that does nothing.static class
Deprecated.static final class
Underline text style strategy. -
Field Summary
Fields inherited from interface org.eclipse.jface.text.IPainter
CONFIGURATION, INTERNAL, KEY_STROKE, MOUSE_BUTTON, SELECTION, TEXT_CHANGE
-
Constructor Summary
ConstructorDescriptionAnnotationPainter
(ISourceViewer sourceViewer, IAnnotationAccess access) Creates a new annotation painter for the given source viewer and with the given annotation access. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAnnotationType
(Object annotationType) Deprecated.As of 3.4 replaced byaddTextStyleStrategy(Object, AnnotationPainter.ITextStyleStrategy)
andAnnotationPainter.UnderlineStrategy
void
addAnnotationType
(Object annotationType, Object strategyID) Adds the given annotation type to the list of annotation types whose annotations should be painted by this painter using the given strategy.void
addDrawingStrategy
(Object id, AnnotationPainter.IDrawingStrategy strategy) Registers a new drawing strategy under the given ID.void
addHighlightAnnotationType
(Object annotationType) Adds the given annotation type to the list of annotation types whose annotations should be highlighted this painter.void
addTextStyleStrategy
(Object id, AnnotationPainter.ITextStyleStrategy strategy) Registers a new drawing strategy under the given ID.void
This method is called when a text presentation is about to be applied to the text viewer.void
deactivate
(boolean redraw) Deactivates this painter.void
dispose()
Disposes this painter.protected IAnnotationModel
findAnnotationModel
(ISourceViewer sourceViewer) Retrieves the annotation model from the given source viewer.boolean
Returns whether the list of annotation types whose annotations are painted by this painter contains at least on element.protected boolean
isRepaintReason
(int reason) Returns whether the given reason causes a repaint.void
modelChanged
(AnnotationModelEvent event) Called if a model change occurred on the given model.void
modelChanged
(IAnnotationModel model) Called if a model change occurred on the given model.void
paint
(int reason) Requests this painter to repaint because of the given reason.void
paintControl
(PaintEvent event) Sent when a paint event occurs for the control.void
Clears the list of annotation types whose annotations are painted by this painter.void
removeAnnotationType
(Object annotationType) Removes the given annotation type from the list of annotation types whose annotations are painted by this painter.void
removeHighlightAnnotationType
(Object annotationType) Removes the given annotation type from the list of annotation types whose annotations are highlighted by this painter.void
setAnnotationTypeColor
(Object annotationType, Color color) Sets the color in which the squiggly for the given annotation type should be drawn.void
setPositionManager
(IPaintPositionManager manager) Sets the paint position manager that can be used by this painter or removes any previously set paint position manager.protected boolean
skip
(Annotation annotation) Should the given annotation be skipped when handling draw requests?
-
Constructor Details
-
AnnotationPainter
Creates a new annotation painter for the given source viewer and with the given annotation access. The painter is not initialized, i.e. no annotation types are configured to be painted.- Parameters:
sourceViewer
- the source viewer for this painteraccess
- the annotation access for this painter
-
-
Method Details
-
applyTextPresentation
Description copied from interface:ITextPresentationListener
This method is called when a text presentation is about to be applied to the text viewer. The receiver is allowed to change the text presentation during that call.- Specified by:
applyTextPresentation
in interfaceITextPresentationListener
- Parameters:
tp
- the current text presentation
-
modelChanged
Description copied from interface:IAnnotationModelListener
Called if a model change occurred on the given model.Replaced by
IAnnotationModelListenerExtension.modelChanged(AnnotationModelEvent)
.- Specified by:
modelChanged
in interfaceIAnnotationModelListener
- Parameters:
model
- the changed annotation model
-
modelChanged
Description copied from interface:IAnnotationModelListenerExtension
Called if a model change occurred on the given model.- Specified by:
modelChanged
in interfaceIAnnotationModelListenerExtension
- Parameters:
event
- the event to be sent out
-
setAnnotationTypeColor
Sets the color in which the squiggly for the given annotation type should be drawn.- Parameters:
annotationType
- the annotation typecolor
- the color
-
addAnnotationType
Deprecated.As of 3.4 replaced byaddTextStyleStrategy(Object, AnnotationPainter.ITextStyleStrategy)
andAnnotationPainter.UnderlineStrategy
Adds the given annotation type to the list of annotation types whose annotations should be painted by this painter using squiggly drawing. If the annotation type is already in this list, this method is without effect.- Parameters:
annotationType
- the annotation type
-
addAnnotationType
Adds the given annotation type to the list of annotation types whose annotations should be painted by this painter using the given strategy. If the annotation type is already in this list, the old strategy gets replaced.- Parameters:
annotationType
- the annotation typestrategyID
- the id of the drawing or text style strategy that should be used for this annotation type- Since:
- 3.0
-
addDrawingStrategy
Registers a new drawing strategy under the given ID. If there is already a strategy registered underid
, the old strategy gets replaced.The given id can be referenced when adding annotation types, see
addAnnotationType(Object, Object)
.- Parameters:
id
- the identifier under which the strategy can be referenced, notnull
strategy
- the new strategy- Since:
- 3.0
-
addTextStyleStrategy
Registers a new drawing strategy under the given ID. If there is already a strategy registered underid
, the old strategy gets replaced.The given id can be referenced when adding annotation types, see
addAnnotationType(Object, Object)
.Note: The annotations will only be painted if this painter has been registered as text presentation listener on the viewer.
- Parameters:
id
- the identifier under which the strategy can be referenced, notnull
strategy
- the new strategy- Since:
- 3.4
- See Also:
-
addHighlightAnnotationType
Adds the given annotation type to the list of annotation types whose annotations should be highlighted this painter. If the annotation type is already in this list, this method is without effect.Note: The annotations will only be painted if this painter has been registered as text presentation listener on the viewer.
- Parameters:
annotationType
- the annotation type- Since:
- 3.0
- See Also:
-
removeAnnotationType
Removes the given annotation type from the list of annotation types whose annotations are painted by this painter. If the annotation type is not in this list, this method is without effect.- Parameters:
annotationType
- the annotation type
-
removeHighlightAnnotationType
Removes the given annotation type from the list of annotation types whose annotations are highlighted by this painter. If the annotation type is not in this list, this method is without effect.- Parameters:
annotationType
- the annotation type- Since:
- 3.0
-
removeAllAnnotationTypes
public void removeAllAnnotationTypes()Clears the list of annotation types whose annotations are painted by this painter. -
isPaintingAnnotations
public boolean isPaintingAnnotations()Returns whether the list of annotation types whose annotations are painted by this painter contains at least on element.- Returns:
true
if there is an annotation type whose annotations are painted
-
dispose
public void dispose()Description copied from interface:IPainter
Disposes this painter. Prior to disposing, a painter should be deactivated. A disposed painter can not be reactivated. -
paintControl
Description copied from interface:PaintListener
Sent when a paint event occurs for the control.- Specified by:
paintControl
in interfacePaintListener
- Parameters:
event
- an event containing information about the paint
-
skip
Should the given annotation be skipped when handling draw requests?- Parameters:
annotation
- the annotation- Returns:
true
iff the given annotation should be skipped when handling draw requests- Since:
- 3.0
-
deactivate
public void deactivate(boolean redraw) Description copied from interface:IPainter
Deactivates this painter. If the painter is inactive, this call does not have any effect.redraw
indicates whether the painter should remove any decoration it previously applied. A deactivated painter can be reactivated by callingpaint
.- Specified by:
deactivate
in interfaceIPainter
- Parameters:
redraw
-true
if any previously applied decoration should be removed- See Also:
-
isRepaintReason
protected boolean isRepaintReason(int reason) Returns whether the given reason causes a repaint.- Parameters:
reason
- the reason- Returns:
true
if repaint reason,false
otherwise- Since:
- 3.0
-
findAnnotationModel
Retrieves the annotation model from the given source viewer.- Parameters:
sourceViewer
- the source viewer- Returns:
- the source viewer's annotation model or
null
if none can be found - Since:
- 3.0
-
paint
public void paint(int reason) Description copied from interface:IPainter
Requests this painter to repaint because of the given reason. Based on the given reason the painter can decide whether it will repaint or not. If it repaints and is inactive, it will activate itself. -
setPositionManager
Description copied from interface:IPainter
Sets the paint position manager that can be used by this painter or removes any previously set paint position manager.- Specified by:
setPositionManager
in interfaceIPainter
- Parameters:
manager
- the paint position manager ornull
-
AnnotationPainter.UnderlineStrategy