Package 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

Modifier and Type
Method
Description
`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 Details

### 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