|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectwicket.resource.ComponentStringResourceLoader
This string resource loader attempts to find the resource from a bundle that
corresponds the the supplied component object or one of its parent
containers. Generally the component will be an instance of Page,
but it may also be an instance of any reusable component that is packaged
along with its own resource files. If the component is not an instance of
Page then it must be a component that has already been added
to a page.
The search order for resources is built around the containers that hold the component (if it is not a page). Consider a Page that contains a Panel that contains a Label. If we pass the Label as the component then resource loading will first look for the resource against the page, then against the panel and finally against the label.
The above search order may seem slightly odd at first, but can be explained thus: Team A writes a new component X and packages it as a reusable Wicket component along with all required resources. Team B then creates a new container component Y that holds a instance of an X. However, Team B wishes the text to be different to that which was provided with X so rather than needing to change X, they include override values in the resources for Y. Finally, Team C makes use of component Y in a page they are writing. Initially they are happy with the text for Y so they do not include any override values in the resources for the page. However, after demonstrating to the customer, the customer requests the text for Y to be different. Team C need only provide override values against their page and thus do not need to change Y.
This implementation is fully aware of both locale and style values when trying to obtain the appropriate resources.
In addition to the above search order, each component that is being searched for a resource also includes the resources from any parent classes that it inherits from. For example, PageA extends CommonBasePage which in turn extends WebPage. When a resource lookup is requested on PageA, the resource bundle for PageA is first checked. If the resource is not found in this bundle then the resource bundle for CommonBasePage is checked. This allows designers of base pages and components to define default sets of string resources and then developers implementing subclasses to either override or extend these in their own resource bundle.
| Constructor Summary | |
ComponentStringResourceLoader()
Create and initialise the resource loader. |
|
| Method Summary | |
java.lang.String |
loadStringResource(Component component,
java.lang.String key,
java.util.Locale locale,
java.lang.String style)
Get the string resource for the given combination of key, locale and style. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public ComponentStringResourceLoader()
| Method Detail |
public final java.lang.String loadStringResource(Component component,
java.lang.String key,
java.util.Locale locale,
java.lang.String style)
Page and has not been
previously added to a Page then an exception will be
thrown.
loadStringResource in interface IStringResourceLoadercomponent - The component to use to find resources to be loadedkey - The key to obtain the string forlocale - The locale identifying the resource set to select the strings
fromstyle - The (optional) style identifying the resource set to select
the strings from (see Session)
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||