Sakai Iconservice
Overview
The iconservice provides a way to define sets of icons (aka theme packs) to be used in Sakai and in Sakai related tools, these theme packs allow us to have a consistent url for appliction developers to use for useful icons to increase the usability and user friendliness of their applictions, while allowing the actual icons used to be changed. At first changing icon theme packs will be done through sakai.properties, in later iterations this may change to choose the theme at run time based on some user or system variables. Icon theme packs are definined in
${sakai.home}/icon/themes/theme_name.properties (where theme_name is the name of your theme)
each line should hold a key=value pair unless it begins with # or is blank. The value will be the path (relative to the iconservice context) to the icon to be used for that key.
Ideally the service would be called from either all of the widgets for a display technology used in Sakai or from with in the technology itself. To do so they will need to wire in the IconService then call .getIcon(icon_id) to get the apropriate url for the icon. And if for some reason you want to force a certian theme to be used can call .getIcon(icon_id, theme); (coming soon)
If neither of those are possible using the url:
"/iconservice/get/icon/icon_id"
Requirements
JRE Version: JRE 1.4 or above.
SAKAI Version: 2.2
Download
Source code: This project is available in source code from contrib https://source.sakaiproject.org/contrib/asu/Iconservice
How to install
drop /iconservice from contrib into your Sakai source directory and build with maven as normal.
Themes
The default theme pack provided here is the 'Silk' icon set from famfamfam http://www.famfamfam.com/lab/icons/silk/
. Silk was created by Mark James who has given us full permissions to use his icon set as the default icon set in Sakai, as long as this notice retains a link back to his site.
Thanks Mark!
Future
Wire into the user prefernce system so that themes are chosen on the fly based on user settings (to allow fun things like high contrast and or large themes when needed)
Add support for dynamically choses css (might need to rename the service at that point)