com.sun.lwuit.plaf
Class Border

java.lang.Object
  extended by com.sun.lwuit.plaf.Border

public class Border
extends java.lang.Object

Base class that allows us to render a border for a component, a border is drawn before the component and is drawn within the padding region of the component. It is the responsibility of the component not to draw outside of the border line.

This class can be extended to provide additional border types and custom made border types.

A border can optionally paint the background of the component, this depends on the border type and is generally required for rounded borders that "know" the area that should be filled.


Constructor Summary
protected Border()
          Prevents usage of new operator, use the factory methods in the class or subclass to create new border types.
 
Method Summary
 void addOuterBorder(Border outer)
          Adss a border that wraps this border
 void clearImageBorderSpecialTile()
          Cleans the tile tracking state allowing the garbage collector to pick up the component and the image data
static Border createBevelLowered()
          Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color
static Border createBevelLowered(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner)
          Creates a raised bevel border with the given colors
static Border createBevelRaised()
          Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color
static Border createBevelRaised(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner)
          Creates a raised bevel border with the given colors
static Border createCompoundBorder(Border top, Border bottom, Border left, Border right)
           
static Border createDashedBorder(int thickness)
          Creates a dashed border with the specified thickness and the theme colors
static Border createDashedBorder(int thickness, int color)
          Creates a dashed border with the specified thickness and color
static Border createDottedBorder(int thickness)
          Creates a dotted border with the specified thickness and the theme colors
static Border createDottedBorder(int thickness, int color)
          Creates a dotted border with the specified thickness and color
static Border createDoubleBorder(int thickness)
          Creates a double border with the specified thickness and color
static Border createDoubleBorder(int thickness, int color)
          Creates a double border with the specified thickness and color
static Border createEmpty()
          Creates an empty border, this is useful where we don't want a border for a component but want a focus border etc...
static Border createEtchedLowered()
          Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color
static Border createEtchedLowered(int highlight, int shadow)
          Creates a raised etched border with the given colors
static Border createEtchedRaised()
          Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color
static Border createEtchedRaised(int highlight, int shadow)
          Creates a raised etched border with the given colors
static Border createGrooveBorder(int thickness)
          Creates a groove border with the specified thickness and theme colors
static Border createGrooveBorder(int thickness, int color)
          Creates a groove border with the specified thickness and color
static Border createHorizonalImageBorder(Image left, Image right, Image center)
          This is an image border that can only grow horizontally
static Border createImageBorder(Image top, Image topLeft, Image background)
          The given images are tiled appropriately across the matching side of the border, rotated and placed as expected in the four corners.
static Border createImageBorder(Image top, Image bottom, Image left, Image right, Image topLeft, Image topRight, Image bottomLeft, Image bottomRight, Image background)
          The given top/bottom/left/right images are tiled appropriately across the matching sides of the border and the corners are placed as expected in the four corners.
static Border createImageScaledBorder(Image top, Image bottom, Image left, Image right, Image topLeft, Image topRight, Image bottomLeft, Image bottomRight, Image background)
          The given top/bottom/left/right images are scaled appropriately across the matching sides of the border and the corners are placed as expected in the four corners.
static Border createInsetBorder(int thickness)
          Creates an inset border with the specified thickness and theme colors
static Border createInsetBorder(int thickness, int color)
          Creates an inset border with the specified thickness and color
static Border createLineBorder(int thickness)
          Creates a line border that uses the color of the component foreground for drawing
static Border createLineBorder(int thickness, int color)
          Creates a line border that uses the given color for the component
static Border createLineBorder(int thickness, int color, java.lang.String title)
          Creates a line border that uses the given color for the component
static Border createLineBorder(int thickness, java.lang.String title)
          Creates a line border with the specified title
static Border createOutsetBorder(int thickness)
          Creates an outset border with the specified thickness and theme colors
static Border createOutsetBorder(int thickness, int color)
          Creates an outset border with the specified thickness and color
 Border createPressedVersion()
          When applied to buttons borders produce a version that reverses the effects of the border providing a pressed feel
static Border createRidgeBorder(int thickness)
          Creates a ridge border with the specified thickness and theme colors
static Border createRidgeBorder(int thickness, int color)
          Creates a ridge border with the specified thickness and color
static Border createRoundBorder(int arcWidth, int arcHeight)
          Creates a rounded corner border that uses the color of the component foreground for drawing.
static Border createRoundBorder(int arcWidth, int arcHeight, boolean outline)
          Creates a rounded corner border that uses the color of the component foreground for drawing.
static Border createRoundBorder(int arcWidth, int arcHeight, int color)
          Creates a rounded border that uses the given color for the component.
static Border createRoundBorder(int arcWidth, int arcHeight, int color, boolean outline)
          Creates a rounded border that uses the given color for the component.
static Border createVerticalImageBorder(Image top, Image bottom, Image center)
          This is an image border that can only grow vertically
 boolean equals(java.lang.Object obj)
          
 Border[] getCompoundBorders()
          This method returns the Compound Borders array.
static Border getDefaultBorder()
          Gets the default border to the given value
static Border getEmpty()
          Deprecated. use createEmpty instead
 Border getFocusedInstance()
          Deprecated. use the getSelectedStyle() method in the component class
 int getMinimumHeight()
          Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right
 int getMinimumWidth()
          Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right
 Border getPressedInstance()
          Returns the pressed version of the border if one is set by the user
 int getThickness()
          This method returns how thick is the border in pixels, notice this doesn't apply to most border types
 boolean isBackgroundPainter()
          Returns true if installing this border will override the painting of the component background
 boolean isPaintOuterBorderFirst()
          Allows toggling the order in which the outer and inner borders are painted for the Outer border type
 boolean isRectangleType()
          Returns true if this border type is a rectangle border.
 void lock()
          This callback indicates that a component pointing at this border is initialized, this method is useful for image borders whose lock methods are implicitly invoked.
 void paint(Graphics g, Component c)
          Draws the border for the given component, this method is called before a call to background painting is made.
 void paintBorderBackground(Graphics g, Component c)
          Has effect when the border demands responsibility for background painting normally the painter will perform this work but in this case the border might do it instead.
static void setDefaultBorder(Border border)
          Sets the default border to the given value
 void setFocusedInstance(Border focused)
          Deprecated. use the getSelectedStyle() method in the component class
 void setImageBorderSpecialTile(Image tileTop, Image tileBottom, Image tileLeft, Image tileRight, Component trackComponent)
          This method is designed mainly for the purpose of creating an arrow that will track a specific component using the image border the tile given would be an arrow like image just like the ones used for the top/bottom/left/right images.
 void setPaintOuterBorderFirst(boolean paintOuterBorderFirst)
          Allows toggling the order in which the outer and inner borders are painted for the Outer border type
 void setPressedInstance(Border pressed)
          Allows us to define a border that will act as the pressed version of this border
 void setThickness(int thickness)
          This method returns sets the border thickness in pixels, notice this doesn't apply to most border types
 void unlock()
          This callback indicates that a component pointing at this border is now deinitilized This method may be invoked multiple times.
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Border

protected Border()
Prevents usage of new operator, use the factory methods in the class or subclass to create new border types.

Method Detail

setImageBorderSpecialTile

public void setImageBorderSpecialTile(Image tileTop,
                                      Image tileBottom,
                                      Image tileLeft,
                                      Image tileRight,
                                      Component trackComponent)
This method is designed mainly for the purpose of creating an arrow that will track a specific component using the image border the tile given would be an arrow like image just like the ones used for the top/bottom/left/right images. This image would be positioned so it points at the center of the track component

Parameters:
tileTop - an image that will replace one of the tiles on the top if the track component is there
tileBottom - an image that will replace one of the tiles on the bottom if the track component is there
tileLeft - an image that will replace one of the tiles on the left if the track component is there
tileRight - an image that will replace one of the tiles on the right if the track component is there
trackComponent - the component that will be tracked for the positioning of the tile

clearImageBorderSpecialTile

public void clearImageBorderSpecialTile()
Cleans the tile tracking state allowing the garbage collector to pick up the component and the image data


addOuterBorder

public void addOuterBorder(Border outer)
Adss a border that wraps this border

Parameters:
outer - The outer border

getMinimumHeight

public int getMinimumHeight()
Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right

Returns:
0 if not applicable or a dimension if it is.

getMinimumWidth

public int getMinimumWidth()
Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right

Returns:
0 if not applicable or a dimension if it is.

getEmpty

public static Border getEmpty()
Deprecated. use createEmpty instead

Returns an empty border, this is mostly useful for overriding components that have a border by default

Returns:
a border than draws nothing

createEmpty

public static Border createEmpty()
Creates an empty border, this is useful where we don't want a border for a component but want a focus border etc...

Returns:
a border than draws nothing

createImageBorder

public static Border createImageBorder(Image top,
                                       Image bottom,
                                       Image left,
                                       Image right,
                                       Image topLeft,
                                       Image topRight,
                                       Image bottomLeft,
                                       Image bottomRight,
                                       Image background)
The given top/bottom/left/right images are tiled appropriately across the matching sides of the border and the corners are placed as expected in the four corners. The background image is optional and it will be tiled in the background if necessary.

By default this border does not override background unless a background image is specified

Parameters:
top - the image of the top line
bottom - the image of the bottom line
left - the image of the left line
right - the image of the right line
topLeft - the image of the top left corner
topRight - the image of the top right corner
bottomLeft - the image of the bottom left corner
bottomRight - the image of the bottom right corner
background - the image of the background (optional)
Returns:
new border instance

createImageScaledBorder

public static Border createImageScaledBorder(Image top,
                                             Image bottom,
                                             Image left,
                                             Image right,
                                             Image topLeft,
                                             Image topRight,
                                             Image bottomLeft,
                                             Image bottomRight,
                                             Image background)
The given top/bottom/left/right images are scaled appropriately across the matching sides of the border and the corners are placed as expected in the four corners. The background image is optional and it will be tiled in the background if necessary.

By default this border does not override background unless a background image is specified

Parameters:
top - the image of the top line
bottom - the image of the bottom line
left - the image of the left line
right - the image of the right line
topLeft - the image of the top left corner
topRight - the image of the top right corner
bottomLeft - the image of the bottom left corner
bottomRight - the image of the bottom right corner
background - the image of the background (optional)
Returns:
new border instance

createHorizonalImageBorder

public static Border createHorizonalImageBorder(Image left,
                                                Image right,
                                                Image center)
This is an image border that can only grow horizontally

Parameters:
left - the image of the left side
right - the image of the right side
center - the image of the center
Returns:
new border instance

createVerticalImageBorder

public static Border createVerticalImageBorder(Image top,
                                               Image bottom,
                                               Image center)
This is an image border that can only grow vertically

Parameters:
top - the image of the top
bottom - the image of the bottom
center - the image of the center
Returns:
new border instance

createImageBorder

public static Border createImageBorder(Image top,
                                       Image topLeft,
                                       Image background)
The given images are tiled appropriately across the matching side of the border, rotated and placed as expected in the four corners. The background image is optional and it will be tiled in the background if necessary.

By default this border does not override background unless a background image is specified.

Notice that this version of the method is potentially much more efficient since images are rotated internally and this might save quite a bit of memory!

The top and topLeft images must be square! The width and height of these images must be equal otherwise rotation won't work as you expect.

Parameters:
top - the image of the top line
topLeft - the image of the top left corner
background - the image of the background (optional)
Returns:
new border instance

createLineBorder

public static Border createLineBorder(int thickness)
Creates a line border that uses the color of the component foreground for drawing

Parameters:
thickness - thickness of the border in pixels
Returns:
new border instance

createDottedBorder

public static Border createDottedBorder(int thickness,
                                        int color)
Creates a dotted border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createDashedBorder

public static Border createDashedBorder(int thickness,
                                        int color)
Creates a dashed border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createDoubleBorder

public static Border createDoubleBorder(int thickness,
                                        int color)
Creates a double border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createDottedBorder

public static Border createDottedBorder(int thickness)
Creates a dotted border with the specified thickness and the theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createDashedBorder

public static Border createDashedBorder(int thickness)
Creates a dashed border with the specified thickness and the theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createDoubleBorder

public static Border createDoubleBorder(int thickness)
Creates a double border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createOutsetBorder

public static Border createOutsetBorder(int thickness)
Creates an outset border with the specified thickness and theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createOutsetBorder

public static Border createOutsetBorder(int thickness,
                                        int color)
Creates an outset border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createInsetBorder

public static Border createInsetBorder(int thickness)
Creates an inset border with the specified thickness and theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createInsetBorder

public static Border createInsetBorder(int thickness,
                                       int color)
Creates an inset border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createGrooveBorder

public static Border createGrooveBorder(int thickness)
Creates a groove border with the specified thickness and theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createGrooveBorder

public static Border createGrooveBorder(int thickness,
                                        int color)
Creates a groove border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createRidgeBorder

public static Border createRidgeBorder(int thickness)
Creates a ridge border with the specified thickness and theme colors

Parameters:
thickness - The border thickness in pixels
Returns:
The border

createRidgeBorder

public static Border createRidgeBorder(int thickness,
                                       int color)
Creates a ridge border with the specified thickness and color

Parameters:
thickness - The border thickness in pixels
color - The border color
Returns:
The border

createLineBorder

public static Border createLineBorder(int thickness,
                                      java.lang.String title)
Creates a line border with the specified title

Parameters:
thickness - thickness of the border in pixels
title - The border's title
Returns:
new border instance

createLineBorder

public static Border createLineBorder(int thickness,
                                      int color,
                                      java.lang.String title)
Creates a line border that uses the given color for the component

Parameters:
thickness - thickness of the border in pixels
color - the color for the border
title - The border's title
Returns:
new border instance

createLineBorder

public static Border createLineBorder(int thickness,
                                      int color)
Creates a line border that uses the given color for the component

Parameters:
thickness - thickness of the border in pixels
color - the color for the border
Returns:
new border instance

createRoundBorder

public static Border createRoundBorder(int arcWidth,
                                       int arcHeight)
Creates a rounded corner border that uses the color of the component foreground for drawing. Due to technical issues (lack of shaped clipping) performance and memory overhead of round borders can be low if used with either a bgImage or translucency!

This border overrides any painter used on the component and would ignor such a painter.

Parameters:
arcWidth - the horizontal diameter of the arc at the four corners.
arcHeight - the vertical diameter of the arc at the four corners.
Returns:
new border instance

createRoundBorder

public static Border createRoundBorder(int arcWidth,
                                       int arcHeight,
                                       boolean outline)
Creates a rounded corner border that uses the color of the component foreground for drawing. Due to technical issues (lack of shaped clipping) performance and memory overhead of round borders can be low if used with either a bgImage or translucency!

This border overrides any painter used on the component and would ignor such a painter.

Parameters:
arcWidth - the horizontal diameter of the arc at the four corners.
arcHeight - the vertical diameter of the arc at the four corners.
outline - whether the round rect border outline should be drawn
Returns:
new border instance

createRoundBorder

public static Border createRoundBorder(int arcWidth,
                                       int arcHeight,
                                       int color)
Creates a rounded border that uses the given color for the component. Due to technical issues (lack of shaped clipping) performance and memory overhead of round borders can be low if used with either a bgImage or translucency!

This border overrides any painter used on the component and would ignor such a painter.

Parameters:
arcWidth - the horizontal diameter of the arc at the four corners.
arcHeight - the vertical diameter of the arc at the four corners.
color - the color for the border
Returns:
new border instance

createRoundBorder

public static Border createRoundBorder(int arcWidth,
                                       int arcHeight,
                                       int color,
                                       boolean outline)
Creates a rounded border that uses the given color for the component. Due to technical issues (lack of shaped clipping) performance and memory overhead of round borders can be low if used with either a bgImage or translucency!

This border overrides any painter used on the component and would ignor such a painter.

Parameters:
arcWidth - the horizontal diameter of the arc at the four corners.
arcHeight - the vertical diameter of the arc at the four corners.
color - the color for the border
outline - whether the round rect border outline should be drawn
Returns:
new border instance

createEtchedLowered

public static Border createEtchedLowered()
Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color

Returns:
new border instance

createEtchedLowered

public static Border createEtchedLowered(int highlight,
                                         int shadow)
Creates a raised etched border with the given colors

Parameters:
highlight - color RGB value
shadow - color RGB value
Returns:
new border instance

createEtchedRaised

public static Border createEtchedRaised()
Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color

Returns:
new border instance

createEtchedRaised

public static Border createEtchedRaised(int highlight,
                                        int shadow)
Creates a raised etched border with the given colors

Parameters:
highlight - color RGB value
shadow - color RGB value
Returns:
new border instance

equals

public boolean equals(java.lang.Object obj)

Overrides:
equals in class java.lang.Object

createCompoundBorder

public static Border createCompoundBorder(Border top,
                                          Border bottom,
                                          Border left,
                                          Border right)

isBackgroundPainter

public boolean isBackgroundPainter()
Returns true if installing this border will override the painting of the component background

Returns:
true if this border replaces the painter

isRectangleType

public boolean isRectangleType()
Returns true if this border type is a rectangle border.

Returns:
true if this border is rectangle

createBevelLowered

public static Border createBevelLowered()
Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color

Returns:
new border instance

createBevelLowered

public static Border createBevelLowered(int highlightOuter,
                                        int highlightInner,
                                        int shadowOuter,
                                        int shadowInner)
Creates a raised bevel border with the given colors

Parameters:
highlightOuter - RGB of the outer edge of the highlight area
highlightInner - RGB of the inner edge of the highlight area
shadowOuter - RGB of the outer edge of the shadow area
shadowInner - RGB of the inner edge of the shadow area
Returns:
new border instance

createBevelRaised

public static Border createBevelRaised()
Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color

Returns:
new border instance

createBevelRaised

public static Border createBevelRaised(int highlightOuter,
                                       int highlightInner,
                                       int shadowOuter,
                                       int shadowInner)
Creates a raised bevel border with the given colors

Parameters:
highlightOuter - RGB of the outer edge of the highlight area
highlightInner - RGB of the inner edge of the highlight area
shadowOuter - RGB of the outer edge of the shadow area
shadowInner - RGB of the inner edge of the shadow area
Returns:
new border instance

setPressedInstance

public void setPressedInstance(Border pressed)
Allows us to define a border that will act as the pressed version of this border

Parameters:
pressed - a border that will be returned by the pressed version method

setFocusedInstance

public void setFocusedInstance(Border focused)
Deprecated. use the getSelectedStyle() method in the component class

Allows us to define a border that will act as the focused version of this border

Parameters:
focused - a border that will be returned by the focused version method

getFocusedInstance

public Border getFocusedInstance()
Deprecated. use the getSelectedStyle() method in the component class

Returns the focused version of the border if one is installed

Returns:
a focused version of this border if one exists

getPressedInstance

public Border getPressedInstance()
Returns the pressed version of the border if one is set by the user

Returns:
the pressed instance of this border

createPressedVersion

public Border createPressedVersion()
When applied to buttons borders produce a version that reverses the effects of the border providing a pressed feel

Returns:
a border that will make the button feel pressed

paintBorderBackground

public void paintBorderBackground(Graphics g,
                                  Component c)
Has effect when the border demands responsibility for background painting normally the painter will perform this work but in this case the border might do it instead.

Parameters:
g - graphics context to draw onto
c - component whose border should be drawn

paint

public void paint(Graphics g,
                  Component c)
Draws the border for the given component, this method is called before a call to background painting is made.

Parameters:
g - graphics context to draw onto
c - component whose border should be drawn

setDefaultBorder

public static void setDefaultBorder(Border border)
Sets the default border to the given value

Parameters:
border - new border value

getDefaultBorder

public static Border getDefaultBorder()
Gets the default border to the given value

Returns:
the default border

getThickness

public int getThickness()
This method returns how thick is the border in pixels, notice this doesn't apply to most border types

Returns:
the Border thickness

setThickness

public void setThickness(int thickness)
This method returns sets the border thickness in pixels, notice this doesn't apply to most border types

Parameters:
thickness - the Border thickness

setPaintOuterBorderFirst

public void setPaintOuterBorderFirst(boolean paintOuterBorderFirst)
Allows toggling the order in which the outer and inner borders are painted for the Outer border type

Parameters:
paintOuterBorderFirst - whether the outside border should be painter first

isPaintOuterBorderFirst

public boolean isPaintOuterBorderFirst()
Allows toggling the order in which the outer and inner borders are painted for the Outer border type

Returns:
whether the outside border should be painter first

getCompoundBorders

public Border[] getCompoundBorders()
This method returns the Compound Borders array. The array size is 4 and the borders arranged as follows : Border[] borders = getCompoundBorders(); Border top = borders[Component.TOP]; Border bottom = borders[Component.BOTTOM]; Border left = borders[Component.LEFT]; Border right = borders[Component.RIGHT];

Returns:
the borders array or null if this is not a Compound Border

lock

public void lock()
This callback indicates that a component pointing at this border is initialized, this method is useful for image borders whose lock methods are implicitly invoked. This method may be invoked multiple times.


unlock

public void unlock()
This callback indicates that a component pointing at this border is now deinitilized This method may be invoked multiple times.