org.argouml.ui
Class LookAndFeelMgr

java.lang.Object
  extended byorg.argouml.ui.LookAndFeelMgr

public class LookAndFeelMgr
extends Object

Controls the look and feel and theme of ArgoUML. LookAndFeelMgr has a "Look and Feel" property which represents the Swing Pluggable Look-and-feel. It also has a "Theme" property which represents a MetalTheme when the Metal look-and-feel is selected.


Field Summary
private static MetalTheme BIG_THEME
           
private static String DEFAULT_KEY
           
private static MetalTheme DEFAULT_THEME
           
private  String defaultLafClass
          The class name of Swing's default look and feel (will be used if the LookAndFeel property is null).
private static MetalTheme HUGE_THEME
           
private static Logger LOG
           
private static String METAL_LAF
           
private static LookAndFeelMgr SINGLETON
           
private static MetalTheme[] THEMES
           
 
Constructor Summary
private LookAndFeelMgr()
          Creates a new instance of LookAndFeelMgr.
 
Method Summary
 String[] getAvailableLookAndFeelNames()
          Returns the display names of the available look and feel choices.
 String[] getAvailableThemeNames()
          Returns the display names of the available theme choices.
 String getCurrentLookAndFeel()
          Returns the string identifier for the current look and feel.
 String getCurrentLookAndFeelName()
          Returns the display name of the current look and feel.
 String getCurrentTheme()
          Returns the string identifier for the current theme.
 String getCurrentThemeName()
          Returns the display name of the current theme.
static LookAndFeelMgr getInstance()
          get the single instance of the LookAndFeelMgr
 String getLookAndFeelFromName(String name)
          Returns the Look and Feel class name identifier for the specified display name, or null if no such Look and Feel is found.
private  MetalTheme getMetalTheme(String themeClass)
          Returns the MetalTheme for the specified class name.
 Font getSmallFont()
           
 Font getStandardFont()
           
 String getThemeFromArg(String arg)
          Detecting the theme from the command line.
 String getThemeFromName(String name)
          Returns the theme class name identifier for the specified display name, or null if no such theme is found.
 void initializeLookAndFeel()
          Sets the appearance of the UI using the current values of the LookAndFeel and Theme properties.
 boolean isThemeCompatibleLookAndFeel(String lafClass)
          Returns true if the specified look and feel class supports setting different themes.
 void printThemeArgs()
          Outputs command-line arguments supported by this class.
 void setCurrentLookAndFeel(String lafClass)
          Sets the current look and feel, storing the new value in Configuration.
 void setCurrentTheme(String themeClass)
          Sets the current theme, storing the new value in Configuration.
private  void setLookAndFeel(String lafClass)
          Sets the look and feel in the GUI by calling UIManager.setLookAndFeel().
private  void setTheme(MetalTheme theme)
          Sets the metal theme in the GUI by calling MetalLookAndFeel.setCurrentTheme().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

private static final Logger LOG

SINGLETON

private static final LookAndFeelMgr SINGLETON

METAL_LAF

private static final String METAL_LAF
See Also:
Constant Field Values

DEFAULT_KEY

private static final String DEFAULT_KEY
See Also:
Constant Field Values

DEFAULT_THEME

private static final MetalTheme DEFAULT_THEME

BIG_THEME

private static final MetalTheme BIG_THEME

HUGE_THEME

private static final MetalTheme HUGE_THEME

THEMES

private static final MetalTheme[] THEMES

defaultLafClass

private String defaultLafClass
The class name of Swing's default look and feel (will be used if the LookAndFeel property is null).

Constructor Detail

LookAndFeelMgr

private LookAndFeelMgr()
Creates a new instance of LookAndFeelMgr.

Method Detail

getInstance

public static LookAndFeelMgr getInstance()
get the single instance of the LookAndFeelMgr

Returns:
the single instance of the LookAndFeelMgr

initializeLookAndFeel

public void initializeLookAndFeel()
Sets the appearance of the UI using the current values of the LookAndFeel and Theme properties.


getThemeFromArg

public String getThemeFromArg(String arg)
Detecting the theme from the command line.

Parameters:
arg - the argument from the command line
Returns:
the theme

printThemeArgs

public void printThemeArgs()
Outputs command-line arguments supported by this class.


getAvailableLookAndFeelNames

public String[] getAvailableLookAndFeelNames()
Returns the display names of the available look and feel choices.

Returns:
look and feel display names

getAvailableThemeNames

public String[] getAvailableThemeNames()
Returns the display names of the available theme choices.

Returns:
theme display names

getLookAndFeelFromName

public String getLookAndFeelFromName(String name)
Returns the Look and Feel class name identifier for the specified display name, or null if no such Look and Feel is found.

Parameters:
name - display name of desired look and feel
Returns:
class name for desired look and feel

getThemeFromName

public String getThemeFromName(String name)
Returns the theme class name identifier for the specified display name, or null if no such theme is found.

Parameters:
name - display name of desired theme
Returns:
class name for desired theme

isThemeCompatibleLookAndFeel

public boolean isThemeCompatibleLookAndFeel(String lafClass)
Returns true if the specified look and feel class supports setting different themes.

Parameters:
lafClass - look and feel class name
Returns:
true if supports themes

getCurrentLookAndFeel

public String getCurrentLookAndFeel()
Returns the string identifier for the current look and feel. This is the class name of the LookAndFeel class for the look and feel. Returns null if no look and feel has been specified, in which case Swing's default look and feel should be used.

Returns:
current look and feel class name

getCurrentLookAndFeelName

public String getCurrentLookAndFeelName()
Returns the display name of the current look and feel.

Returns:
look and feel display name

setCurrentLookAndFeel

public void setCurrentLookAndFeel(String lafClass)
Sets the current look and feel, storing the new value in Configuration. If argument is null, indicates that Swing's default look and feel should be used.

Parameters:
lafClass - class name of desired look and feel

getCurrentTheme

public String getCurrentTheme()
Returns the string identifier for the current theme. This is the class name of the MetalTheme class for the theme. This method should never return null.

Returns:
current theme class name

getCurrentThemeName

public String getCurrentThemeName()
Returns the display name of the current theme.

Returns:
theme display name

setCurrentTheme

public void setCurrentTheme(String themeClass)
Sets the current theme, storing the new value in Configuration. Argument should not be null, and argument class should be an instance of MetalTheme.

Parameters:
themeClass - class name of desired theme

getStandardFont

public Font getStandardFont()
Returns:
the standard textfield font

getSmallFont

public Font getSmallFont()
Returns:
the small font

setLookAndFeel

private void setLookAndFeel(String lafClass)
Sets the look and feel in the GUI by calling UIManager.setLookAndFeel().

Parameters:
lafClass - class name of look and feel

setTheme

private void setTheme(MetalTheme theme)
Sets the metal theme in the GUI by calling MetalLookAndFeel.setCurrentTheme().

Parameters:
theme - new MetalTheme to set

getMetalTheme

private MetalTheme getMetalTheme(String themeClass)
Returns the MetalTheme for the specified class name. Returns the default theme if a corresponding MetalTheme class can not be found.

Parameters:
themeClass - MetalTheme class name
Returns:
MetalTheme object for class name


ArgoUML © 1996-2004 (20050222)ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook