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 }