## Package org.springframework.ui.context

Contains classes defining the application context subinterface for UI applications.

See:
Description

Interface Summary
HierarchicalThemeSource: Sub-interface of ThemeSource to be implemented by objects that can resolve theme messages hierarchically.
Theme: A Theme can resolve theme-specific messages, codes, file paths, etcetera (e.g. CSS and image files in a web environment).
ThemeSource: Interface to be implemented by objects that can resolve `Themes`.

## Package org.springframework.ui.context Description

Contains classes defining the application context subinterface for UI applications. The theme feature is added here.

- If no `UiApplicationContextUtils.THEME_SOURCE_BEAN_NAME` bean is available in the context or parent context, a default `ResourceBundleThemeSource` will be created for requested themes. In this case, the base name of the property file will match with the theme name.
- If the bean is available in the context or parent context, a `basenamePrefix` can be set before the theme name for locating the property files like this:
  `<bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
  <property name="basenamePrefix"><value>theme.</value></property>
  </bean>`
  in this case, the themes resource bundles will be named `theme.<theme_name>XXX.properties.`
- This can be defined at application level and/or at servlet level for web applications.
- Normal i18n features of Resource Bundles are available. So a theme message can be dependant of both theme and locale.
- If messages in the resource bundles are in fact paths to resources(css, images, ...), make sure these resources are directly available for the user and not, for example, under the WEB-INF directory.

Web packages add the resolution and the setting of the user current theme.