Class ResourceBundleSupport

java.lang.Object
org.jfree.util.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
 
  • Field Details

    • resources

      private ResourceBundle resources
      The resource bundle that will be used for local lookups.
    • cache

      private TreeMap cache
      A cache for string values, as looking up the cache is faster than looking up the value in the bundle.
    • lookupPath

      private TreeSet lookupPath
      The current lookup path when performing non local lookups. This prevents infinite loops during such lookups.
    • resourceBase

      private String resourceBase
      The name of the local resource bundle.
    • locale

      private Locale locale
      The locale for this bundle.
  • Constructor Details

    • ResourceBundleSupport

      public ResourceBundleSupport(Locale locale, 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(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 Details

    • getResourceBase

      protected final String getResourceBase()
      The base name of the resource bundle.
      Returns:
      the resource bundle's name.
    • 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
      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
    • 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.
    • 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
    • getOptionalMnemonic

      public Integer getOptionalMnemonic(String key)
      Returns an optional mnemonic.
      Parameters:
      key - the key.
      Returns:
      The mnemonic.
    • 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 platform'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:
    • getOptionalKeyStroke

      public KeyStroke getOptionalKeyStroke(String key)
      Returns an optional key stroke.
      Parameters:
      key - the key.
      Returns:
      The key stroke.
    • 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 mask.
      Returns:
      the mnemonic
      See Also:
    • getOptionalKeyStroke

      public KeyStroke getOptionalKeyStroke(String key, int mask)
      Returns an optional key stroke.
      Parameters:
      key - the key.
      mask - the mask.
      Returns:
      The key stroke.
    • 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
    • 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
    • createIcon

      private ImageIcon createIcon(String resourceName, boolean scale, boolean large)
      Attempts to load an image from classpath. If this fails, an empty image icon is returned.
      Parameters:
      resourceName - the name of the image. The name should be a global resource name.
      scale - true, if the image should be scaled, false otherwise
      large - true, if the image should be scaled to 24x24, or false for 16x16
      Returns:
      the image icon.
    • createMnemonic

      private Integer createMnemonic(String keyString)
      Creates the Mnemonic from the given String. The String consists of the name of the VK constants of the class KeyEvent without VK_*.
      Parameters:
      keyString - the string
      Returns:
      the mnemonic as integer
    • getMenuKeyMask

      private int getMenuKeyMask()
      Returns the plattforms default menu shortcut keymask.
      Returns:
      the default key mask.
    • createTransparentImage

      private BufferedImage createTransparentImage(int width, int height)
      Creates a transparent image. These can be used for aligning menu items.
      Parameters:
      width - the width.
      height - the height.
      Returns:
      the created transparent image.
    • createTransparentIcon

      public 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 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
    • getLocale

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