public class ResourcePicker
extends java.util.ResourceBundle
The table show here contains all of the commonly used extension.
| Component | Extension relavent | ||||||
|---|---|---|---|---|---|---|---|
| javax.swing.JComponent | 
       
  | 
   ||||||
| javax.swing.AbstractButton | 
       
  | 
   ||||||
| javax.swing.text.JTextComponent | 
       
  | 
   ||||||
| javax.swing.text.JLabel | 
       
  | 
   ||||||
| javax.swing.JComboBox,
          javax.swing.JList  | 
     Looks for properties .0, .1, .2 etc to construct a simple list model. It is not recommended that people use this code. | ||||||
| javax.swing.JTable | Same as above but for the TableHeaders. Safer to use as not part of the actual selection. | ||||||
| javax.swing.JMenuBar,
          javax.swing.JPopupMenu  | 
     No properties, just fills the properties of contained menus. | ||||||
| javax.swing.JFrame,
          javax.swing.JInternalFrame, javax.swing.JDialog  | 
     
       
  | 
   
Bonus feature is that if it finds a string that starts with @> then it will perform an indirection and look up the resource by this string. Note the code will fail safe if there is a networks but with a severe performance hit.
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
ResourcePicker.ResourceBase
A label interface that says to restart the lable tree from here. 
 | 
static interface  | 
ResourcePicker.ResourceFree
A label interface that implies that whilst the panel is named it doesn't
 have any interesting properties to be set so it can be ignored. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
protected java.util.ResourceBundle[] | 
m_defaultRes
The default resource bundles expanded parent hierarchy. 
 | 
protected java.text.MessageFormat | 
m_formatter  | 
protected java.util.Vector | 
m_keyList
Combined list of keys used by the resource bundles for use in enumerating
 keys. 
 | 
protected java.util.ResourceBundle[] | 
m_resource
The main resource bundles expanded parent hierarchy. 
 | 
static java.lang.String | 
s_INDIRECTION
This prefix is used for resource indirection, this can be usefull in some
 cases where we need to reuse strings, but want to save on translation costs. 
 | 
| Constructor and Description | 
|---|
ResourcePicker(java.lang.Class clazz)
This constructor looks for a .res.Resource relative to the class
 provided. 
 | 
ResourcePicker(java.lang.Class clazz,
              java.lang.String resource)
This constructor looks for a .res.Resource relative to the class
 provided. 
 | 
ResourcePicker(java.util.ResourceBundle resource)
This constructor uses the resource passed and the default resource
 oracle.bm.util.res.DefaultResource 
 | 
ResourcePicker(java.util.ResourceBundle resource,
              java.util.ResourceBundle defaultRes)
Allow the specification of the default resource rather than
 oracle.bm.util.res.DefaultResource. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
protected void | 
dealWithObject(java.awt.Component current,
              java.lang.StringBuffer resourcePath,
              int leafNamePos)
Overriden method to deal with Components. 
 | 
protected void | 
dealWithObject(javax.swing.JComponent current,
              java.lang.StringBuffer resourcePath,
              int leafNamePos)
Overriden method to deal with JComponents. 
 | 
protected void | 
dealWithObject(java.lang.Object current,
              java.lang.StringBuffer resourcePath,
              int leafNamePos)
For each different type of Object we fill in the appropriate
 resources. 
 | 
void | 
fillComponent(java.awt.Component c)
Fill in the resources for the given Component and for
 any subcomponents if it is a Container. 
 | 
protected void | 
fillSubComponents(java.awt.Container current,
                 java.lang.StringBuffer resourcePath)
Fill in the resources for all the sub Components of the
 given Container. 
 | 
java.lang.String | 
formatString(java.lang.String pattern,
            java.lang.Object[] arguments)
Format a pattern using the given arguments. 
 | 
static ResourcePicker | 
get()  | 
protected javax.swing.table.TableColumnModel | 
getHeaders(java.lang.StringBuffer resourcePath,
          int leafNamePos)
Gets a TableColumnModel for the table to use, initialised with column headings
 from the resource named ???.0, ???.1, etc. 
 | 
javax.swing.Icon | 
getImage(java.lang.String key)
Get an image resource identified by name. 
 | 
javax.swing.ImageIcon | 
getImageResource(java.lang.String iconName)
This gets an image using it's leafname, eg 'WizardImage.gif'. 
 | 
java.util.Enumeration | 
getKeys()
Required method from ResourceBundle. 
 | 
static ResourcePicker | 
getPicker(java.lang.Class c)
Gets the cached ResourcePicker for the given class. 
 | 
static ResourcePicker | 
getPicker(java.lang.Object o)
Gets the cached ResourcePicker for the given object. 
 | 
java.lang.String | 
getString(java.lang.String key,
         java.lang.Object singleReplace)
Convenience method for making a single substitution into an NLS string. 
 | 
java.lang.String | 
getString(java.lang.String key,
         java.lang.Object[] replace)
Get a string that has variables substituted into it 
 | 
java.lang.String | 
getStringResource(java.lang.String name)
Create a getStringResource that does the redirection but without
  adding in any extra objects onto the end. 
 | 
java.lang.String | 
getStringResource(java.lang.StringBuffer resourcePath,
                 java.lang.String type,
                 int leafNamePos)
This get a string resource based on a resourcePath, a type and an
 abbreviated (from end) pathname. 
 | 
java.lang.String | 
getStringResource(java.lang.String name,
                 java.lang.String type)
This get a string resource based on a name and a type. 
 | 
java.lang.String | 
getStringResource(java.lang.String name,
                 java.lang.StringBuffer longName,
                 java.lang.String type)
Deprecated. 
 
You should use getStringResource(StringBuffer,String,int) instead.
 Note that the side-effects and contents of the StringBuffer are different for
 this method. 
 | 
java.lang.String | 
getStringResource(java.lang.String name,
                 java.lang.String type,
                 java.lang.Object[] subst)
Gets a string resource based on a name and a type, substituting the
 given object array into the string, replacing any replacement
 parameters (e.g. 
 | 
protected java.lang.Object | 
handleGetObject(java.lang.String name)
Required process method for ResourceBundle, had to make it public
 here otherwise it gets inlines by the VM rather strangely. 
 | 
void | 
start(java.awt.Container current)
Start from the given Container object and try to find
 resource strings for all of sub Components. 
 | 
public static final java.lang.String s_INDIRECTION
protected java.util.ResourceBundle[] m_resource
protected java.util.ResourceBundle[] m_defaultRes
protected java.text.MessageFormat m_formatter
protected java.util.Vector m_keyList
public ResourcePicker(java.util.ResourceBundle resource,
                      java.util.ResourceBundle defaultRes)
resource - Resource to check firstdefaultRes - Resource to fall back topublic ResourcePicker(java.util.ResourceBundle resource)
resource - Key resource to base picker on.public ResourcePicker(java.lang.Class clazz)
               throws java.util.MissingResourceException
clazz - The class used to find the resourcejava.util.MissingResourceExceptionpublic ResourcePicker(java.lang.Class clazz,
                      java.lang.String resource)
               throws java.util.MissingResourceException
resource - Key resource to base picker on.java.util.MissingResourceExceptionpublic java.lang.String getString(java.lang.String key,
                                  java.lang.Object[] replace)
public java.lang.String getString(java.lang.String key,
                                  java.lang.Object singleReplace)
key - the key of the stringsingleReplace - {0} in the string will be replaced by the toString()
    of this object.public java.lang.String formatString(java.lang.String pattern,
                                     java.lang.Object[] arguments)
pattern - A string pattern to use. Numbers enclosed in
  curly brackets indicate replacement parameters (e.g. {0})arguments - an array of arguments to replace in the pattern.public void start(java.awt.Container current)
This method ignores the name of the top level container.
current - Container to be filled inpublic void fillComponent(java.awt.Component c)
If the name of this top level Component is null then it is taken to be an empty String.
c - Component to be filled inprotected void fillSubComponents(java.awt.Container current,
                                 java.lang.StringBuffer resourcePath)
current - Container for which we want to fill the sub Components.resourcePath - Dot terminated prefix to be used to search for resources.protected void dealWithObject(java.lang.Object current,
                              java.lang.StringBuffer resourcePath,
                              int leafNamePos)
current - Object under examinationresourcePath - Dot terminated prefix to be used to search for resources
                     (should include name of the Object)leafNamePos - Position in prefix for a shortened version of the prefixprotected void dealWithObject(java.awt.Component current,
                              java.lang.StringBuffer resourcePath,
                              int leafNamePos)
current - Component under examinationresourcePath - Dot terminated prefix to be used to search for resources
                     (should included name of the JComponent)leafNamePos - Position in prefix for a shortened version of the prefixprotected void dealWithObject(javax.swing.JComponent current,
                              java.lang.StringBuffer resourcePath,
                              int leafNamePos)
current - JComponent under examinationresourcePath - Dot terminated prefix to be used to search for resources
                     (should included name of the JComponent)leafNamePos - Position in prefix for a shortened version of the prefixprotected javax.swing.table.TableColumnModel getHeaders(java.lang.StringBuffer resourcePath,
                                                        int leafNamePos)
resourcePath - Dot terminated prefix to be used to search for list entriesleafNamePos - Position in prefix for a shortened version of the prefixprotected java.lang.Object handleGetObject(java.lang.String name)
handleGetObject in class java.util.ResourceBundlepublic java.util.Enumeration getKeys()
TODO implement with innner class.
getKeys in class java.util.ResourceBundlepublic java.lang.String getStringResource(java.lang.String name,
                                          java.lang.String type,
                                          java.lang.Object[] subst)
name - A resource to look uptype - sub-type to look upsubst - The set of substitutionspublic java.lang.String getStringResource(java.lang.String name,
                                          java.lang.String type)
These are concatinated thus: name + "." + type
name - A resource to look uptype - sub-type to look uppublic java.lang.String getStringResource(java.lang.String name,
                                          java.lang.StringBuffer longName,
                                          java.lang.String type)
These are concatinated thus: longName + "." + type but it will test in the following order:
name - A resource to look uplongName - The longname for the resourcetype - sub-type to look uppublic java.lang.String getStringResource(java.lang.StringBuffer resourcePath,
                                          java.lang.String type,
                                          int leafNamePos)
These are concatinated thus: resourcePath + type and then a search is done in the following order:
resourcePath - Dot terminated prefix to be used to search for resourcestype - Sub-type to look upleafNamePos - Offset of abbreviated namepublic java.lang.String getStringResource(java.lang.String name)
public javax.swing.Icon getImage(java.lang.String key)
public javax.swing.ImageIcon getImageResource(java.lang.String iconName)
iconName - The name of the image to be searched for.public static final ResourcePicker getPicker(java.lang.Object o)
o - the object whose ResourcePicker should be returned.public static final ResourcePicker getPicker(java.lang.Class c)
c - the class whose ResourcePicker should be returned.public static final ResourcePicker get()