Interface IPainter
- All Known Implementing Classes:
AnnotationPainter
,CursorLinePainter
,MarginPainter
,MatchingCharacterPainter
,WhitespaceCharacterPainter
ITextViewer
's text widget. Examples are the highlighting of the caret line, the
print margin, or the highlighting of matching peer characters such as pairs of brackets.
Clients may implement this interface.
Painters should be registered with a PaintManager
. The paint
manager tracks several classes of events issued by an ITextViewer
and reacts by
appropriately invoking the registered painters.
Painters are either active or inactive. Usually, painters are initially inactive and are
activated by the first call to their paint
method. Painters can be deactivated by
calling deactivate
. Inactive painter can be reactivated by calling
paint
.
Painters usually have to manage state information. E.g., a painter painting a caret line
highlight must redraw the previous and the actual caret line in the advent of a change of the
caret position. This state information must be adapted to changes of the viewer's content. In
order to support this common scenario, the PaintManager
gives a painter access to a
IPaintPositionManager
. The painter can use this updater to manage
its state information.
- Since:
- 2.1
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Constant describing the reason of a repaint request: paint manager or painter configuration changed.static final int
Constant describing the reason of a repaint request: paint manager internal change.static final int
Constant describing the reason of a repaint request: key pressed.static final int
Constant describing the reason of a repaint request: mouse button pressed.static final int
Constant describing the reason of a repaint request: selection changed.static final int
Constant describing the reason of a repaint request: text changed. -
Method Summary
Modifier and TypeMethodDescriptionvoid
deactivate
(boolean redraw) Deactivates this painter.void
dispose()
Disposes this painter.void
paint
(int reason) Requests this painter to repaint because of the given reason.void
setPositionManager
(IPaintPositionManager manager) Sets the paint position manager that can be used by this painter or removes any previously set paint position manager.
-
Field Details
-
SELECTION
static final int SELECTIONConstant describing the reason of a repaint request: selection changed.- See Also:
-
TEXT_CHANGE
static final int TEXT_CHANGEConstant describing the reason of a repaint request: text changed.- See Also:
-
KEY_STROKE
static final int KEY_STROKEConstant describing the reason of a repaint request: key pressed.- See Also:
-
MOUSE_BUTTON
static final int MOUSE_BUTTONConstant describing the reason of a repaint request: mouse button pressed.- See Also:
-
INTERNAL
static final int INTERNALConstant describing the reason of a repaint request: paint manager internal change.- See Also:
-
CONFIGURATION
static final int CONFIGURATIONConstant describing the reason of a repaint request: paint manager or painter configuration changed.- See Also:
-
-
Method Details
-
dispose
void dispose()Disposes this painter. Prior to disposing, a painter should be deactivated. A disposed painter can not be reactivated.- See Also:
-
paint
void paint(int reason) 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.- Parameters:
reason
- the repaint reason, value is one of the constants defined in this interface
-
deactivate
void deactivate(boolean redraw) 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
.- Parameters:
redraw
-true
if any previously applied decoration should be removed- See Also:
-
setPositionManager
Sets the paint position manager that can be used by this painter or removes any previously set paint position manager.- Parameters:
manager
- the paint position manager ornull
-