org.pentaho.reporting.libraries.base.util

Class ResourceBundleSupport

public class ResourceBundleSupport extends 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(Locale locale, String baseName)
Creates a new instance.
protected ResourceBundleSupport(Locale locale, ResourceBundle resourceBundle, String baseName)
Creates a new instance.
ResourceBundleSupport(Locale locale, ResourceBundle resourceBundle)
Creates a new instance.
ResourceBundleSupport(String baseName)
Creates a new instance.
protected ResourceBundleSupport(ResourceBundle resourceBundle, String baseName)
Creates a new instance.
ResourceBundleSupport(ResourceBundle resourceBundle)
Creates a new instance.
Method Summary
JMenucreateMenu(String keyPrefix)
Returns a JMenu created from a resource bundle definition.
StringformatMessage(String key, Object parameter)
Formats the message stored in the resource bundle (using a MessageFormat).
StringformatMessage(String key, Object par1, Object par2)
Formats the message stored in the resource bundle (using a MessageFormat).
StringformatMessage(String key, Object[] parameters)
Formats the message stored in the resource bundle (using a MessageFormat).
IcongetIcon(String key, boolean large)
Returns an scaled icon suitable for buttons or menus.
IcongetIcon(String key)
Returns an unscaled icon.
KeyStrokegetKeyStroke(String key)
Returns the keystroke stored at the given resourcebundle key.
KeyStrokegetKeyStroke(String key, int mask)
Returns the keystroke stored at the given resourcebundle key.
LocalegetLocale()
Returns the current locale for this resource bundle.
IntegergetMnemonic(String key)
Returns the mnemonic stored at the given resourcebundle key.
KeyStrokegetOptionalKeyStroke(String key)
Returns the keystroke stored at the given resourcebundle key.
KeyStrokegetOptionalKeyStroke(String key, int mask)
Returns the keystroke stored at the given resourcebundle key.
IntegergetOptionalMnemonic(String key)
Returns the mnemonic stored at the given resourcebundle key.
protected StringgetResourceBase()
The base name of the resource bundle.
URLgetResourceURL(String key)
Returns a URL pointing to a resource located in the classpath.
StringgetString(String key)
Gets a string for the given key from this resource bundle or one of its parents.
protected StringinternalGetString(String key)
Performs the lookup for the given key.

Constructor Detail

ResourceBundleSupport

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

Parameters: locale the locale that should be used to load the resource-bundle. baseName the base name of the resource bundle, a fully qualified class name

ResourceBundleSupport

protected ResourceBundleSupport(Locale locale, ResourceBundle resourceBundle, 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(Locale locale, ResourceBundle resourceBundle)
Creates a new instance.

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

ResourceBundleSupport

public ResourceBundleSupport(String baseName)
Creates a new instance.

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

ResourceBundleSupport

protected ResourceBundleSupport(ResourceBundle resourceBundle, 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(ResourceBundle resourceBundle)
Creates a new instance.

Parameters: resourceBundle the resourcebundle

Method Detail

createMenu

public JMenu createMenu(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

formatMessage

public String formatMessage(String key, 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 String formatMessage(String key, Object par1, 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 String formatMessage(String key, 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

getIcon

public Icon getIcon(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 Icon getIcon(String key)
Returns an unscaled icon.

Parameters: key the name of the resource bundle key

Returns: the icon.

getKeyStroke

public KeyStroke getKeyStroke(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 keystroke

See Also: java.awt.Toolkit#getMenuShortcutKeyMask()

getKeyStroke

public KeyStroke getKeyStroke(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 key-moifier mask to be used to create the keystroke.

Returns: the keystroke that has been generated.

See Also: java.awt.Toolkit#getMenuShortcutKeyMask()

getLocale

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

Returns: the locale.

getMnemonic

public Integer getMnemonic(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

getOptionalKeyStroke

public KeyStroke getOptionalKeyStroke(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 keystroke

See Also: java.awt.Toolkit#getMenuShortcutKeyMask()

getOptionalKeyStroke

public KeyStroke getOptionalKeyStroke(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 key-moifier mask to be used to create the keystroke.

Returns: the keystroke or null if the key is not defined.

See Also: java.awt.Toolkit#getMenuShortcutKeyMask()

getOptionalMnemonic

public Integer getOptionalMnemonic(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 or null, if the mnemonic is not defined.

getResourceBase

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

Returns: the resource bundle's name.

getResourceURL

public URL getResourceURL(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

getString

public String getString(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: NullPointerException if key is null java.util.MissingResourceException if no object for the given key can be found ClassCastException if the object found for the given key is not a string

internalGetString

protected String internalGetString(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