%line | %branch | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
org.apache.turbine.util.template.TemplatePageAttributes |
|
|
1 | package org.apache.turbine.util.template; |
|
2 | ||
3 | /* |
|
4 | * Copyright 2001-2005 The Apache Software Foundation. |
|
5 | * |
|
6 | * Licensed under the Apache License, Version 2.0 (the "License") |
|
7 | * you may not use this file except in compliance with the License. |
|
8 | * You may obtain a copy of the License at |
|
9 | * |
|
10 | * http://www.apache.org/licenses/LICENSE-2.0 |
|
11 | * |
|
12 | * Unless required by applicable law or agreed to in writing, software |
|
13 | * distributed under the License is distributed on an "AS IS" BASIS, |
|
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
15 | * See the License for the specific language governing permissions and |
|
16 | * limitations under the License. |
|
17 | */ |
|
18 | ||
19 | import org.apache.commons.logging.Log; |
|
20 | import org.apache.commons.logging.LogFactory; |
|
21 | import org.apache.ecs.HtmlColor; |
|
22 | import org.apache.ecs.html.Link; |
|
23 | import org.apache.ecs.html.Meta; |
|
24 | import org.apache.ecs.html.Script; |
|
25 | import org.apache.ecs.html.Style; |
|
26 | import org.apache.ecs.html.Title; |
|
27 | import org.apache.turbine.services.pull.ApplicationTool; |
|
28 | import org.apache.turbine.util.RunData; |
|
29 | ||
30 | /** |
|
31 | * Template context tool that will set various attributes of the HTML |
|
32 | * page. It is automatically placed in the Template context as |
|
33 | * '$page'. Here's an example of some uses: |
|
34 | * |
|
35 | * <p><pre><code> |
|
36 | * $page.setBgColor("#ffffff"); |
|
37 | * $page.setBgColor("white"); |
|
38 | * $page.setBackground("/images/standardbg.jpeg"); |
|
39 | * $page.setTitle("This is the title!"); |
|
40 | * $page.setKeywords("turbine, cool, servlet framework"); |
|
41 | * $page.setStyleSheet("/style.css"); |
|
42 | * </code></pre></p> |
|
43 | * |
|
44 | * @author <a href="mailto:sean@somacity.com">Sean Legassick</a> |
|
45 | * @deprecated Use HtmlPageAttributes along with VelocityOnlyLayout instead |
|
46 | * @version $Id: TemplatePageAttributes.java 264148 2005-08-29 14:21:04Z henning $ |
|
47 | */ |
|
48 | public class TemplatePageAttributes |
|
49 | implements ApplicationTool |
|
50 | { |
|
51 | /** Logging */ |
|
52 | 0 | private static Log log = LogFactory.getLog(TemplatePageAttributes.class); |
53 | ||
54 | /** The RunData object. */ |
|
55 | 0 | private RunData data = null; |
56 | ||
57 | /** The title. */ |
|
58 | 0 | private String cachedTitle = null; |
59 | ||
60 | /** |
|
61 | * Default constructor. The init method must be called before use |
|
62 | */ |
|
63 | public TemplatePageAttributes() |
|
64 | 0 | { |
65 | 0 | } |
66 | ||
67 | /** |
|
68 | * Construct a new instance with the given RunData object. |
|
69 | * |
|
70 | * @param data a RunData instance |
|
71 | */ |
|
72 | public TemplatePageAttributes(RunData data) |
|
73 | 0 | { |
74 | 0 | this.data = data; |
75 | 0 | } |
76 | ||
77 | /** |
|
78 | * Initialise this instance with the given RunData object. |
|
79 | * (ApplicationTool method) |
|
80 | * |
|
81 | * @param data Assumed to be a RunData instance |
|
82 | */ |
|
83 | public void init(Object data) |
|
84 | { |
|
85 | 0 | log.warn("This class is deprecated. Use HtmlPageAttributes instead."); |
86 | ||
87 | // we blithely cast to RunData as the runtime error thrown |
|
88 | // if data is null or not RunData is appropriate. |
|
89 | 0 | this.data = (RunData) data; |
90 | ||
91 | // clear cached title |
|
92 | 0 | this.cachedTitle = null; |
93 | 0 | } |
94 | ||
95 | /** |
|
96 | * Refresh method - does nothing |
|
97 | */ |
|
98 | public void refresh() |
|
99 | { |
|
100 | // empty |
|
101 | 0 | } |
102 | ||
103 | /** |
|
104 | * Set the title in the page. This returns an empty String so |
|
105 | * that the template doesn't complain about getting a null return |
|
106 | * value. |
|
107 | * |
|
108 | * @param intitle A String with the title. |
|
109 | */ |
|
110 | public TemplatePageAttributes setTitle(String intitle) |
|
111 | { |
|
112 | 0 | Title title = data.getPage().getTitle(); |
113 | 0 | if (cachedTitle != null) |
114 | { |
|
115 | 0 | cachedTitle += intitle; |
116 | } |
|
117 | else |
|
118 | { |
|
119 | 0 | cachedTitle = intitle; |
120 | } |
|
121 | 0 | title.addElement(intitle); |
122 | 0 | return this; |
123 | } |
|
124 | ||
125 | /** |
|
126 | * Get the title in the page. This returns an empty String if |
|
127 | * empty so that the template doesn't complain about getting a null |
|
128 | * return value. |
|
129 | * |
|
130 | * @return A String with the title. |
|
131 | */ |
|
132 | public String getTitle() |
|
133 | { |
|
134 | 0 | if (cachedTitle == null) |
135 | { |
|
136 | 0 | return ""; |
137 | } |
|
138 | 0 | return cachedTitle; |
139 | } |
|
140 | ||
141 | /** |
|
142 | * Adds a LINK to a CSS styleshet to the HEAD of the page. |
|
143 | * |
|
144 | * @param url A String. |
|
145 | * @return A TemplatePageAttributes (self). |
|
146 | */ |
|
147 | public TemplatePageAttributes setStyleSheet(String url) |
|
148 | { |
|
149 | 0 | data.getPage().getHead().addElement(new Link() |
150 | .setRel("stylesheet").setType("text/css").setHref(url)); |
|
151 | 0 | return this; |
152 | } |
|
153 | ||
154 | /** |
|
155 | * Adds a LINK to a CSS stylesheet to the HEAD of the page, allowing the |
|
156 | * media type to be specified. |
|
157 | * |
|
158 | * @param url The value for the <code>href</code> attribute. |
|
159 | * @param media The value for the <code>media</code> attribute. |
|
160 | * @return a <code>TemplatePageAttributes</code> (self). |
|
161 | */ |
|
162 | public TemplatePageAttributes setStyleSheet(String url, String media) |
|
163 | { |
|
164 | 0 | data.getPage().getHead().addElement(new Link().setRel("stylesheet") |
165 | .setType("text/css").setMedia(media).setHref(url)); |
|
166 | 0 | return this; |
167 | } |
|
168 | ||
169 | /** |
|
170 | * Adds a STYLE element to the HEAD of the page with the provided content. |
|
171 | * |
|
172 | * @param styleText The contents of the <code>style</code> tag. |
|
173 | * @return a <code>TemplatePageAttributes</code> (self). |
|
174 | */ |
|
175 | public TemplatePageAttributes setStyle(String styleText) |
|
176 | { |
|
177 | 0 | data.getPage().getHead().addElement(new Style("text/css", styleText)); |
178 | 0 | return this; |
179 | } |
|
180 | ||
181 | /** |
|
182 | * Adds a LINK to a javascript file to the HEAD of the page. |
|
183 | * |
|
184 | * @param url A String. |
|
185 | * @return A TemplatePageAttributesEx (self). |
|
186 | */ |
|
187 | public TemplatePageAttributes setScript(String url) |
|
188 | { |
|
189 | 0 | data.getPage().getHead().addElement(new Script().setSrc(url) |
190 | .setType("text/javascript").setLanguage("JavaScript")); |
|
191 | 0 | return this; |
192 | } |
|
193 | ||
194 | /** |
|
195 | * Set a keywords META tag in the HEAD of the page. |
|
196 | * |
|
197 | * @param keywords A String. |
|
198 | * @return A TemplatePageAttributes (self). |
|
199 | */ |
|
200 | public TemplatePageAttributes setKeywords(String keywords) |
|
201 | { |
|
202 | 0 | data.getPage().getHead().addElement( |
203 | new Meta().setName("keywords").setContent(keywords)); |
|
204 | 0 | return this; |
205 | } |
|
206 | ||
207 | /** |
|
208 | * Sets a HttpEquiv META tag in the HEAD of the page, usage: |
|
209 | * <br><code>setHttpEquiv("refresh", "5; URL=http://localhost/nextpage.html")</code> |
|
210 | * <br><code>setHttpEquiv("Expires", "Tue, 20 Aug 1996 14:25:27 GMT")</code> |
|
211 | * |
|
212 | * @param httpEquiv The value to use for the http-equiv attribute. |
|
213 | * @param content The text for the content attribute of the meta tag. |
|
214 | * @return A TemplatePageAttributes (self). |
|
215 | */ |
|
216 | public TemplatePageAttributes setHttpEquiv(String httpEquiv, String content) |
|
217 | { |
|
218 | 0 | data.getPage().getHead().addElement( |
219 | new Meta().setHttpEquiv(httpEquiv).setContent(content)); |
|
220 | 0 | return this; |
221 | } |
|
222 | ||
223 | /** |
|
224 | * Add a description META tag to the HEAD of the page. |
|
225 | * |
|
226 | * @param description A String. |
|
227 | * @return A TemplatePageAttributes (self). |
|
228 | */ |
|
229 | public TemplatePageAttributes setDescription(String description) |
|
230 | { |
|
231 | 0 | data.getPage().getHead().addElement( |
232 | new Meta().setName("description").setContent(description)); |
|
233 | 0 | return this; |
234 | } |
|
235 | ||
236 | /** |
|
237 | * Set the background image for the BODY tag. |
|
238 | * |
|
239 | * @param url A String. |
|
240 | * @return A TemplatePageAttributes (self). |
|
241 | */ |
|
242 | public TemplatePageAttributes setBackground(String url) |
|
243 | { |
|
244 | 0 | data.getPage().getBody().setBackground(url); |
245 | 0 | return this; |
246 | } |
|
247 | ||
248 | /** |
|
249 | * Set the background color for the BODY tag. You can use either |
|
250 | * color names or color values (e.g. "white" or "#ffffff" or |
|
251 | * "ffffff"). |
|
252 | * |
|
253 | * @param color A String. |
|
254 | * @return A TemplatePageAttributes (self). |
|
255 | */ |
|
256 | public TemplatePageAttributes setBgColor(String color) |
|
257 | { |
|
258 | 0 | String hexColor = HtmlColor.getColor(color); |
259 | 0 | if (hexColor == null) |
260 | { |
|
261 | 0 | hexColor = color; |
262 | } |
|
263 | 0 | data.getPage().getBody().setBgColor(hexColor); |
264 | 0 | return this; |
265 | } |
|
266 | ||
267 | /** |
|
268 | * Set the text color for the BODY tag. You can use either color |
|
269 | * names or color values (e.g. "white" or "#ffffff" or "ffffff"). |
|
270 | * |
|
271 | * @param color A String. |
|
272 | * @return A TemplatePageAttributes (self). |
|
273 | */ |
|
274 | public TemplatePageAttributes setTextColor(String color) |
|
275 | { |
|
276 | 0 | String hexColor = HtmlColor.getColor(color); |
277 | 0 | if (hexColor == null) |
278 | { |
|
279 | 0 | hexColor = color; |
280 | } |
|
281 | 0 | data.getPage().getBody().setText(hexColor); |
282 | 0 | return this; |
283 | } |
|
284 | ||
285 | /** |
|
286 | * Set the link color for the BODY tag. You can use either color |
|
287 | * names or color values (e.g. "white" or "#ffffff" or "ffffff"). |
|
288 | * |
|
289 | * @param color A String. |
|
290 | * @return A TemplatePageAttributes (self). |
|
291 | */ |
|
292 | public TemplatePageAttributes setLinkColor(String color) |
|
293 | { |
|
294 | 0 | String hexColor = HtmlColor.getColor(color); |
295 | 0 | if (hexColor == null) |
296 | { |
|
297 | 0 | hexColor = color; |
298 | } |
|
299 | 0 | data.getPage().getBody().setLink(hexColor); |
300 | 0 | return this; |
301 | } |
|
302 | ||
303 | /** |
|
304 | * Set the visited link color for the BODY tag. |
|
305 | * |
|
306 | * @param color A String. |
|
307 | * @return A TemplatePageAttributes (self). |
|
308 | */ |
|
309 | public TemplatePageAttributes setVlinkColor(String color) |
|
310 | { |
|
311 | 0 | String hexColor = HtmlColor.getColor(color); |
312 | 0 | if (hexColor == null) |
313 | { |
|
314 | 0 | hexColor = color; |
315 | } |
|
316 | 0 | data.getPage().getBody().setVlink(hexColor); |
317 | 0 | return this; |
318 | } |
|
319 | ||
320 | /** |
|
321 | * Adds an attribute to the BODY tag. |
|
322 | * |
|
323 | * @param name A String. |
|
324 | * @param value A String. |
|
325 | * @return A TemplatePageAttributes (self). |
|
326 | */ |
|
327 | public TemplatePageAttributes addAttribute(String name, String value) |
|
328 | { |
|
329 | 0 | data.getPage().getBody().addAttribute(name, value); |
330 | 0 | return this; |
331 | } |
|
332 | ||
333 | /** |
|
334 | * A dummy toString method that returns an empty string. |
|
335 | * |
|
336 | * @return An empty String (""). |
|
337 | */ |
|
338 | public String toString() |
|
339 | { |
|
340 | 0 | return ""; |
341 | } |
|
342 | } |
This report is generated by jcoverage, Maven and Maven JCoverage Plugin. |