Clover coverage report - Code Coverage for tapestry-contrib release 4.0.2
Coverage timestamp: Thu Apr 13 2006 10:55:19 EDT
file stats: LOC: 110   Methods: 7
NCLOC: 59   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PopupLinkRenderer.java 0% 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 if (cycle.isRewinding())
 63  0 return null;
 64   
 65  0 String anchor = component.getAnchor();
 66  0 ILink link = component.getLink(cycle);
 67   
 68  0 String url = link.getURL(anchor, true);
 69   
 70  0 PageRenderSupport support = TapestryUtils.getPageRenderSupport(cycle, component);
 71   
 72  0 String functionName = support.getUniqueString("popup_window");
 73   
 74  0 BodyBuilder builder = new BodyBuilder();
 75   
 76  0 builder.addln("function {0}()", functionName);
 77  0 builder.begin();
 78  0 builder.addln(
 79    "var newWindow = window.open({0}, {1}, {2});",
 80    TapestryUtils.enquote(url),
 81    TapestryUtils.enquote(getWindowName()),
 82    TapestryUtils.enquote(getFeatures()));
 83  0 builder.addln("newWindow.focus();");
 84  0 builder.end();
 85   
 86  0 support.addBodyScript(builder.toString());
 87   
 88  0 return "javascript:" + functionName + "();";
 89    }
 90   
 91  0 public String getWindowName()
 92    {
 93  0 return _windowName;
 94    }
 95   
 96  0 public void setWindowName(String windowName)
 97    {
 98  0 _windowName = windowName;
 99    }
 100   
 101  0 public String getFeatures()
 102    {
 103  0 return _features;
 104    }
 105   
 106  0 public void setFeatures(String features)
 107    {
 108  0 _features = features;
 109    }
 110    }