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.IterationTag;
28  
29  /**
30   * TODO documentation
31   * 
32   * @author rlogiacco
33   * @jsp.tag name = "pages"
34   */
35  public class PageListTag extends AbstractTag implements IterationTag, LinkableTag {
36  
37  	/**
38  	 * TODO documentation
39  	 */
40  	protected int index;
41  
42  	/**
43  	 * @see javax.servlet.jsp.tagext.Tag#doStartTag()
44  	 */
45  	public int doStartTag() throws JspException {
46  		if (super.getPaginator().getPageCount() > 1) {
47  			this.index = 0;
48  			return EVAL_BODY_INCLUDE;
49  		}
50  		return SKIP_BODY;
51  	}
52  
53  	/**
54  	 * @see javax.servlet.jsp.tagext.IterationTag#doAfterBody()
55  	 */
56  	public int doAfterBody() throws JspException {
57  		if (++index < super.getPaginator().getPages().length) {
58  			return EVAL_BODY_AGAIN;
59  		}
60  		return SKIP_BODY;
61  	}
62  
63  	/**
64  	 * @see net.smartlab.web.page.LinkableTag#getPage()
65  	 */
66  	public int getPage() {
67  		return super.getPaginator().getPages()[index];
68  	}
69  
70  }