net.infonode.tabbedpanel.border
Class OpenContentBorder

java.lang.Object
  extended by net.infonode.tabbedpanel.border.OpenContentBorder
All Implemented Interfaces:
java.io.Serializable, javax.swing.border.Border

public class OpenContentBorder
extends java.lang.Object
implements javax.swing.border.Border, java.io.Serializable

OpenContentBorder is a border that draws a 1 pixel wide line border around a component that is used as content area component in a tabbed panel. The border also optionally draws a highlight inside the line on the top and left sides of the component. It is open, i.e. no content border will be drawn where the highlighted tab in the tabbed panel is located.

If the highlighted tab has a ShapedBorder its shape will be used to calculate where the OpenContentBorder should be open.

Version:
$Revision: 1.29 $
Author:
$Author: johan $
See Also:
TabbedPanel, Serialized Form

Field Summary
private  ColorProvider bottomRightLineColor
           
private  ColorProvider highlightColorProvider
           
private static long serialVersionUID
           
private  int tabLeftInset
           
private  ColorProvider topLeftLineColor
           
 
Constructor Summary
OpenContentBorder()
          Constructor.
OpenContentBorder(java.awt.Color color)
          Constructs a OpenContentBorder without highlight and with the given color as line color.
OpenContentBorder(java.awt.Color color, java.awt.Color highlightColor)
          Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.
OpenContentBorder(java.awt.Color color, int tabLeftInset)
          Constructor.
OpenContentBorder(ColorProvider topLeftLineColor, ColorProvider bottomRightLineColor, ColorProvider highlightColorProvider, int tabLeftInset)
          Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.
OpenContentBorder(ColorProvider lineColor, ColorProvider highlightColorProvider, int tabLeftInset)
          Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.
 
Method Summary
private static void drawLine(java.awt.Graphics graphics, int x1, int y1, int x2, int y2)
           
 java.awt.Insets getBorderInsets(java.awt.Component c)
           
private static int getLineIntersection(int edge, float x1, float y1, float x2, float y2, Direction orientation)
           
private static java.awt.Point getTabBounds(java.awt.Component c, Tab tab, Direction orientation, int x, int y, int width, int height)
           
 boolean isBorderOpaque()
           
 void paintBorder(java.awt.Component c, java.awt.Graphics g, int x, int y, int width, int height)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

topLeftLineColor

private ColorProvider topLeftLineColor

bottomRightLineColor

private ColorProvider bottomRightLineColor

highlightColorProvider

private ColorProvider highlightColorProvider

tabLeftInset

private int tabLeftInset
Constructor Detail

OpenContentBorder

public OpenContentBorder(java.awt.Color color,
                         int tabLeftInset)
Constructor.

Parameters:
color - the line color
tabLeftInset - the left border inset of the tab

OpenContentBorder

public OpenContentBorder()
Constructor. Uses the TabbedPane.darkShadow color from the UIManager as line color.


OpenContentBorder

public OpenContentBorder(java.awt.Color color)
Constructs a OpenContentBorder without highlight and with the given color as line color.

Parameters:
color - the line color

OpenContentBorder

public OpenContentBorder(java.awt.Color color,
                         java.awt.Color highlightColor)
Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.

Parameters:
color - the line color
highlightColor - the highlight color

OpenContentBorder

public OpenContentBorder(ColorProvider lineColor,
                         ColorProvider highlightColorProvider,
                         int tabLeftInset)
Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.

Parameters:
lineColor - the line color provider
highlightColorProvider - the highlight color provider
tabLeftInset - the left border inset of the tab

OpenContentBorder

public OpenContentBorder(ColorProvider topLeftLineColor,
                         ColorProvider bottomRightLineColor,
                         ColorProvider highlightColorProvider,
                         int tabLeftInset)
Constructs a OpenContentBorder with highlight and with the given colors as line color and highlight color.

Parameters:
topLeftLineColor - the line color provider for the top and left lines
bottomRightLineColor - the line color provider for the bottom and right lines
highlightColorProvider - the highlight color provider
tabLeftInset - the left border inset of the tab
Method Detail

getLineIntersection

private static int getLineIntersection(int edge,
                                       float x1,
                                       float y1,
                                       float x2,
                                       float y2,
                                       Direction orientation)

getTabBounds

private static java.awt.Point getTabBounds(java.awt.Component c,
                                           Tab tab,
                                           Direction orientation,
                                           int x,
                                           int y,
                                           int width,
                                           int height)

paintBorder

public void paintBorder(java.awt.Component c,
                        java.awt.Graphics g,
                        int x,
                        int y,
                        int width,
                        int height)
Specified by:
paintBorder in interface javax.swing.border.Border

drawLine

private static void drawLine(java.awt.Graphics graphics,
                             int x1,
                             int y1,
                             int x2,
                             int y2)

getBorderInsets

public java.awt.Insets getBorderInsets(java.awt.Component c)
Specified by:
getBorderInsets in interface javax.swing.border.Border

isBorderOpaque

public boolean isBorderOpaque()
Specified by:
isBorderOpaque in interface javax.swing.border.Border