Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Overview

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:

  1. Eliminate the need for web and plugin developers to manually manage CSS
  2. All theme assets need to be automatically injected into every page displayed by our server
  3. Allow Customers/OEMs/etc to contribute new themes via plugins
  4. Separate "core" theme files from plugin-specific ones
  5. Provide extensible architecture for providing plugins via unanticipated methods

API

The Theme System API has two main interfaces:

org.pentaho.platform.api.ui.IThemeManager (Source)

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

org.pentaho.platform.api.ui.IThemeResolver (Source)

Theme Resolvers are called upon to find all themes they can.

Implementations

There exists only one implementation of the IThemeManager:

org.pentaho.platform.web.html.themes.DefaultThemeManager (Source)

And two implementations of IThemeResolver:

org.pentaho.platform.web.html.themes.PluginThemeResolver (Source)

The Plugin resolver finds theme definitions within Platform Plugins.

org.pentaho.platform.web.html.themes.ServletContextThemeResolver (Source)

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

Known limitations / Weaknesses

Future Plans

  • No labels