| java.lang.Object org.apache.turbine.services.pull.util.UIManager
UIManager | public class UIManager implements ApplicationTool(Code) | | UIManager.java
Manages all UI elements for a Turbine Application. Any
UI element can be accessed in any template using the
$ui handle (assuming you use the default PullService
configuration). So, for example, you could access
the background colour for your pages by using
$ui.bgcolor
Questions:
What is the best way to allow an application
to be skinned. And how to allow the flexible
altering of a particular UI element in certain
parts of the template hierarchy. For example
on one section of your site you might like
a certain bgcolor, on another part of your
site you might want another. How can be let
the designer specify these properties and
still use the single $app.ui.bgcolor in
all the templates.
It would also be very cool to use some form
of inheritence for UI elements. Say a $ui.bgcolor
is used in a template where the bgcolor is not
set for that part of hierarch, it would be cool
if it could find the setting for the bgcolor
in the parent directory. So you could override
a UI element where you wanted and the system
would fall back to the parent when necessary.
How to specify skins, how to deal with images,
how could this be handled with a web app.
This is an application pull tool for the template system. You should not
use it in a normal application!
author: Jason van Zyl author: James Coltman author: Henning P. Schmiedehausen author: Thomas Vandahl version: $Id: UIManager.java 535070 2007-05-04 03:23:22Z seade $ |
Method Summary | |
public String | get(String key) Retrieve a property from the properties held
within the properties file for this skin. | public String | getScript(String filename, RunData data) Retrieve the URL for a given script that is part
of a skin. | public String | getScript(String filename) Retrieve the URL for a given script that is part
of a skin. | public String | getSkin() Retrieve the skin name. | public String | getStylecss(RunData data) Retrieve the URL for the style sheet that is part
of a skin. | public String | getStylecss() Retrieve the URL for the style sheet that is part
of a skin. | public String | image(String imageId, RunData data) Retrieve the URL for an image that is part
of a skin. | public String | image(String imageId) Retrieve the URL for an image that is part
of a skin. | public void | init(Object data) Initialize the UIManager object. | public void | refresh() This lets the tool know that it should be
refreshed. | public void | setSkin() Set the skin name to the skin from the TR.props
file. | public void | setSkin(String skinName) Set the skin name to the specified skin. | protected void | setSkin(RunData data) Set the skin name when the tool is configured to be
loaded on a per-request basis. | protected void | setSkin(User user) Set the skin name when the tool is configured to be
loaded on a per-session basis. | public static void | setSkin(User user, String skin) Set the skin name user's temp hashmap for the current session. |
get | public String get(String key)(Code) | | Retrieve a property from the properties held
within the properties file for this skin.
|
getScript | public String getScript(String filename, RunData data)(Code) | | Retrieve the URL for a given script that is part
of a skin. The script is stored in the
WEBAPP/resources/ui/skins/ directory
|
getScript | public String getScript(String filename)(Code) | | Retrieve the URL for a given script that is part
of a skin. The script is stored in the
WEBAPP/resources/ui/skins/ directory
|
getSkin | public String getSkin()(Code) | | Retrieve the skin name.
|
getStylecss | public String getStylecss(RunData data)(Code) | | Retrieve the URL for the style sheet that is part
of a skin. The style is stored in the
WEBAPP/resources/ui/skins/<SKIN> directory with the
filename skin.css
Use this if for some reason your server name,
server scheme, or server port change on a
per request basis. I'm not sure if this
would happend in a load balanced situation.
I think in most cases the style()
method would probably be enough, but I'm not
absolutely positive.
|
getStylecss | public String getStylecss()(Code) | | Retrieve the URL for the style sheet that is part
of a skin. The style is stored in the
WEBAPP/resources/ui/skins/<SKIN> directory with the
filename skin.css
|
image | public String image(String imageId, RunData data)(Code) | | Retrieve the URL for an image that is part
of a skin. The images are stored in the
WEBAPP/resources/ui/skins/<SKIN>/images
directory.
Use this if for some reason your server name,
server scheme, or server port change on a
per request basis. I'm not sure if this
would happen in a load balanced situation.
I think in most cases the image(String image)
method would probably be enough, but I'm not
absolutely positive.
|
image | public String image(String imageId)(Code) | | Retrieve the URL for an image that is part
of a skin. The images are stored in the
WEBAPP/resources/ui/skins/<SKIN>/images
directory.
|
init | public void init(Object data)(Code) | | Initialize the UIManager object.
Parameters: data - This is null, RunData or User depending upon specified tool scope. |
refresh | public void refresh()(Code) | | This lets the tool know that it should be
refreshed. The tool can perform whatever actions
are necessary to refresh itself. This is necessary
for sane development where you probably want the
tools to refresh themselves on every request.
|
setSkin | public void setSkin()(Code) | | Set the skin name to the skin from the TR.props
file. If the property is not present use the
default skin.
|
setSkin | public void setSkin(String skinName)(Code) | | Set the skin name to the specified skin.
Parameters: skinName - the skin name to use. |
setSkin | protected void setSkin(RunData data)(Code) | | Set the skin name when the tool is configured to be
loaded on a per-request basis. By default it calls getSkin
to return the skin specified in TR.properties. Developers can
write a subclass of UIManager that overrides this method to
determine the skin to use based on information held in the request.
Parameters: data - a RunData instance |
setSkin | protected void setSkin(User user)(Code) | | Set the skin name when the tool is configured to be
loaded on a per-session basis. It the user's temp hashmap contains
a value in the attribute specified by the String constant SKIN_ATTRIBUTE
then that is returned. Otherwise it calls getSkin to return the skin
specified in TR.properties.
Parameters: user - a User instance |
setSkin | public static void setSkin(User user, String skin)(Code) | | Set the skin name user's temp hashmap for the current session.
Parameters: user - a User instance Parameters: skin - the skin name for the session |
|
|