Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.text
Interface IPainter

All Known Implementing Classes:
  AnnotationPainter, CursorLinePainter, MarginPainter, MatchingCharacterPainter

public interface IPainter

A painter is responsible for creating, managing, updating, and removing visual decorations on an `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:
  `PaintManager`, `IPaintPositionManager`

Field Summary
`static int` | `CONFIGURATION` Constant describing the reason of a repaint request: paint manager or painter configuration changed.
`static int` | `INTERNAL` Constant describing the reason of a repaint request: paint manager internal change.
`static int` | `KEY_STROKE` Constant describing the reason of a repaint request: key pressed.
`static int` | `MOUSE_BUTTON` Constant describing the reason of a repaint request: mouse button pressed.
`static int` | `SELECTION` Constant describing the reason of a repaint request: selection changed.
`static int` | `TEXT_CHANGE` Constant describing the reason of a repaint request: text changed.

Method Summary
`void` | `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 Detail

### SELECTION

    public static final int SELECTION

  Constant describing the reason of a repaint request: selection changed.

  See Also:
    Constant Field Values

### TEXT_CHANGE

    public static final int TEXT_CHANGE

  Constant describing the reason of a repaint request: text changed.

  See Also:
    Constant Field Values

### KEY_STROKE

    public static final int KEY_STROKE

  Constant describing the reason of a repaint request: key pressed.

  See Also:
    Constant Field Values

### MOUSE_BUTTON

    public static final int MOUSE_BUTTON

  Constant describing the reason of a repaint request: mouse button pressed.

  See Also:
    Constant Field Values

### INTERNAL

    public static final int INTERNAL

  Constant describing the reason of a repaint request: paint manager internal change.

  See Also:
    Constant Field Values

### CONFIGURATION

    public static final int CONFIGURATION

  Constant describing the reason of a repaint request: paint manager or painter configuration changed.

  See Also:
    Constant Field Values

Method Detail

### dispose

    public void dispose()

  Disposes this painter. Prior to disposing, a painter should be deactivated. A disposed painter can not be reactivated.

  See Also:
    `deactivate(boolean)`

### paint

    public 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

    public 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 calling `paint`.

  Parameters:
    `redraw` - `true` if any previously applied decoration should be removed
  See Also:
    `paint(int)`

### setPositionManager

    public void setPositionManager(IPaintPositionManager manager)

  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 or `null`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.