|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ThemeProvider
Used to replace the theme defined in the language definitions
(lang.xml and lang-addon.xml) and the configuration
(the theme-uri
elements in web.xml).
When a desktop is about to be rendered, getThemeURIs(org.zkoss.zk.ui.Execution, java.util.List
will
be called to allow developer to rename, add or remove CSS/WCS files.
When loading each WCS (Widget CSS descriptor) file (excluding CSS files), beforeWCS(org.zkoss.zk.ui.Execution, java.lang.String)
will be called to allow developer to rename or remove the WCS file.
When a WCS file is about to load the CSS file of a widget,
beforeWidgetCSS(org.zkoss.zk.ui.Execution, java.lang.String)
will be called to allow developer to rename
or remove the CSS file associated with a widget.
To allow the client to cache the WCS file, you can inject a special
fragment into the URI of the WCS file such that a different URI represents
a different theme. To inject, you can use @{link Aide#injectURI} when
preprocessing URIs in getThemeURIs(org.zkoss.zk.ui.Execution, java.util.List
.
Therefore, we can rertrieve the injected fragment in beforeWCS(org.zkoss.zk.ui.Execution, java.lang.String)
by use of ThemeProvider.Aide.decodeURI(java.lang.String)
.
Nested Class Summary | |
---|---|
static class |
ThemeProvider.Aide
Utilties to help the implementation of ThemeProvider
to manipulate the URI such that it is able to use a different URI
for a different theme. |
Method Summary | |
---|---|
java.lang.String |
beforeWCS(Execution exec,
java.lang.String uri)
Called when a WCS (Widget CSS descriptor) file is about to be loaded. |
java.lang.String |
beforeWidgetCSS(Execution exec,
java.lang.String uri)
Called when a WCS (Widget CSS descriptor) file is about to load the CSS file associated with a widget. |
java.util.Collection<java.lang.Object> |
getThemeURIs(Execution exec,
java.util.List<java.lang.Object> uris)
Returns a list of the theme's URIs of the specified execution, or null if no theme shall be generated. |
int |
getWCSCacheControl(Execution exec,
java.lang.String uri)
Returns the number of hours that the specified WCS (Widget CSS descriptor) file won't be changed. |
Method Detail |
---|
java.util.Collection<java.lang.Object> getThemeURIs(Execution exec, java.util.List<java.lang.Object> uris)
String
or StyleSheet
.
If you want to specify the media
attribute, use StyleSheet
.
It is called when a desktop is about to be rendered. It is called only once for each desktop.
Notice that StyleSheet
is allowed since 5.0.3.
exec
- the current execution (never null), where you can retrieve
the desktop, request and response.
Note: if your Web application supports multiple devices, you have
to check Desktop.getDevice()
.uris
- the default set of theme's URIs,
i.e., the themes defined in language definitions (lang.xml and lang-addon.xml)
and the configuration (the theme-uri
elements in web.xml).
Each URI is an instance of of either String
or StyleSheet
.
Notice that, unless it is customized by application specific lang-addon,
all URIs are, by default, String instances.
String
or StyleSheet
.int getWCSCacheControl(Execution exec, java.lang.String uri)
uri
- the URI of the WCS file, e.g., ~./zul/css/zk.wcs
java.lang.String beforeWCS(Execution exec, java.lang.String uri)
uri
parameter.
If you want to change the font size, you can set the attributes of the execution accordingly as follows.
For example,
String beforeWCS(Execution exec, String uri) {
exec.setAttribute("fontSizeM", "15px");
return uri;
}
exec
- the current executioin (never null), where you can retrieve
the request ad responsne. However, unlike
getThemeURIs(org.zkoss.zk.ui.Execution, java.util.List)
, the desktop might not be available when this
method is called.uri
- the URI of the WCS file, e.g., ~./zul/css/zk.wcs
java.lang.String beforeWidgetCSS(Execution exec, java.lang.String uri)
uri
parameter.
This method is usually overriden to load the CSS files from a different directory. For example,
String beforeWidgetCSS(Execution exec, String uri) {
return uri.startsWith("~./") ? "~./foo/" + uri.substring(3): uri;
}
exec
- the current executioin (never null), where you can retrieve
the request ad responsne. However, unlike
getThemeURIs(org.zkoss.zk.ui.Execution, java.util.List)
, the desktop might not be available when this
method is called.uri
- the URI of the CSS file associated with a widget, e.g.,
~./js/zul/wgt/css/a.css.dsp
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |