Clover coverage report - Code Coverage for tapestry-contrib release 4.0
Coverage timestamp: Fri Jan 6 2006 10:40:21 PST
file stats: LOC: 107   Methods: 7
NCLOC: 57   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PopupLinkRenderer.java - 0% 0% 0%
coverage
 1    // Copyright 2004, 2005 The Apache Software Foundation
 2    //
 3    // Licensed under the Apache License, Version 2.0 (the "License");
 4    // you may not use this file except in compliance with the License.
 5    // You may obtain a copy of the License at
 6    //
 7    // http://www.apache.org/licenses/LICENSE-2.0
 8    //
 9    // Unless required by applicable law or agreed to in writing, software
 10    // distributed under the License is distributed on an "AS IS" BASIS,
 11    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    // See the License for the specific language governing permissions and
 13    // limitations under the License.
 14   
 15    package org.apache.tapestry.contrib.link;
 16   
 17    import org.apache.hivemind.service.BodyBuilder;
 18    import org.apache.tapestry.IRequestCycle;
 19    import org.apache.tapestry.PageRenderSupport;
 20    import org.apache.tapestry.TapestryUtils;
 21    import org.apache.tapestry.components.ILinkComponent;
 22    import org.apache.tapestry.engine.ILink;
 23    import org.apache.tapestry.link.DefaultLinkRenderer;
 24   
 25    /**
 26    * This renderer emits javascript to launch the link in a window.
 27    *
 28    * @author David Solis
 29    * @since 3.0.1
 30    */
 31    public class PopupLinkRenderer extends DefaultLinkRenderer
 32    {
 33   
 34    private String _windowName;
 35   
 36    private String _features;
 37   
 38  0 public PopupLinkRenderer()
 39    {
 40    }
 41   
 42    /**
 43    * Initializes the name and features for javascript window.open function.
 44    *
 45    * @param windowName
 46    * the window name
 47    * @param features
 48    * the window features
 49    */
 50  0 public PopupLinkRenderer(String windowName, String features)
 51    {
 52  0 _windowName = windowName;
 53  0 _features = features;
 54    }
 55   
 56    /**
 57    * @see DefaultLinkRenderer#constructURL(org.apache.tapestry.engine.ILink, String,
 58    * org.apache.tapestry.IRequestCycle)
 59    */
 60  0 protected String constructURL(ILinkComponent component, IRequestCycle cycle)
 61    {
 62  0 String anchor = component.getAnchor();
 63  0 ILink link = component.getLink(cycle);
 64   
 65  0 String url = link.getURL(anchor, true);
 66   
 67  0 PageRenderSupport support = TapestryUtils.getPageRenderSupport(cycle, component);
 68   
 69  0 String functionName = support.getUniqueString("popup_window");
 70   
 71  0 BodyBuilder builder = new BodyBuilder();
 72   
 73  0 builder.addln("function {0}()", functionName);
 74  0 builder.begin();
 75  0 builder.addln(
 76    "var newWindow = window.open({0}, {1}, {2});",
 77    TapestryUtils.enquote(url),
 78    TapestryUtils.enquote(getWindowName()),
 79    TapestryUtils.enquote(getFeatures()));
 80  0 builder.addln("newWindow.focus();");
 81  0 builder.end();
 82   
 83  0 support.addBodyScript(builder.toString());
 84   
 85  0 return "javascript:" + functionName + "();";
 86    }
 87   
 88  0 public String getWindowName()
 89    {
 90  0 return _windowName;
 91    }
 92   
 93  0 public void setWindowName(String windowName)
 94    {
 95  0 _windowName = windowName;
 96    }
 97   
 98  0 public String getFeatures()
 99    {
 100  0 return _features;
 101    }
 102   
 103  0 public void setFeatures(String features)
 104    {
 105  0 _features = features;
 106    }
 107    }