The Platform Theme System manages all files needed to skin our server-based thin-client offerings (BA Server and plugins). It was designed to satisfy the following goals:
The Theme System API has two main interfaces:
The name "manager" is a bit of a misnomer. It simply serves to provide all known themes in the system. The manager delegates this discovery to the next interface: IThemeResolver
Theme Resolvers are called upon to find all themes they can.
This Manager caches all results from the resolvers in the Platform CacheManager to reduce memory overhead.
The Plugin resolver finds theme definitions within Platform Plugins.
ServletContext resolver finds themes from top-level folders in the Pentaho WAR.
Both of these stock resolvers use the same theme.xml file format to describe theme assets