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 java.io.IOException;
27  
28  import javax.servlet.jsp.JspException;
29  import javax.servlet.jsp.tagext.TagSupport;
30  
31  /**
32   * TODO documentation
33   * 
34   * @author rlogiacco
35   * @jsp.tag name = "paginate" body-content = "empty"
36   */
37  public class PageTag extends AbstractTag implements LinkableTag {
38  
39  	/*# net.smartlab.web.paging.PageListTag list */
40  
41  	/**
42  	 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
43  	 */
44  	public int doStartTag() throws JspException {
45  		try {
46  			context.getOut().write(Integer.toString(this.getPage()));
47  		} catch (IOException ioe) {
48  			throw new JspException(ioe);
49  		}
50  		return SKIP_BODY;
51  	}
52  
53  	/**
54  	 * @see net.smartlab.web.page.LinkableTag#getPage()
55  	 */
56  	public int getPage() {
57  		PageListTag container = (PageListTag)TagSupport.findAncestorWithClass(this, PageListTag.class);
58  		return super.getPaginator().getPages()[container.index];
59  	}
60  
61  }