org.jfree.util
Class ResourceBundleSupport

java.lang.Object
  extended by org.jfree.util.ResourceBundleSupport

public class ResourceBundleSupport
extends java.lang.Object

An utility class to ease up using property-file resource bundles.

The class support references within the resource bundle set to minimize the occurence of duplicate keys. References are given in the format:

 a.key.name=@referenced.key
 

A lookup to a key in an other resource bundle should be written by

 a.key.name=@@resourcebundle_name@referenced.key
 

Author:
Thomas Morgner

Constructor Summary
  ResourceBundleSupport(java.util.Locale locale, java.util.ResourceBundle resourceBundle)
          Creates a new instance.
protected ResourceBundleSupport(java.util.Locale locale, java.util.ResourceBundle resourceBundle, java.lang.String baseName)
          Creates a new instance.
  ResourceBundleSupport(java.util.Locale locale, java.lang.String baseName)
          Creates a new instance.
  ResourceBundleSupport(java.util.ResourceBundle resourceBundle)
          Creates a new instance.
protected ResourceBundleSupport(java.util.ResourceBundle resourceBundle, java.lang.String baseName)
          Creates a new instance.
  ResourceBundleSupport(java.lang.String baseName)
          Creates a new instance.
 
Method Summary
 javax.swing.JMenu createMenu(java.lang.String keyPrefix)
          Returns a JMenu created from a resource bundle definition.
 javax.swing.Icon createTransparentIcon(int width, int height)
          Creates a transparent icon.
 java.lang.String formatMessage(java.lang.String key, java.lang.Object parameter)
          Formats the message stored in the resource bundle (using a MessageFormat).
 java.lang.String formatMessage(java.lang.String key, java.lang.Object[] parameters)
          Formats the message stored in the resource bundle (using a MessageFormat).
 java.lang.String formatMessage(java.lang.String key, java.lang.Object par1, java.lang.Object par2)
          Formats the message stored in the resource bundle (using a MessageFormat).
 javax.swing.Icon getIcon(java.lang.String key)
          Returns an unscaled icon.
 javax.swing.Icon getIcon(java.lang.String key, boolean large)
          Returns an scaled icon suitable for buttons or menus.
 javax.swing.KeyStroke getKeyStroke(java.lang.String key)
          Returns the keystroke stored at the given resourcebundle key.
 javax.swing.KeyStroke getKeyStroke(java.lang.String key, int mask)
          Returns the keystroke stored at the given resourcebundle key.
 java.util.Locale getLocale()
          Returns the current locale for this resource bundle.
 java.lang.Integer getMnemonic(java.lang.String key)
          Returns the mnemonic stored at the given resourcebundle key.
 javax.swing.KeyStroke getOptionalKeyStroke(java.lang.String key)
          Returns an optional key stroke.
 javax.swing.KeyStroke getOptionalKeyStroke(java.lang.String key, int mask)
          Returns an optional key stroke.
 java.lang.Integer getOptionalMnemonic(java.lang.String key)
          Returns an optional mnemonic.
protected  java.lang.String getResourceBase()
          The base name of the resource bundle.
 java.net.URL getResourceURL(java.lang.String key)
          Returns a URL pointing to a resource located in the classpath.
 java.lang.String getString(java.lang.String key)
          Gets a string for the given key from this resource bundle or one of its parents.
protected  java.lang.String internalGetString(java.lang.String key)
          Performs the lookup for the given key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceBundleSupport

public ResourceBundleSupport(java.util.Locale locale,
                             java.lang.String baseName)
Creates a new instance.

Parameters:
locale - the locale.
baseName - the base name of the resource bundle, a fully qualified class name

ResourceBundleSupport

protected ResourceBundleSupport(java.util.Locale locale,
                                java.util.ResourceBundle resourceBundle,
                                java.lang.String baseName)
Creates a new instance.

Parameters:
locale - the locale for which this resource bundle is created.
resourceBundle - the resourcebundle
baseName - the base name of the resource bundle, a fully qualified class name

ResourceBundleSupport

public ResourceBundleSupport(java.util.Locale locale,
                             java.util.ResourceBundle resourceBundle)
Creates a new instance.

Parameters:
locale - the locale for which the resource bundle is created.
resourceBundle - the resourcebundle

ResourceBundleSupport

public ResourceBundleSupport(java.lang.String baseName)
Creates a new instance.

Parameters:
baseName - the base name of the resource bundle, a fully qualified class name

ResourceBundleSupport

protected ResourceBundleSupport(java.util.ResourceBundle resourceBundle,
                                java.lang.String baseName)
Creates a new instance.

Parameters:
resourceBundle - the resourcebundle
baseName - the base name of the resource bundle, a fully qualified class name

ResourceBundleSupport

public ResourceBundleSupport(java.util.ResourceBundle resourceBundle)
Creates a new instance.

Parameters:
resourceBundle - the resourcebundle
Method Detail

getResourceBase

protected final java.lang.String getResourceBase()
The base name of the resource bundle.

Returns:
the resource bundle's name.

getString

public java.lang.String getString(java.lang.String key)
Gets a string for the given key from this resource bundle or one of its parents. If the key is a link, the link is resolved and the referenced string is returned instead.

Parameters:
key - the key for the desired string
Returns:
the string for the given key
Throws:
java.lang.NullPointerException - if key is null
java.util.MissingResourceException - if no object for the given key can be found
java.lang.ClassCastException - if the object found for the given key is not a string

internalGetString

protected java.lang.String internalGetString(java.lang.String key)
Performs the lookup for the given key. If the key points to a link the link is resolved and that key is looked up instead.

Parameters:
key - the key for the string
Returns:
the string for the given key

getIcon

public javax.swing.Icon getIcon(java.lang.String key,
                                boolean large)
Returns an scaled icon suitable for buttons or menus.

Parameters:
key - the name of the resource bundle key
large - true, if the image should be scaled to 24x24, or false for 16x16
Returns:
the icon.

getIcon

public javax.swing.Icon getIcon(java.lang.String key)
Returns an unscaled icon.

Parameters:
key - the name of the resource bundle key
Returns:
the icon.

getMnemonic

public java.lang.Integer getMnemonic(java.lang.String key)
Returns the mnemonic stored at the given resourcebundle key. The mnemonic should be either the symbolic name of one of the KeyEvent.VK_* constants (without the 'VK_') or the character for that key.

For the enter key, the resource bundle would therefore either contain "ENTER" or "\n".

 a.resourcebundle.key=ENTER
 an.other.resourcebundle.key=\n
 

Parameters:
key - the resourcebundle key
Returns:
the mnemonic

getOptionalMnemonic

public java.lang.Integer getOptionalMnemonic(java.lang.String key)
Returns an optional mnemonic.

Parameters:
key - the key.
Returns:
The mnemonic.

getKeyStroke

public javax.swing.KeyStroke getKeyStroke(java.lang.String key)
Returns the keystroke stored at the given resourcebundle key.

The keystroke will be composed of a simple key press and the plattform's MenuKeyMask.

The keystrokes character key should be either the symbolic name of one of the KeyEvent.VK_* constants or the character for that key.

For the 'A' key, the resource bundle would therefore either contain "VK_A" or "a".

 a.resourcebundle.key=VK_A
 an.other.resourcebundle.key=a
 

Parameters:
key - the resourcebundle key
Returns:
the mnemonic
See Also:
Toolkit.getMenuShortcutKeyMask()

getOptionalKeyStroke

public javax.swing.KeyStroke getOptionalKeyStroke(java.lang.String key)
Returns an optional key stroke.

Parameters:
key - the key.
Returns:
The key stroke.

getKeyStroke

public javax.swing.KeyStroke getKeyStroke(java.lang.String key,
                                          int mask)
Returns the keystroke stored at the given resourcebundle key.

The keystroke will be composed of a simple key press and the given KeyMask. If the KeyMask is zero, a plain Keystroke is returned.

The keystrokes character key should be either the symbolic name of one of the KeyEvent.VK_* constants or the character for that key.

For the 'A' key, the resource bundle would therefore either contain "VK_A" or "a".

 a.resourcebundle.key=VK_A
 an.other.resourcebundle.key=a
 

Parameters:
key - the resourcebundle key.
mask - the mask.
Returns:
the mnemonic
See Also:
Toolkit.getMenuShortcutKeyMask()

getOptionalKeyStroke

public javax.swing.KeyStroke getOptionalKeyStroke(java.lang.String key,
                                                  int mask)
Returns an optional key stroke.

Parameters:
key - the key.
mask - the mask.
Returns:
The key stroke.

createMenu

public javax.swing.JMenu createMenu(java.lang.String keyPrefix)
Returns a JMenu created from a resource bundle definition.

The menu definition consists of two keys, the name of the menu and the mnemonic for that menu. Both keys share a common prefix, which is extended by ".name" for the name of the menu and ".mnemonic" for the mnemonic.

 # define the file menu
 menu.file.name=File
 menu.file.mnemonic=F
 
The menu definition above can be used to create the menu by calling createMenu ("menu.file").

Parameters:
keyPrefix - the common prefix for that menu
Returns:
the created menu

getResourceURL

public java.net.URL getResourceURL(java.lang.String key)
Returns a URL pointing to a resource located in the classpath. The resource is looked up using the given key.

Example: The load a file named 'logo.gif' which is stored in a java package named 'org.jfree.resources':

 mainmenu.logo=org/jfree/resources/logo.gif
 
The URL for that file can be queried with: getResource("mainmenu.logo");.

Parameters:
key - the key for the resource
Returns:
the resource URL

createTransparentIcon

public javax.swing.Icon createTransparentIcon(int width,
                                              int height)
Creates a transparent icon. The Icon can be used for aligning menu items.

Parameters:
width - the width of the new icon
height - the height of the new icon
Returns:
the created transparent icon.

formatMessage

public java.lang.String formatMessage(java.lang.String key,
                                      java.lang.Object parameter)
Formats the message stored in the resource bundle (using a MessageFormat).

Parameters:
key - the resourcebundle key
parameter - the parameter for the message
Returns:
the formated string

formatMessage

public java.lang.String formatMessage(java.lang.String key,
                                      java.lang.Object par1,
                                      java.lang.Object par2)
Formats the message stored in the resource bundle (using a MessageFormat).

Parameters:
key - the resourcebundle key
par1 - the first parameter for the message
par2 - the second parameter for the message
Returns:
the formated string

formatMessage

public java.lang.String formatMessage(java.lang.String key,
                                      java.lang.Object[] parameters)
Formats the message stored in the resource bundle (using a MessageFormat).

Parameters:
key - the resourcebundle key
parameters - the parameter collection for the message
Returns:
the formated string

getLocale

public java.util.Locale getLocale()
Returns the current locale for this resource bundle.

Returns:
the locale.