org.eclipse.draw2d

## Class SchemeBorder

- java.lang.Object
- - org.eclipse.draw2d.AbstractBorder
  - - org.eclipse.draw2d.SchemeBorder

All Implemented Interfaces:
  Border, ColorConstants

Direct Known Subclasses:
  ButtonBorder, SimpleEtchedBorder, SimpleLoweredBorder, SimpleRaisedBorder

    public class SchemeBorder
    extends AbstractBorder
    implements ColorConstants

SchemeBorder allows the creation of borders based on `Schemes`. A Scheme is a class whose only purpose is to carry border specific information. SchemeBorder renders the border based on the information given by the Scheme set to it.

### Nested Class Summary

Nested Classes
`static class` `SchemeBorder.Scheme` Holds a set of information about a border, which can be changed to create a wide range of schemes.
`static interface` `SchemeBorder.SCHEMES` Interface which defines some commonly used schemes for the border.

### Nested classes/interfaces inherited from interface org.eclipse.draw2d.ColorConstants

`ColorConstants.SystemColorFactory`

### Field Summary

Fields
`protected static Color[]` `DARKER_LIGHTER` Arrays of Colors, used for shadow or highlight effects
`protected static Color[]` `DARKEST_DARKER` Arrays of Colors, used for shadow or highlight effects
`protected static Color[]` `LIGHTER_DARKER` Arrays of Colors, used for shadow or highlight effects
`protected SchemeBorder.Scheme` `scheme` The `SchemeBorder.Scheme` associated with this SchemeBorder

### Fields inherited from class org.eclipse.draw2d.AbstractBorder

`tempRect`

### Fields inherited from interface org.eclipse.draw2d.ColorConstants

`black, blue, button, buttonDarker, buttonDarkest, buttonLightest, cyan, darkBlue, darkGray, darkGreen, gray, green, lightBlue, lightGray, lightGreen, listBackground, listForeground, menuBackground, menuBackgroundSelected, menuForeground, menuForegroundSelected, orange, red, titleBackground, titleForeground, titleGradient, titleInactiveBackground, titleInactiveForeground, titleInactiveGradient, tooltipBackground, tooltipForeground, white, yellow`

### Constructor Summary

Constructors
`protected` `SchemeBorder()` Constructs a default SchemeBorder with no scheme defined.
`` `SchemeBorder(SchemeBorder.Scheme scheme)` Constructs a SchemeBorder with the Scheme given as input.

### Method Summary

Methods
`Insets` `getInsets(IFigure figure)` Returns the Insets for this Border for the given Figure.
`protected SchemeBorder.Scheme` `getScheme()` Returns the scheme used by this border.
`boolean` `isOpaque()` Returns the opaque state of this border.
`protected void` `paint(Graphics graphics, IFigure fig, Insets insets, Color[] tl, Color[] br)` Paints the border using the information in the set Scheme and the inputs given.
`void` `paint(IFigure figure, Graphics g, Insets insets)` Paints the border.
`protected void` `setScheme(SchemeBorder.Scheme scheme)` Sets the Scheme for this border to the Scheme given as input.

### Methods inherited from class org.eclipse.draw2d.AbstractBorder

`getPaintRectangle, getPreferredSize`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### scheme

    protected SchemeBorder.Scheme scheme

The `SchemeBorder.Scheme` associated with this SchemeBorder

#### DARKEST_DARKER

    protected static final Color[] DARKEST_DARKER

Arrays of Colors, used for shadow or highlight effects

#### LIGHTER_DARKER

    protected static final Color[] LIGHTER_DARKER

Arrays of Colors, used for shadow or highlight effects

#### DARKER_LIGHTER

    protected static final Color[] DARKER_LIGHTER

Arrays of Colors, used for shadow or highlight effects

### Constructor Detail

#### SchemeBorder

    protected SchemeBorder()

Constructs a default SchemeBorder with no scheme defined.

Since:
  2.0

#### SchemeBorder

    public SchemeBorder(SchemeBorder.Scheme scheme)

Constructs a SchemeBorder with the Scheme given as input.

Parameters:
  `scheme` - the Scheme to be used by this border
Since:
  2.0

### Method Detail

#### getInsets

    public Insets getInsets(IFigure figure)

Description copied from interface: `Border`
Returns the Insets for this Border for the given Figure.

Specified by:
  `getInsets` in interface `Border`
Parameters:
  `figure` - The figure this border belongs to
Returns:
  The insets
See Also:
  `Border.getInsets(IFigure)`

#### getScheme

    protected SchemeBorder.Scheme getScheme()

Returns the scheme used by this border.

Returns:
  the Scheme used by this border
Since:
  2.0

#### isOpaque

    public boolean isOpaque()

Returns the opaque state of this border. Returns `true` indicating that this will fill in the area enclosed by the border.

Specified by:
  `isOpaque` in interface `Border`
Overrides:
  `isOpaque` in class `AbstractBorder`
Returns:
  `true` if this border is opaque
See Also:
  `Border.isOpaque()`

#### setScheme

    protected void setScheme(SchemeBorder.Scheme scheme)

Sets the Scheme for this border to the Scheme given as input.

Parameters:
  `scheme` - the Scheme for this border
Since:
  2.0

#### paint

    public void paint(IFigure figure,
             Graphics g,
             Insets insets)

Description copied from interface: `Border`
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)`.

Specified by:
  `paint` in interface `Border`
Parameters:
  `figure` - The figure this border belongs to
  `g` - The graphics object used for painting
  `insets` - The insets
See Also:
  `Border.paint(IFigure, Graphics, Insets)`

#### paint

    protected void paint(Graphics graphics,
             IFigure fig,
             Insets insets,
             Color[] tl,
             Color[] br)

Paints the border using the information in the set Scheme and the inputs given. Side widths are determined by the number of colors in the Scheme for each side.

Parameters:
  `graphics` - the graphics object
  `fig` - the figure this border belongs to
  `insets` - the insets
  `tl` - the highlight (top/left) colors
  `br` - the shadow (bottom/right) colors