com.jgoodies.looks.plastic

Class PlasticLookAndFeel

Known Direct Subclasses:
Plastic3DLookAndFeel

public class PlasticLookAndFeel
extends MetalLookAndFeel

The base class for the JGoodies Plastic look&feel family. Initializes class and component defaults for the Plastic L&f and provides keys and optional features for the Plastic family.
Version:
$Revision: 1.40 $
Author:
Karsten Lentzsch

Field Summary

static String
BORDER_STYLE_KEY
Client property key to set a border style - shadows the header style.
static String
DEFAULT_THEME_KEY
A System property key to set the default theme.
static String
HIGH_CONTRAST_FOCUS_ENABLED_KEY
A System property key that indicates that the high contrast focus colors shall be choosen - if applicable.
static String
IS_3D_KEY
Client property key to disable the pseudo 3D effect.
static String
TAB_STYLE_DEFAULT_VALUE
A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style.
protected static String
TAB_STYLE_KEY
A System property key for the rendering style of the Plastic TabbedPane.
static String
TAB_STYLE_METAL_VALUE
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.

Constructor Summary

PlasticLookAndFeel()
Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.

Method Summary

static PlasticTheme
createMyDefaultTheme()
Creates and returns the default color theme.
protected static PlasticTheme
createTheme(String themeName)
Creates and returns a color theme from the specified theme name.
static ColorUIResource
getControl()
static ColorUIResource
getControlDarkShadow()
static ColorUIResource
getControlHighlight()
String
getDescription()
Icon
getDisabledIcon(JComponent component, Icon icon)
Returns an icon with a disabled appearance.
static ColorUIResource
getFocusColor()
static FontPolicy
getFontPolicy()
Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.
static boolean
getHighContrastFocusColorsEnabled()
String
getID()
static List
getInstalledThemes()
Lazily initializes and returns the List of installed color themes.
static BorderUIResource
getInternalFrameBorder()
static ColorUIResource
getMenuItemBackground()
static ColorUIResource
getMenuItemSelectedBackground()
static ColorUIResource
getMenuItemSelectedForeground()
static MicroLayoutPolicy
getMicroLayoutPolicy()
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.
String
getName()
static BorderUIResource
getPaletteBorder()
static PlasticTheme
getPlasticTheme()
Lazily initializes and returns the PlasticTheme.
static ColorUIResource
getPrimaryControl()
static ColorUIResource
getPrimaryControlDarkShadow()
static ColorUIResource
getPrimaryControlHighlight()
static ColorUIResource
getPrimaryControlInfo()
static ColorUIResource
getPrimaryControlShadow()
static ColorUIResource
getSimpleInternalFrameBackground()
static ColorUIResource
getSimpleInternalFrameForeground()
static String
getTabStyle()
static ColorUIResource
getTitleTextColor()
static FontUIResource
getTitleTextFont()
static ColorUIResource
getWindowTitleBackground()
static ColorUIResource
getWindowTitleForeground()
static ColorUIResource
getWindowTitleInactiveBackground()
static ColorUIResource
getWindowTitleInactiveForeground()
protected void
initClassDefaults(UIDefaults table)
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
protected void
initComponentDefaults(UIDefaults table)
protected void
initSystemColorDefaults(UIDefaults table)
Unlike my superclass I register a unified shadow color.
void
initialize()
Invoked during UIManager#setLookAndFeel.
protected static void
installDefaultThemes()
Install the default color themes.
static void
installTheme(PlasticTheme theme)
Installs a color theme.
protected boolean
is3DEnabled()
static boolean
isSelectTextOnKeyboardFocusGained()
static void
set3DEnabled(boolean b)
static void
setFontPolicy(FontPolicy fontPolicy)
Sets the FontPolicy to be used with the JGoodies Plastic L&F family.
static void
setHighContrastFocusColorsEnabled(boolean b)
static void
setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs.
static void
setPlasticTheme(PlasticTheme theme)
Sets the theme for colors and fonts used by the Plastic L&F.
static void
setSelectTextOnKeyboardFocusGained(boolean b)
Sets whether text field text shall be selected when it gains focus via the keyboard.
static void
setTabStyle(String tabStyle)
void
uninitialize()
Invoked during UIManager#setLookAndFeel.

Field Details

BORDER_STYLE_KEY

public static final String BORDER_STYLE_KEY
Client property key to set a border style - shadows the header style.

DEFAULT_THEME_KEY

public static final String DEFAULT_THEME_KEY
A System property key to set the default theme.

HIGH_CONTRAST_FOCUS_ENABLED_KEY

public static final String HIGH_CONTRAST_FOCUS_ENABLED_KEY
A System property key that indicates that the high contrast focus colors shall be choosen - if applicable. If not set, some focus colors look good but have low contrast. Basically, the low contrast scheme uses the Plastic colors before 1.0.7, and the high contrast scheme is 1.0.7 - 1.0.9.

IS_3D_KEY

public static final String IS_3D_KEY
Client property key to disable the pseudo 3D effect.

TAB_STYLE_DEFAULT_VALUE

public static final String TAB_STYLE_DEFAULT_VALUE
A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style. This is the default.

TAB_STYLE_KEY

protected static final String TAB_STYLE_KEY
A System property key for the rendering style of the Plastic TabbedPane. Valid values are: default for the Plastic 1.0 tabs, and metal for the Metal L&F tabs.

TAB_STYLE_METAL_VALUE

public static final String TAB_STYLE_METAL_VALUE
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.

Constructor Details

PlasticLookAndFeel

public PlasticLookAndFeel()
Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.

Method Details

createMyDefaultTheme

public static PlasticTheme createMyDefaultTheme()
Creates and returns the default color theme. Honors the current platform and platform flavor - if available.
Returns:
the default color theme for the current environment

createTheme

protected static PlasticTheme createTheme(String themeName)
Creates and returns a color theme from the specified theme name.
Parameters:
themeName - the unqualified name of the theme to create
Returns:
the associated color theme or null in case of a problem

getControl

public static ColorUIResource getControl()

getControlDarkShadow

public static ColorUIResource getControlDarkShadow()

getControlHighlight

public static ColorUIResource getControlHighlight()

getDescription

public String getDescription()

getDisabledIcon

public Icon getDisabledIcon(JComponent component,
                            Icon icon)
Returns an icon with a disabled appearance. This method is used to generate a disabled icon when one has not been specified.

This method will be used only on JDK 5.0 and later.

Parameters:
component - the component that will display the icon, may be null.
icon - the icon to generate disabled icon from.
Returns:
disabled icon, or null if a suitable icon can not be generated.

getFocusColor

public static ColorUIResource getFocusColor()

getFontPolicy

public static FontPolicy getFontPolicy()
Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family. If a FontPolicy has been set, it'll be returned. Otherwise, this method checks if a FontPolicy or FontSet is defined in the system properties or UIDefaults. If so, it is returned. If no FontPolicy has been set for this look, in the system properties or UIDefaults, the default Plastic font policy will be returned.
Returns:
the FontPolicy set for this Look&feel - if any, the FontPolicy specified in the system properties or UIDefaults - if any, or the default Plastic font policy.

getHighContrastFocusColorsEnabled

public static boolean getHighContrastFocusColorsEnabled()

getID

public String getID()

getInstalledThemes

public static List getInstalledThemes()
Lazily initializes and returns the List of installed color themes.
Returns:
a list of installed color/font themes

getInternalFrameBorder

public static BorderUIResource getInternalFrameBorder()

getMenuItemBackground

public static ColorUIResource getMenuItemBackground()

getMenuItemSelectedBackground

public static ColorUIResource getMenuItemSelectedBackground()

getMenuItemSelectedForeground

public static ColorUIResource getMenuItemSelectedForeground()

getMicroLayoutPolicy

public static MicroLayoutPolicy getMicroLayoutPolicy()
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs. If a MicroLayoutPolicy has been set for this look, it'll be returned. Otherwise, the default Plastic micro layout policy will be returned.
Returns:
the MicroLayoutPolicy set for this Look&feel - if any, or the default Plastic MicroLayoutPolicy.

getName

public String getName()

getPaletteBorder

public static BorderUIResource getPaletteBorder()

getPlasticTheme

public static PlasticTheme getPlasticTheme()
Lazily initializes and returns the PlasticTheme. In Java 5 or later, this method looks up the theme using MetalLookAndFeel#getCurrentTheme. In Java 1.4 it is requested from the UIManager. Both access methods use an AppContext to store the theme, so that applets in different contexts don't share the theme.
Returns:
the current PlasticTheme

getPrimaryControl

public static ColorUIResource getPrimaryControl()

getPrimaryControlDarkShadow

public static ColorUIResource getPrimaryControlDarkShadow()

getPrimaryControlHighlight

public static ColorUIResource getPrimaryControlHighlight()

getPrimaryControlInfo

public static ColorUIResource getPrimaryControlInfo()

getPrimaryControlShadow

public static ColorUIResource getPrimaryControlShadow()

getSimpleInternalFrameBackground

public static ColorUIResource getSimpleInternalFrameBackground()

getSimpleInternalFrameForeground

public static ColorUIResource getSimpleInternalFrameForeground()

getTabStyle

public static String getTabStyle()

getTitleTextColor

public static ColorUIResource getTitleTextColor()

getTitleTextFont

public static FontUIResource getTitleTextFont()

getWindowTitleBackground

public static ColorUIResource getWindowTitleBackground()

getWindowTitleForeground

public static ColorUIResource getWindowTitleForeground()

getWindowTitleInactiveBackground

public static ColorUIResource getWindowTitleInactiveBackground()

getWindowTitleInactiveForeground

public static ColorUIResource getWindowTitleInactiveForeground()

initClassDefaults

protected void initClassDefaults(UIDefaults table)
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
Parameters:
table - the UIDefaults table to work with
See Also:
javax.swing.plaf.basic.BasicLookAndFeel.getDefaults()

initComponentDefaults

protected void initComponentDefaults(UIDefaults table)

initSystemColorDefaults

protected void initSystemColorDefaults(UIDefaults table)
Unlike my superclass I register a unified shadow color. This color is used by my ThinBevelBorder class.
Parameters:
table - the UIDefaults table to work with

initialize

public void initialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we install the ShadowPopupFactory.

installDefaultThemes

protected static void installDefaultThemes()
Install the default color themes.

installTheme

public static void installTheme(PlasticTheme theme)
Installs a color theme.
Parameters:
theme - the theme to install

is3DEnabled

protected boolean is3DEnabled()

isSelectTextOnKeyboardFocusGained

public static boolean isSelectTextOnKeyboardFocusGained()

set3DEnabled

public static void set3DEnabled(boolean b)

setFontPolicy

public static void setFontPolicy(FontPolicy fontPolicy)
Sets the FontPolicy to be used with the JGoodies Plastic L&F family. If the specified policy is null, the default will be reset.
Parameters:
fontPolicy - the FontPolicy to be used with the JGoodies Plastic L&F family, or null to reset to the default

setHighContrastFocusColorsEnabled

public static void setHighContrastFocusColorsEnabled(boolean b)

setMicroLayoutPolicy

public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs. If the specified policy is null, the default will be reset.
Parameters:
microLayoutPolicy - the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs, or null to reset to the default

setPlasticTheme

public static void setPlasticTheme(PlasticTheme theme)
Sets the theme for colors and fonts used by the Plastic L&F.

After setting the theme, you need to re-install the Look&Feel, as well as update the UI's of any previously created components - just as if you'd change the Look&Feel.

Parameters:
theme - the PlasticTheme to be set

setSelectTextOnKeyboardFocusGained

public static void setSelectTextOnKeyboardFocusGained(boolean b)
Sets whether text field text shall be selected when it gains focus via the keyboard. This is enabled on Windows by default and disabled on all other platforms.
Parameters:
b -

setTabStyle

public static void setTabStyle(String tabStyle)

uninitialize

public void uninitialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we uninstall the ShadowPopupFactory.

Copyright © 2001-2008 JGoodies Karsten Lentzsch. All Rights Reserved.