On 10/20/2010 10:21 AM, Vincent Massol wrote:
Hi,
In order to implement support for icons/symbols in the rendering (see ), we need to add
an API to return an icon URL based on the icon name.
public interface SkinAccessBridge
{
...
/**
* @param iconName the standard name of an icon (it's not the name of the file on
the filesystem, it's a generic
* name, for example "success" for a success icon
* @return the URL to the icon resource
* @since 2.6M1
*/
String getIconURL(String iconName);
}
+1 from me.
I don't think this is enough. We currently have only one implementation
for this component, which uses only the current skin (as taken from the
XWiki Context). This means that it won't support multiple icon sets.
I'd rather introduce another component for IconTheme, which use the
existing SkinAccessBridge#getSkinFile(full path to the icon). There will
be several implementations for the IconTheme, the one active by default
being based on silk/gif. We'll have to find a way to select the desired
IconTheme to use (could be customized for each wiki in a farm, for each
skin, for each user?).
Each IconTheme would have a basePath ("resources/icons/silk/"), and by
default each icon is mapped to the same filename, plus an extension. A
custom mapping from icon names to filenames could be provided in a
configuration file (standard .properties). If this is loaded as a
ResourceBundle, there's no need to even code the default, since
ResourceBundle.get("key") returns the unchanged key for undefined values.
WDYT?
I generally agree about what you said.
It seems you're talking about the core skin module I've been thinking about for a
long time already. I've always postponed implementing it for lack of time and more
urgent things. I won't have time to work on it anytime soon unfortunately.
Thanks
-Vincent