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?

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to