org.jfree.util

## Class ResourceBundleSupport

- java.lang.Object
- - 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

Constructors
`` `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

Methods
`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.