[
https://issues.apache.org/jira/browse/TRINIDAD-105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515456
]
Jeanne Waldman commented on TRINIDAD-105:
-----------------------------------------
checked in to branch /myfaces/trinidad/branches/1.2.1.1-branch
revision svn commit: r559548
I plan to check it into Trunk next.
> enable registerResourceBundle to any skin
> -----------------------------------------
>
> Key: TRINIDAD-105
> URL: https://issues.apache.org/jira/browse/TRINIDAD-105
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Skinning
> Affects Versions: 1.2.1-core
> Reporter: Jeanne Waldman
> Assignee: Jeanne Waldman
>
> We are developing 'custom' components on top of Trinidad, as are a lot of
> people. We want them to be able to run the custom components in the simple
> skin. However, when running these custom components we get severe errors,
> like this:
> SEVERE: Could not get resource key af_statusIndicator.CONNECTING from skin
> rich.desktop
> The reason is that we do not have the needed api on the Skin class to
> register resource bundles for custom component developers. We recently added
> a registerStyleSheet api so that custom component developers can register
> their components' skin's stylesheet to any skin they want. We need a similar
> api to add resource bundles.
> Once this new API/code is in place, when a renderer calls Skin's
> getTranslatedValue, the Skin code will have to look in each resource bundle
> that is registered until it finds the key/value. I plan to lazily cache the
> information so that we don't have to look in each resource bundle each time.
> For SkinExtensions it would be nice to know what resource bundle is that the
> person that created the skin registered, so that it would have precedence
> over the custom components resource bundle.
> I propose on the Skin API:
> /**
> * Registers an additional resource bundle on this Skin. This is meant
> for skin-addition
> * use-cases, where a custom component developer has a resource bundle
> for their custom
> * components, and they want the bundle to work for this Skin and the
> children Skins.
> * The resource bundle specified by this resource bundle name
> * will be looked into for the translated value if it is not found in the
> Skin's
> * own resource bundle.
> * It is recommended that you register your resource bundles on the most
> base skin, so
> * that all children skins will pick it up.
> * @param resourceBundleName The name of the resource bundle
> * @throws NullPointerException if resource bundle name is null.
> */
> abstract public void registerResourceBundle(
> String resourceBundleName
> );
> I propose we keep the following api on SkinExtension:
> /**
> * Returns the name of the bundle for the SkinExtension. It will return
> whatever was
> * set in setBundleName
> * @see #setBundleName(String)
> */
> @Override
> public String getBundleName()
> {
> return _bundleName;
> }
> /**
> * Returns the name of the bundle for this SkinExtension. Use
> registerResourceBundle
> * to add skin-additions resource bundles. The SkinExtension bundle's
> resources will take precedence
> * over the skin-additions resource bundles.
> * @see Skin#registerResourceBundle(String)
> */
> public void setBundleName(String bundleName)
> {
> _bundleName = bundleName;
> }
> The api to register resource bundles for custom component developers in
> trinidad-skins.xml's <skin-addition> could be
> <bundle-name>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.