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
    Modifier | Constructor and Description
    --- | ---
    `` | `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
    Modifier and Type | Method and Description
    --- | ---
    `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.