Coverage report

  %line %branch
org.apache.turbine.util.template.TemplatePageAttributes
0% 
0% 

 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.