Package 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
Modifier and Type
Class
Description
`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
Modifier and Type
Field
Description
`protected static final Color[]`
`DARKER_LIGHTER`
`protected static final Color[]`
`DARKEST_DARKER`
Arrays of Colors, used for shadow or highlight effects
`protected static final Color[]`
`LIGHTER_DARKER`
`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, lineForeground, listBackground, listForeground, listHoverBackgroundColor, listSelectedBackgroundColor, menuBackground, menuBackgroundSelected, menuForeground, menuForegroundSelected, orange, red, titleBackground, titleForeground, titleGradient, titleInactiveBackground, titleInactiveForeground, titleInactiveGradient, tooltipBackground, tooltipForeground, white, yellow`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`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

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

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

### DARKER_LIGHTER

protected static final Color[] DARKER_LIGHTER

## Constructor Details

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

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