bibliothek.gui.dock.station.screen
Class ScreenDockWindowBorder

java.lang.Object
  extended by bibliothek.gui.dock.station.screen.ScreenDockWindowBorder
All Implemented Interfaces:
javax.swing.border.Border

@ColorCodes(value={"station.screen.border","station.screen.border.line","station.screen.border.line.highlight.inner","station.screen.border.line.highlight.outer","station.screen.border.line.shadow.inner","station.screen.border.line.shadow.outer","station.screen.border.highlight.inner","station.screen.border.highlight.outer","station.screen.border.shadow.inner","station.screen.border.shadow.outer","station.screen.border.hover","station.screen.border.highlight.inner.hover","station.screen.border.highlight.outer.hover","station.screen.border.shadow.inner.hover","station.screen.border.shadow.outer.hover","station.screen.border.selected","station.screen.border.highlight.inner.selected","station.screen.border.highlight.outer.selected","station.screen.border.shadow.inner.selected","station.screen.border.shadow.outer.selected"})
public class ScreenDockWindowBorder
extends java.lang.Object
implements javax.swing.border.Border

This border can be used by ScreenDockWindows to paint a border. The border itself offers methods to paint indications whether the user currently moves or presses the mouse over it. The states however have to be set by window itself.

Author:
Benjamin Sigg

Nested Class Summary
protected  class ScreenDockWindowBorder.BorderColor
          A DockColor representing a color used by this border.
static class ScreenDockWindowBorder.Position
          various positions where the user can grab this border
 
Field Summary
protected  ScreenDockWindowBorder.BorderColor color
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightInner
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightInnerHover
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightInnerSelected
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightOuter
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightOuterHover
           
protected  ScreenDockWindowBorder.BorderColor colorHighlightOuterSelected
           
protected  ScreenDockWindowBorder.BorderColor colorHover
           
protected  ScreenDockWindowBorder.BorderColor colorLine
           
protected  ScreenDockWindowBorder.BorderColor colorLineHighlightInner
           
protected  ScreenDockWindowBorder.BorderColor colorLineHighlightOuter
           
protected  ScreenDockWindowBorder.BorderColor colorLineShadowInner
           
protected  ScreenDockWindowBorder.BorderColor colorLineShadowOuter
           
protected  ScreenDockWindowBorder.BorderColor colorSelected
           
protected  ScreenDockWindowBorder.BorderColor colorShadowInner
           
protected  ScreenDockWindowBorder.BorderColor colorShadowInnerHover
           
protected  ScreenDockWindowBorder.BorderColor colorShadowInnerSelected
           
protected  ScreenDockWindowBorder.BorderColor colorShadowOuter
           
protected  ScreenDockWindowBorder.BorderColor colorShadowOuterHover
           
protected  ScreenDockWindowBorder.BorderColor colorShadowOuterSelected
           
 
Constructor Summary
ScreenDockWindowBorder(ScreenDockWindow window, javax.swing.JComponent target)
          Creates a new border
 
Method Summary
protected  java.awt.Color defaultModify(java.awt.Color color, boolean inner, boolean shadow)
          Creates colors for parts of this border based on some basic color.
 java.awt.Insets getBorderInsets(java.awt.Component c)
           
 DockController getController()
          Gets the DockController which is currently associated with this border
 int getCornerSize()
          Gets the size of the corners in pixels.
protected  java.awt.Color getHoverColor(java.awt.Component c)
          Gets the base color used for painting a region under the mouse
protected  java.awt.Color getHoverColor(java.awt.Component c, boolean inner, boolean shadow)
          Gets a color to paint some part of this border that is under the mouse.
protected  java.awt.Color getLine(java.awt.Component c)
          Gets the color that should be used for painting a line.
protected  java.awt.Color getLine(java.awt.Component c, boolean inner, boolean shadow)
          Gets the color that should be used for painting a line.
 int getMoveSize()
          Gets the size of the area at the top that can be grabbed in pixels.
protected  java.awt.Color getNormalColor(java.awt.Component c)
          Gets a color to paint some part of this border.
protected  java.awt.Color getNormalColor(java.awt.Component c, boolean inner, boolean shadow)
          Gets a color to paint some part of this.
protected  java.awt.Color getSelectedColor(java.awt.Component c)
          Gets a color to paint some part of this border that is under the pressed mouse.
protected  java.awt.Color getSelectedColor(java.awt.Component c, boolean inner, boolean shadow)
          Gets a color to paint some part of this border that is under the pressed mouse.
 boolean isBorderOpaque()
           
 boolean isDrawDividers()
          Tells whether dividing lines are painted
 void paintBorder(java.awt.Component c, java.awt.Graphics g, int x, int y, int width, int height)
           
 void setController(DockController controller)
          Sets the DockController which should be monitored for receiving colors.
 void setCornerSize(int cornerSize)
          Sets the size of the corners in pixels.
 void setDrawDividers(boolean drawDividers)
          Sets whether dividing lines are to be painted or not
 void setMouseOver(ScreenDockWindowBorder.Position mouseOver)
          Sets where the mouse is currently hovering.
 void setMousePressed(ScreenDockWindowBorder.Position mousePressed)
          Sets where the mouse is currently pressed.
 void setMoveSize(int moveSize)
          Sets the size of the area at the top that can be grabbed and used to move the window.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

colorLine

protected final ScreenDockWindowBorder.BorderColor colorLine

colorLineHighlightInner

protected final ScreenDockWindowBorder.BorderColor colorLineHighlightInner

colorLineHighlightOuter

protected final ScreenDockWindowBorder.BorderColor colorLineHighlightOuter

colorLineShadowInner

protected final ScreenDockWindowBorder.BorderColor colorLineShadowInner

colorLineShadowOuter

protected final ScreenDockWindowBorder.BorderColor colorLineShadowOuter

color

protected final ScreenDockWindowBorder.BorderColor color

colorHighlightInner

protected final ScreenDockWindowBorder.BorderColor colorHighlightInner

colorHighlightOuter

protected final ScreenDockWindowBorder.BorderColor colorHighlightOuter

colorShadowInner

protected final ScreenDockWindowBorder.BorderColor colorShadowInner

colorShadowOuter

protected final ScreenDockWindowBorder.BorderColor colorShadowOuter

colorHover

protected final ScreenDockWindowBorder.BorderColor colorHover

colorHighlightInnerHover

protected final ScreenDockWindowBorder.BorderColor colorHighlightInnerHover

colorHighlightOuterHover

protected final ScreenDockWindowBorder.BorderColor colorHighlightOuterHover

colorShadowInnerHover

protected final ScreenDockWindowBorder.BorderColor colorShadowInnerHover

colorShadowOuterHover

protected final ScreenDockWindowBorder.BorderColor colorShadowOuterHover

colorSelected

protected final ScreenDockWindowBorder.BorderColor colorSelected

colorHighlightInnerSelected

protected final ScreenDockWindowBorder.BorderColor colorHighlightInnerSelected

colorHighlightOuterSelected

protected final ScreenDockWindowBorder.BorderColor colorHighlightOuterSelected

colorShadowInnerSelected

protected final ScreenDockWindowBorder.BorderColor colorShadowInnerSelected

colorShadowOuterSelected

protected final ScreenDockWindowBorder.BorderColor colorShadowOuterSelected
Constructor Detail

ScreenDockWindowBorder

public ScreenDockWindowBorder(ScreenDockWindow window,
                              javax.swing.JComponent target)
Creates a new border

Parameters:
window - the window for which this border is used
target - the component which is painted by this
Method Detail

setController

public void setController(DockController controller)
Sets the DockController which should be monitored for receiving colors.

Parameters:
controller - the new controller, can be null

getController

public DockController getController()
Gets the DockController which is currently associated with this border

Returns:
the controller, may be null

setCornerSize

public void setCornerSize(int cornerSize)
Sets the size of the corners in pixels.

Parameters:
cornerSize - the size in pixels, at least 0

getCornerSize

public int getCornerSize()
Gets the size of the corners in pixels.

Returns:
the size in pixels

setMoveSize

public void setMoveSize(int moveSize)
Sets the size of the area at the top that can be grabbed and used to move the window.

Parameters:
moveSize - the size, at least 0

getMoveSize

public int getMoveSize()
Gets the size of the area at the top that can be grabbed in pixels.

Returns:
the size in pixels

setDrawDividers

public void setDrawDividers(boolean drawDividers)
Sets whether dividing lines are to be painted or not

Parameters:
drawDividers - true if lines should be painted

isDrawDividers

public boolean isDrawDividers()
Tells whether dividing lines are painted

Returns:
true if lines are painted

setMouseOver

public void setMouseOver(ScreenDockWindowBorder.Position mouseOver)
Sets where the mouse is currently hovering.

Parameters:
mouseOver - the position, null equals ScreenDockWindowBorder.Position.NOTHING

setMousePressed

public void setMousePressed(ScreenDockWindowBorder.Position mousePressed)
Sets where the mouse is currently pressed.

Parameters:
mousePressed - the position, null equals ScreenDockWindowBorder.Position.NOTHING

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

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

getLine

protected java.awt.Color getLine(java.awt.Component c)
Gets the color that should be used for painting a line.

Parameters:
c - the component for which the line is painted
Returns:
the color, not null

getLine

protected java.awt.Color getLine(java.awt.Component c,
                                 boolean inner,
                                 boolean shadow)
Gets the color that should be used for painting a line.

Parameters:
c - the component for which the line is painted
inner - whether the inner or the outer rectangle is painted
shadow - whether the shadow or the highlight part is painted
Returns:
the color, not null

getHoverColor

protected java.awt.Color getHoverColor(java.awt.Component c)
Gets the base color used for painting a region under the mouse

Parameters:
c - the component for which the border is painted
Returns:
the color, not null

getHoverColor

protected java.awt.Color getHoverColor(java.awt.Component c,
                                       boolean inner,
                                       boolean shadow)
Gets a color to paint some part of this border that is under the mouse.

Parameters:
c - the component for which the border is painted
inner - whether the inner or the outer rectangle is painted
shadow - whether the shadow or the highlight part is painted
Returns:
the color, not null

getSelectedColor

protected java.awt.Color getSelectedColor(java.awt.Component c)
Gets a color to paint some part of this border that is under the pressed mouse.

Parameters:
c - the component for which the border is painted
Returns:
the color, not null

getSelectedColor

protected java.awt.Color getSelectedColor(java.awt.Component c,
                                          boolean inner,
                                          boolean shadow)
Gets a color to paint some part of this border that is under the pressed mouse.

Parameters:
c - the component for which the border is painted
inner - whether the inner or the outer rectangle is painted
shadow - whether the shadow or the highlight part is painted
Returns:
the color, not null

getNormalColor

protected java.awt.Color getNormalColor(java.awt.Component c)
Gets a color to paint some part of this border.

Parameters:
c - the component for which the border is painted
Returns:
the color, not null

getNormalColor

protected java.awt.Color getNormalColor(java.awt.Component c,
                                        boolean inner,
                                        boolean shadow)
Gets a color to paint some part of this.

Parameters:
c - the component for which the border is painted
inner - whether the inner or the outer rectangle is painted
shadow - whether the shadow or the highlight part is painted
Returns:
the color, not null

defaultModify

protected java.awt.Color defaultModify(java.awt.Color color,
                                       boolean inner,
                                       boolean shadow)
Creates colors for parts of this border based on some basic color.

Parameters:
color - the basic color
inner - whether the inner or the outer rectangle is painted
shadow - whether the shadow or the highlight part is painted
Returns:
the modified color