org.apache.turbine.util.template
Class HtmlPageAttributes

java.lang.Object
  extended byorg.apache.turbine.util.template.HtmlPageAttributes
All Implemented Interfaces:
ApplicationTool

public class HtmlPageAttributes
extends java.lang.Object
implements ApplicationTool

Template context tool that can be used to set various attributes of a HTML page. This tool does not automatically make the changes in the HTML page for you. You must use this tool in your layout template to retrieve the attributes.

The set/add methods are can be used from a screen template, action, screen class, layour template, or anywhere else. The get methods should be used in your layout template(s) to construct the appropriate HTML tags.

Example usage of this tool to build the HEAD and BODY tags in your layout templates:

## Set defaults for all pages using this layout. Anything set here can
## be overridden in the screen template.
$page.setTitle("My default page title");
$page.setHttpEquiv("Content-Style-Type","text/css")
$page.addStyleSheet($content.getURI("myStyleSheet.css"))
$page.addScript($content.getURI("globalJavascriptCode.js"))

## build the HTML, HEAD, and BODY tags dynamically
<html>
<head>
#if( $page.Title != "" )
<title>$page.Title</title>
#end
#foreach($metaTag in $page.MetaTags.keySet())
<meta name="$metaTag" content="$page.MetaTags.get($metaTag)">
#end
#foreach($httpEquiv in $page.HttpEquivs.keySet())
<meta http-equiv="$httpEquiv" content="$page.HttpEquivs.get($httpEquiv)">
#end
#foreach( $linkTag in $page.Links )
<link rel="$linkTag.Relation" href="$linkTag.Url"
#if($linkTag.Type != "" ) type="$linkTag.Type" #end
#if($linkTag.Media != "") media="$linkTag.Media" #end
#if($linkTag.Title != "") title="$linkTag.Title" #end
/>
#end
#foreach( $script in $page.Scripts )
<script type="text/javascript" src="$script" language="JavaScript"></script>
#end
</head>

## Construct the body tag. Iterate through the body attributes to build the opening tag
<body
#foreach( $attributeName in $page.BodyAttributes.keySet() )
$attributeName = "$page.BodyAttributes.get($attributeName)"
#end
>

Example usages of this tool in your screen templates:
$page.addScript($content.getURI("myJavascript.js")
$page.setTitle("My page title")
$page.setHttpEquiv("refresh","5; URL=http://localhost/nextpage.html")

Version:
$Id: HtmlPageAttributes.java 534527 2007-05-02 16:10:59Z tv $
Author:
Quinton McCombs, Scott Eade, Thomas Vandahl

Nested Class Summary
 class HtmlPageAttributes.LinkTag
          Helper class to hold data about a <link ...
 
Constructor Summary
HtmlPageAttributes()
          Default constructor.
HtmlPageAttributes(RunData data)
          Construct a new instance with the given RunData object.
 
Method Summary
 HtmlPageAttributes addAttribute(java.lang.String name, java.lang.String value)
          Deprecated. Use addBodyAttribute instead.
 HtmlPageAttributes addBodyAttribute(java.lang.String name, java.lang.String value)
          Adds an attribute to the BODY tag.
 HtmlPageAttributes addLink(java.lang.String relation, java.lang.String linkURL)
          Adds a generic external reference
 HtmlPageAttributes addLink(java.lang.String relation, java.lang.String linkURL, java.lang.String title)
          Adds a generic external reference
 HtmlPageAttributes addLink(java.lang.String relation, java.lang.String linkURL, java.lang.String title, java.lang.String type)
          Adds a generic external reference
 HtmlPageAttributes addScript(java.lang.String scriptURL)
          Adds a script reference
 HtmlPageAttributes addStyle(java.lang.String styleText)
          Adds a STYLE element to the HEAD of the page with the provided content.
 HtmlPageAttributes addStyleSheet(java.lang.String styleSheetURL)
          Adds a style sheet reference
 HtmlPageAttributes addStyleSheet(java.lang.String styleSheetURL, java.lang.String media, java.lang.String title, java.lang.String type)
          Adds a style sheet reference
 java.util.Map getBodyAttributes()
          Returns the map of body attributes
 java.lang.String getDefaultDoctype()
          Retrieve the default Doctype as configured by the TurbineResources.peoperties default.doctype.root.element, default.doctype.identifier and default.doctype.url properties (defaults are "HTML", "-//W3C//DTD HTML 4.01 Transitional//EN" and "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd" respectively).
 java.util.Map getHttpEquivs()
          Gets the map of http equiv tags
 java.util.List getLinks()
          Returns a collection of link URLs
 java.util.Map getMetaTags()
          Gets the map of meta tags
 java.util.List getScripts()
          Returns a collection of script URLs
 java.util.List getStyles()
          Returns a collection of styles
 java.util.List getStyleSheets()
          Deprecated. use getLinks() instead
 java.lang.String getTitle()
          Get the title in the page.
 void init(java.lang.Object data)
          Initialise this instance with the given RunData object.
 void refresh()
          Refresh method - does nothing
 HtmlPageAttributes setAlinkColor(java.lang.String color)
          Set the active link color for the BODY tag.
 HtmlPageAttributes setBackground(java.lang.String url)
          Set the background image for the BODY tag.
 HtmlPageAttributes setBgColor(java.lang.String color)
          Set the background color for the BODY tag.
 HtmlPageAttributes setDescription(java.lang.String description)
          Add a description META tag to the HEAD of the page.
 HtmlPageAttributes setHttpEquiv(java.lang.String httpEquiv, java.lang.String content)
          Sets a HttpEquiv META tag in the HEAD of the page, usage:
setHttpEquiv("refresh", "5; URL=http://localhost/nextpage.html")
setHttpEquiv("Expires", "Tue, 20 Aug 1996 14:25:27 GMT")
 HtmlPageAttributes setKeywords(java.lang.String keywords)
          Set a keywords META tag in the HEAD of the page.
 HtmlPageAttributes setLinkColor(java.lang.String color)
          Set the link color for the BODY tag.
 HtmlPageAttributes setScript(java.lang.String scriptURL)
          Deprecated. Use addScript instead
 HtmlPageAttributes setStyle(java.lang.String styleText)
          Deprecated. use addStyle instead
 HtmlPageAttributes setStyleSheet(java.lang.String styleSheetURL)
          Deprecated. use addStyleSheet instead
 HtmlPageAttributes setStyleSheet(java.lang.String styleSheetURL, java.lang.String media)
          Deprecated. use addStyleSheet instead
 HtmlPageAttributes setTextColor(java.lang.String color)
          Set the text color for the BODY tag.
 HtmlPageAttributes setTitle(java.lang.String title)
          Set the title in the page.
 HtmlPageAttributes setVlinkColor(java.lang.String color)
          Set the visited link color for the BODY tag.
 java.lang.String toString()
          A dummy toString method that returns an empty string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HtmlPageAttributes

public HtmlPageAttributes()
Default constructor. The init method must be called before use


HtmlPageAttributes

public HtmlPageAttributes(RunData data)
Construct a new instance with the given RunData object.

Parameters:
data - a RunData instance
Method Detail

init

public void init(java.lang.Object data)
Initialise this instance with the given RunData object. (ApplicationTool method)

Specified by:
init in interface ApplicationTool
Parameters:
data - Assumed to be a RunData instance

refresh

public void refresh()
Refresh method - does nothing

Specified by:
refresh in interface ApplicationTool

setTitle

public HtmlPageAttributes setTitle(java.lang.String title)
Set the title in the page. This returns an empty String so that the template doesn't complain about getting a null return value. Subsequent calls to this method will replace the current title.

Parameters:
title - A String with the title.
Returns:
a HtmlPageAttributes (self).

getTitle

public java.lang.String getTitle()
Get the title in the page. This returns an empty String if empty so that the template doesn't complain about getting a null return value.

Returns:
A String with the title.

addAttribute

public HtmlPageAttributes addAttribute(java.lang.String name,
                                       java.lang.String value)
Deprecated. Use addBodyAttribute instead.

Adds an attribute to the BODY tag.

Parameters:
name - A String.
value - A String.
Returns:
a HtmlPageAttributes (self).

addBodyAttribute

public HtmlPageAttributes addBodyAttribute(java.lang.String name,
                                           java.lang.String value)
Adds an attribute to the BODY tag.

Parameters:
name - A String.
value - A String.
Returns:
a HtmlPageAttributes (self).

getBodyAttributes

public java.util.Map getBodyAttributes()
Returns the map of body attributes

Returns:
the map

addScript

public HtmlPageAttributes addScript(java.lang.String scriptURL)
Adds a script reference

Parameters:
scriptURL -
Returns:
a HtmlPageAttributes (self).

setScript

public HtmlPageAttributes setScript(java.lang.String scriptURL)
Deprecated. Use addScript instead

Adds a script reference

Parameters:
scriptURL -
Returns:
a HtmlPageAttributes (self).

getScripts

public java.util.List getScripts()
Returns a collection of script URLs

Returns:
list of String objects constainings URLs of javascript files to include

addStyleSheet

public HtmlPageAttributes addStyleSheet(java.lang.String styleSheetURL)
Adds a style sheet reference

Parameters:
styleSheetURL - URL of the style sheet
Returns:
a HtmlPageAttributes (self).

addStyleSheet

public HtmlPageAttributes addStyleSheet(java.lang.String styleSheetURL,
                                        java.lang.String media,
                                        java.lang.String title,
                                        java.lang.String type)
Adds a style sheet reference

Parameters:
styleSheetURL - URL of the style sheet
media - name of the media
title - title of the stylesheet
type - content type
Returns:
a HtmlPageAttributes (self).

setStyleSheet

public HtmlPageAttributes setStyleSheet(java.lang.String styleSheetURL)
Deprecated. use addStyleSheet instead

Adds a style sheet reference

Parameters:
styleSheetURL -
Returns:
a HtmlPageAttributes (self).

setStyleSheet

public HtmlPageAttributes setStyleSheet(java.lang.String styleSheetURL,
                                        java.lang.String media)
Deprecated. use addStyleSheet instead

Adds a style sheet reference

Parameters:
styleSheetURL -
media - name of the media
Returns:
a HtmlPageAttributes (self).

addLink

public HtmlPageAttributes addLink(java.lang.String relation,
                                  java.lang.String linkURL)
Adds a generic external reference

Parameters:
relation - type of the reference (prev, next, first, last, top, etc.)
linkURL - URL of the reference
Returns:
a HtmlPageAttributes (self).

addLink

public HtmlPageAttributes addLink(java.lang.String relation,
                                  java.lang.String linkURL,
                                  java.lang.String title)
Adds a generic external reference

Parameters:
relation - type of the reference (prev, next, first, last, top, etc.)
linkURL - URL of the reference
title - title of the reference
Returns:
a HtmlPageAttributes (self).

addLink

public HtmlPageAttributes addLink(java.lang.String relation,
                                  java.lang.String linkURL,
                                  java.lang.String title,
                                  java.lang.String type)
Adds a generic external reference

Parameters:
relation - type of the reference (prev, next, first, last, top, etc.)
linkURL - URL of the reference
title - title of the reference
type - content type
Returns:
a HtmlPageAttributes (self).

getStyleSheets

public java.util.List getStyleSheets()
Deprecated. use getLinks() instead

Returns a collection of script URLs

Returns:
list LinkTag objects (inner class)

getLinks

public java.util.List getLinks()
Returns a collection of link URLs

Returns:
list LinkTag objects (inner class)

setStyle

public HtmlPageAttributes setStyle(java.lang.String styleText)
Deprecated. use addStyle instead

Adds a STYLE element to the HEAD of the page with the provided content.

Parameters:
styleText - The contents of the style tag.
Returns:
a HtmlPageAttributes (self).

addStyle

public HtmlPageAttributes addStyle(java.lang.String styleText)
Adds a STYLE element to the HEAD of the page with the provided content.

Parameters:
styleText - The contents of the style tag.
Returns:
a HtmlPageAttributes (self).

getStyles

public java.util.List getStyles()
Returns a collection of styles

Returns:
list of String objects containing the contents of style tags

setKeywords

public HtmlPageAttributes setKeywords(java.lang.String keywords)
Set a keywords META tag in the HEAD of the page.

Parameters:
keywords - A String.
Returns:
a HtmlPageAttributes (self).

setHttpEquiv

public HtmlPageAttributes setHttpEquiv(java.lang.String httpEquiv,
                                       java.lang.String content)
Sets a HttpEquiv META tag in the HEAD of the page, usage:
setHttpEquiv("refresh", "5; URL=http://localhost/nextpage.html")
setHttpEquiv("Expires", "Tue, 20 Aug 1996 14:25:27 GMT")

Parameters:
httpEquiv - The value to use for the http-equiv attribute.
content - The text for the content attribute of the meta tag.
Returns:
a HtmlPageAttributes (self).

setDescription

public HtmlPageAttributes setDescription(java.lang.String description)
Add a description META tag to the HEAD of the page.

Parameters:
description - A String.
Returns:
a HtmlPageAttributes (self).

setBackground

public HtmlPageAttributes setBackground(java.lang.String url)
Set the background image for the BODY tag.

Parameters:
url - A String.
Returns:
a HtmlPageAttributes (self).

setBgColor

public HtmlPageAttributes setBgColor(java.lang.String color)
Set the background color for the BODY tag. You can use either color names or color values (e.g. "white" or "#ffffff" or "ffffff").

Parameters:
color - A String.
Returns:
a HtmlPageAttributes (self).

setTextColor

public HtmlPageAttributes setTextColor(java.lang.String color)
Set the text color for the BODY tag. You can use either color names or color values (e.g. "white" or "#ffffff" or "ffffff").

Parameters:
color - A String.
Returns:
a HtmlPageAttributes (self).

setLinkColor

public HtmlPageAttributes setLinkColor(java.lang.String color)
Set the link color for the BODY tag. You can use either color names or color values (e.g. "white" or "#ffffff" or "ffffff").

Parameters:
color - A String.
Returns:
a HtmlPageAttributes (self).

setVlinkColor

public HtmlPageAttributes setVlinkColor(java.lang.String color)
Set the visited link color for the BODY tag.

Parameters:
color - A String.
Returns:
a HtmlPageAttributes (self).

setAlinkColor

public HtmlPageAttributes setAlinkColor(java.lang.String color)
Set the active link color for the BODY tag.

Parameters:
color - A String.
Returns:
a HtmlPageAttributes (self).

getHttpEquivs

public java.util.Map getHttpEquivs()
Gets the map of http equiv tags

Returns:
Map of http equiv names to the contents

getMetaTags

public java.util.Map getMetaTags()
Gets the map of meta tags

Returns:
Map of http equiv names to the contents

toString

public java.lang.String toString()
A dummy toString method that returns an empty string.

Returns:
An empty String ("").

getDefaultDoctype

public java.lang.String getDefaultDoctype()
Retrieve the default Doctype as configured by the TurbineResources.peoperties default.doctype.root.element, default.doctype.identifier and default.doctype.url properties (defaults are "HTML", "-//W3C//DTD HTML 4.01 Transitional//EN" and "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd" respectively).

Returns:
the DOCTYPE tag constructed from the properties in TurbineResources.properties.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.