org.eclipse.draw2d

## Interface Border

All Known Subinterfaces:
  FlowBorder, LabeledBorder

All Known Implementing Classes:
  AbstractBackground, AbstractBorder, AbstractFlowBorder, AbstractLabeledBorder, ButtonBorder, CompoundBorder, FocusBorder, FrameBorder, GroupBoxBorder, LineBorder, MarginBorder, SchemeBorder, SimpleEtchedBorder, SimpleLoweredBorder, SimpleRaisedBorder, TitleBarBorder

    public interface Border

A decoration on a Figure. A border may paint itself within the bounds of a figure, and it may provide Insets which can affect how the figures children are posiiton and painted.

A border instance may be used with multiple figure instances.

### Method Summary

Methods
`Insets` `getInsets(IFigure figure)` Returns the Insets for this Border for the given Figure.
`Dimension` `getPreferredSize(IFigure figure)` Returns the preferred width and height that this border would like to display itself properly.
`boolean` `isOpaque()` Returns `true` if the Border completely fills the region defined in `paint(IFigure, Graphics, Insets)`.
`void` `paint(IFigure figure, Graphics graphics, Insets insets)` Paints the border.

### Method Detail

#### getInsets

    Insets getInsets(IFigure figure)

Returns the Insets for this Border for the given Figure.

Parameters:
  `figure` - The figure this border belongs to
Returns:
  The insets

#### getPreferredSize

    Dimension getPreferredSize(IFigure figure)

Returns the preferred width and height that this border would like to display itself properly.

Parameters:
  `figure` - The figure
Returns:
  The preferred size

#### isOpaque

    boolean isOpaque()

Returns `true` if the Border completely fills the region defined in `paint(IFigure, Graphics, Insets)`.

Returns:
  `true` if this border is opaque

#### paint

    void paint(IFigure figure,
             Graphics graphics,
             Insets insets)

Paints the border. The border should paint inside figure's `IFigure.getBounds()`, inset by the parameter insets. The border generally should not paint inside its own insets. More specifically, Border b should paint inside the rectangle: figure.getBounds().getCropped(insets) and outside of the rectangle: figure.getBounds().getCropped(insets).getCropped(getInsets()) where inside is defined as `Rectangle.contains(int, int)`.

Parameters:
  `figure` - The figure this border belongs to
  `graphics` - The graphics object used for painting
  `insets` - The insets