View Javadoc

1   /*
2    * The SmartWeb Framework
3    * Copyright (C) 2004-2006
4    *
5    * This library is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU Lesser General Public
7    * License as published by the Free Software Foundation; either
8    * version 2.1 of the License, or (at your option) any later version.
9    *
10   * This library is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   * Lesser General Public License for more details.
14   *
15   * You should have received a copy of the GNU Lesser General Public
16   * License along with this library; if not, write to the Free Software
17   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18   *
19   * For further informations on the SmartWeb Framework please visit
20   *
21   *                        http://smartweb.sourceforge.net
22   */
23   
24  package net.smartlab.web.page;
25  
26  import javax.servlet.jsp.JspException;
27  import javax.servlet.jsp.tagext.TagSupport;
28  
29  /**
30   * Outputs the HTML code to make the tag body linked to the enclising tag. For
31   * example, if the tag is enclosed by <code>PrevTag</code> the produced HTML
32   * code results in a link to the previous page.
33   * 
34   * @author rlogiacco
35   * @jsp.tag name="link" description="links the tag body to the enclosing tag"
36   *          body-content="JSP"
37   */
38  public class LinkTag extends org.apache.struts.taglib.html.LinkTag {
39  
40  	/*# net.smartlab.web.paging.LinkableTag container */
41  	/*# net.smartlab.web.page.PageTag page */
42  
43  	private static final long serialVersionUID = -4444110022479820664L;
44  
45  	/**
46  	 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
47  	 */
48  	public int doStartTag() throws JspException {
49  		PaginateTag wrapper = (PaginateTag)TagSupport.findAncestorWithClass(this, PaginateTag.class);
50  		if (wrapper.isForm()) {
51  			super.setHref("javascript:paginate(" + ((LinkableTag)TagSupport.findAncestorWithClass(this, LinkableTag.class)).getPage() + ")");
52  		} else {
53  			super.setAction(wrapper.getHref() + ((LinkableTag)TagSupport.findAncestorWithClass(this, LinkableTag.class)).getPage());
54  		}
55  		return super.doStartTag();
56  	}
57  }